Jawaban:
dpkg -c
(atau --contents
) mencantumkan konten file paket .deb (Ini adalah front-end ke dpkg-deb
.)
dpkg -c package_file.deb
Untuk bekerja secara langsung dengan nama paket daripada file paket, Anda dapat menggunakan apt-file
. (Anda mungkin perlu menginstal apt-file
paket terlebih dahulu.)
sudo apt-file update
apt-file list package_name
Seperti yang dinyatakan dalam komentar pertama, file apt daftar konten untuk paket dalam repositori Apt Anda yang sudah dikonfigurasi. Tidak relevan apakah paket tertentu diinstal atau tidak.
sudo apt-file update
), dan hanya mencantumkan konten untuk paket di repositori Apt Anda yang sudah dikonfigurasi.
dpkg -c
bagus!
.deb
file yang telah Anda unduh secara terpisah. Namun pertanyaan aslinya tidak jelas.
Gunakan --contents
alih-alih -L
:
dpkg --contents PACKAGENAME
Ketika digunakan dengan cara ini, dpkg
bertindak sebagai front-end dpkg-deb
, jadi gunakan man dpkg-deb
untuk melihat semua opsi.
Anda juga dapat menggunakan browser arsip untuk melihat konten paket.
dpkg --contents google-chrome-stable_current_amd64.deb
dan terdaftar semua file yang akan diinstal (kebanyakan ke /opt/google/chrome
), tidak ada yang saat ini diinstal pada sistem saya saat saya mengetik ini. (Saya menjalankan Xubuntu 11,10 jika itu penting.)
dpkg --contents
akan membiarkan Anda melihat paket yang dihapus. Jika. Deb belum ada di sistem Anda, lakukan
apt-get --download-only install pkgname
Paket akan diunduh /var/cache/apt/archives
tetapi tidak diinstal.
Cara terbaik adalah menelusuri langsung repositori paket:
http://packages.debian.org/[distro name]/all/[package name]/filelist
Contoh:
http://packages.debian.org/wheezy/all/transmission-common/filelist
lynx -dump -nolist http://packages.debian.org/wheezy/all/transmission-common/filelist | grep ^/
(asalkan Anda telah lynx
menginstal).
Saya mengambil ide http @ baldoz dan menggeneralisasinya untuk Ubuntu dan Debian, menambahkan sedikit sed
dan membungkusnya dengan fungsi bash one-liner:
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'; }
Pemakaian:
$ 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
Fungsi yang sama pada banyak baris:
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';
}
Dijelaskan:
https://packages.ubuntu.com
atauhttps://packages.debian.org
https://packages.ubuntu.com/trusty/all/curl/filelist
<pre>
dan </pre>
tag); strip kedua semua tag html; ketiga menghapus setiap baris kosong.Catatan: Ia tidak mencari PPA, repo sumber apt alternatif dan hanya menanyakan paket resmi yang tersedia untuk rilis debian / ubuntu yang Anda jalankan.
Untuk semua orang yang mungkin masih googling masalah ini pada Januari 2017, Anda dapat memiliki beberapa hal keren dengan apt dan dpkg versi terbaru di Debian 8.5 tanpa mengunduh apa pun.
Daftar Isi File Deb Tanpa Unduhan:
Pertama-tama cari url lengkap file deb:
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
PS: - print-uris switch mencetak url paket deb tetapi deb tidak diunduh.
Kemudian tampilkan konten paket deb tanpa mengunduhnya:
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 ......................
PS: Hasil yang sama bisa dicapai dengan
root@debian:dpkg -c <(curl -sL -o- "http://httpredir.debian.org/debian/pool/main/y/yade/yade_2016.06a-7_amd64.deb")
Ekstrak file dari paket deb di atas, tanpa unduhan.
Misalnya kita ingin membaca halaman manual paket yade tanpa menginstal paket ini dan tanpa mengunduh paket deb.
Nama file halaman manual di dalam paket deb seperti yang disarankan oleh dpkg -c
is./usr/share/man/man1/yade.1.gz
Untuk membaca halaman manual dengan cepat:
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
halaman manual ditampilkan dengan benar menggunakan aplikasi manual.
PS: Pipa di atas tidak bekerja dengan perintah ar.
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
Sepertinya tidak mungkin sebelum menginstalnya terlebih dahulu atau mengekstraksi daftar dari .deb
file.
Coba perintah berikut:
dpkg --contents <(curl -s $(apt-get install --yes --no-download --reinstall --print-uris language-pack-en | tail -n1 | grep -o "http[^']\+"))
Ubah language-pack-en
dengan nama paket Anda.
Ini pada dasarnya membaca .deb
file yang diekstraksi melalui curl
dan dijalankan dpkg --contents FILE
di atasnya.
Anda juga dapat memeriksa konten tanpa mengunduh file paket.
Jadi jika Anda tahu URL .deb
file, perintah shell berikut akan mencantumkan semua file paket:
dpkg -c <(curl -sL "http://httpredir.debian.org/debian/pool/main/a/avis/avis_1.2.2-4_all.deb")
Paruh ikal: -s
- diam, -L
- ikuti tautan yang dipindahkan.
Jika Anda tidak tahu URL-nya, ambil dengan:, apt --print-uris
mis
apt --print-uris install avis | grep avis