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-filepaketi 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 -cGüzel!
.debayrı indirdiğiniz bir dosya yerine yapılandırılmış bir depodan geldiğini varsayar . Asıl soru yine de belirsiz.
Yerine --contentskullanın -L:
dpkg --contents PACKAGENAME
Bu şekilde kullanıldığında, dpkgön uç gibi davranır dpkg-deb, bu nedenle man dpkg-debtü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.debve bu yazarken /opt/google/chromehiçbiri şu anda sistemime yüklenmemiş olan (çoğunlukla kendisine ) yükleyeceği tüm dosyaları listeledi . (Bu
dpkg --contentsKaldırılan pakete bakmanıza izin verir. .Deb henüz sisteminizde değilse,
apt-get --download-only install pkgname
Paket indirilecek /var/cache/apt/archivesancak 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 ^/( lynxkurduğunuzda) kullanabilirsiniz.
Çektiğim baldoz en http fikri @ ve Ubuntu ve Debian için genelleştirilmiş, biraz eklendi sedve 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.comveyahttps://packages.debian.orghttps://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 -colduğ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 .debdosyadan çı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-enPaket adınızla değiştirin .
Temelde .debayıklanan curlve üzerinde çalışan dosyayı okur dpkg --contents FILE.
Paket dosyasını indirmeden içeriği de kontrol edebilirsiniz.
Dolayısıyla, .debdosyanı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