Yanıtlar:
dpkg -c
(veya --contents
) bir .deb paket dosyasının içeriğini listeler (ön uçtur dpkg-deb
.)
dpkg -c package_file.deb
Paket dosyaları yerine doğrudan paket isimleriyle çalışmak için kullanabilirsiniz apt-file
. (Önce apt-file
paketi yüklemeniz gerekebilir .)
sudo apt-file update
apt-file list package_name
İlk açıklamada belirtildiği gibi apt-file, önceden yapılandırılmış Apt depolarınızdaki paketlerin içeriğini listeler. Herhangi bir paketin kurulu olup olmadığı önemli değildir.
sudo apt-file update
) ve yalnızca önceden yapılandırılmış Apt depolarınızdaki paketlerin içeriğini listeler.
dpkg -c
Güzel!
.deb
ayrı indirdiğiniz bir dosya yerine yapılandırılmış bir depodan geldiğini varsayar . Asıl soru yine de belirsiz.
Yerine --contents
kullanın -L
:
dpkg --contents PACKAGENAME
Bu şekilde kullanıldığında, dpkg
ön uç gibi davranır dpkg-deb
, bu nedenle man dpkg-deb
tüm seçenekleri görmek için kullanın .
Paket içeriğini görüntülemek için bir arşiv tarayıcı da kullanabilirsiniz.
dpkg --contents google-chrome-stable_current_amd64.deb
ve bu yazarken /opt/google/chrome
hiçbiri şu anda sistemime yüklenmemiş olan (çoğunlukla kendisine ) yükleyeceği tüm dosyaları listeledi . (Bu
dpkg --contents
Kaldırılan pakete bakmanıza izin verir. .Deb henüz sisteminizde değilse,
apt-get --download-only install pkgname
Paket indirilecek /var/cache/apt/archives
ancak yüklenmeyecek.
En iyi yol doğrudan paket deposuna göz atmak olacaktır:
http://packages.debian.org/[distro name]/all/[package name]/filelist
Örnek:
http://packages.debian.org/wheezy/all/transmission-common/filelist
lynx -dump -nolist http://packages.debian.org/wheezy/all/transmission-common/filelist | grep ^/
( lynx
kurduğunuzda) kullanabilirsiniz.
Çektiğim baldoz en http fikri @ ve Ubuntu ve Debian için genelleştirilmiş, biraz eklendi sed
ve bash fonksiyonu tek poşetine sarılmış:
function deb_list () { curl -s $(lsb_release -si | sed -e 's Ubuntu https://packages.ubuntu.com ' -e 's Debian https://packages.debian.org ')/$(lsb_release -sc)/all/$1/filelist | sed -n -e '/<pre>/,/<\/pre>/p' | sed -e 's/<[^>]\+>//g' -e '/^$/d'; }
Kullanımı:
$ deb_list curl
/usr/bin/curl
/usr/share/doc/curl/changelog.Debian.gz
/usr/share/doc/curl/copyright
/usr/share/doc/curl/NEWS.Debian.gz
/usr/share/man/man1/curl.1.gz
Birden fazla satırda aynı işlev:
function deb_list () {
curl -s $(lsb_release -si \
| sed -e 's Ubuntu https://packages.ubuntu.com ' \
-e 's Debian https://packages.debian.org '
)/$(lsb_release -sc)/all/$1/filelist \
| sed -n -e '/<pre>/,/<\/pre>/p' \
| sed -e 's/<[^>]\+>//g' -e '/^$/d';
}
Açıklaması:
https://packages.ubuntu.com
veyahttps://packages.debian.org
https://packages.ubuntu.com/trusty/all/curl/filelist
<pre>
ve </pre>
etiketler); ikinci html etiketlerini çıkarır; üçüncü boş satırları kaldırır.Not: PPA'larda arama yapmaz, alternatif apt kaynakları repoları aramaz ve yalnızca çalıştırmakta olduğunuz debian / ubuntu sürümünün piyasaya sürülmesi için resmi paketleri sorgular.
Ocak 2017'de hala bu sorunu çözebilecek tüm insanlar için, Debian 8.5'te apt ve dpkg'ın son sürümleriyle hiçbir şey indirmeden harika şeyler yaşayabilirsiniz.
İndirme Yapmadan Deb Dosyasının İçeriğini Listele:
Önce deb dosyasının tam URL'sini bulun:
root@debian:apt-get --print-uris download yade
'http://httpredir.debian.org/debian/pool/main/y/yade/yade_2016.06a-7_amd64.deb' yade_2016.06a-7_amd64.deb 1621148 SHA256:26c0d84484a92ae9c2828edaa63243eb764378d79191149970926aa3ec40cdd4
Not: --print-uris anahtarı deb paketinin url'sini yazdırıyor ancak deb indirilmedi.
Ardından indirmeden deb paketinin içeriğini görüntüleyin:
root@debian:curl -sL -o- "http://httpredir.debian.org/debian/pool/main/y/yade/yade_2016.06a-7_amd64.deb" |dpkg-deb -c /dev/stdin
drwxr-xr-x root/root 0 2016-12-10 22:18 ./
drwxr-xr-x root/root 0 2016-12-10 22:18 ./usr/
drwxr-xr-x root/root 0 2016-12-10 22:18 ./usr/bin/
-rwxr-xr-x root/root 13184 2016-12-10 22:18 ./usr/bin/yade
.........................more files listed bellow ......................
Not: Aynı sonuç ile elde edilebilir
root@debian:dpkg -c <(curl -sL -o- "http://httpredir.debian.org/debian/pool/main/y/yade/yade_2016.06a-7_amd64.deb")
Dosyayı yukarıdaki deb paketinden indirmeden çıkarın.
Örneğin, bu paketi yüklemeden ve deb paketini indirmeden paket yade'nin man sayfasını okumak istiyoruz.
Tavsiye ettiği şekilde deb paket içerisinde adam sayfasının Dosya adı dpkg -c
olduğunu./usr/share/man/man1/yade.1.gz
Anında man sayfasını okumak için:
root@debian:curl -sL -o- "http://httpredir.debian.org/debian/pool/main/y/yade/yade_2016.06a-7_amd64.deb" |dpkg-deb --fsys-tarfile /dev/stdin |tar -xO ./usr/share/man/man1/yade.1.gz |man /dev/stdin
man sayfası man uygulaması kullanılarak doğru görüntüleniyor.
Not: Borular üstü ar komutuyla çalışmaz.
root@debian:apt --version --> apt 1.4~beta2 (amd64)
root@debian:dpkg --version --> Debian 'dpkg' package management program version 1.18.18 (amd64).
root@debian:man --version --> man 2.7.6.1
root@debian:tar --version --> tar (GNU tar) 1.29
Öncelikle kurmadan ya da listeyi .deb
dosyadan çıkarmadan önce mümkün değil gibi görünüyor .
Aşağıdaki komutu deneyin:
dpkg --contents <(curl -s $(apt-get install --yes --no-download --reinstall --print-uris language-pack-en | tail -n1 | grep -o "http[^']\+"))
language-pack-en
Paket adınızla değiştirin .
Temelde .deb
ayıklanan curl
ve üzerinde çalışan dosyayı okur dpkg --contents FILE
.
Paket dosyasını indirmeden içeriği de kontrol edebilirsiniz.
Dolayısıyla, .deb
dosyanın URL'sini biliyorsanız, aşağıdaki kabuk komutu tüm paket dosyalarını listeler:
dpkg -c <(curl -sL "http://httpredir.debian.org/debian/pool/main/a/avis/avis_1.2.2-4_all.deb")
Kıvrılma params: -s
- sessiz, -L
- taşınan bağlantıları izleyin.
URL’yi bilmiyorsanız, şunu getir: apt --print-uris
örn.
apt --print-uris install avis | grep avis