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-filepaket 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.
apt-file juga perlu diperbarui ( sudo apt-file update), dan hanya mencantumkan konten untuk paket di repositori Apt Anda yang sudah dikonfigurasi.
quack quixote
1
@quackquixote: Di Ubuntu 12.04 otomatis
confiq
1
dpkg -cbagus!
d -_- b
2
Jawaban file Apt mengasumsikan bahwa paket Anda berasal dari repositori yang telah dikonfigurasikan alih-alih .debfile yang telah Anda unduh secara terpisah. Namun pertanyaan aslinya tidak jelas.
Zoredache
5
@confiq, bukan dengan pengujian saya. Saya menjalankan 12.04.4 dan masih mengatakan "E: Cache kosong. Anda harus menjalankan 'pembaruan file apt' terlebih dahulu."
Matthew Flaschen
58
Gunakan --contentsalih-alih -L:
dpkg --contents PACKAGENAME
Ketika digunakan dengan cara ini, dpkgbertindak sebagai front-end dpkg-deb, jadi gunakan man dpkg-debuntuk melihat semua opsi.
Anda juga dapat menggunakan browser arsip untuk melihat konten paket.
Ini tidak berfungsi kecuali saya menginstalnya terlebih dahulu dan kemudian uninstall.
Xiè Jìléi
3
seharusnya berfungsi dengan baik jika Anda memberikan file deb sebagai argumen (alih-alih PACKAGENAME, berikan PAKET-DEB-FILE).
Quack quixote
3
Jawaban ini salah. Anda harus menginstal paket terlebih dahulu. Jika Anda belum menginstalnya, maka Anda tidak memiliki file deb.
Neil
Perintah ini bekerja untuk saya. Misalnya, saya mengunduh google-chrome-stable_current_amd64.deb dari Google. Kemudian mengeluarkan perintah: dpkg --contents google-chrome-stable_current_amd64.debdan 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.)
quux00
10
@Neil, jawabannya tidak salah. Hanya karena Anda memiliki file deb, bukan berarti itu diinstal. apt-file membutuhkan seluruh paket build-essential. OO
d -_- b
21
dpkg --contentsakan 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/archivestetapi tidak diinstal.
Bisakah saya mendaftar konten tanpa mengunduhnya? Jika saya menggunakan koneksi yang sangat lambat, dan jika paket terlalu besar untuk diunduh. Jika file .deb memiliki header file tempat daftar isinya berjalan, saya kira mengunduh seluruh paket mungkin tidak diperlukan. Apakah ini mungkin?
Xiè Jìléi
13
Cara terbaik adalah menelusuri langsung repositori paket:
Dan untuk menghindari meninggalkan terminal, Anda dapat menggunakan misalnya lynx -dump -nolist http://packages.debian.org/wheezy/all/transmission-common/filelist | grep ^/(asalkan Anda telah lynxmenginstal).
Ruslan
8
Saya mengambil ide http @ baldoz dan menggeneralisasinya untuk Ubuntu dan Debian, menambahkan sedikit seddan 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'; }
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:
lsb_release -si mengembalikan "Ubuntu" atau "Debian" menggantikannya dengan url dasar https://packages.ubuntu.comatauhttps://packages.debian.org
lsb_Release -sc mengembalikan codename (mis. "trusty", "sid", dll) menggunakannya untuk membangun URL lengkap: https://packages.ubuntu.com/trusty/all/curl/filelist
Ambil URL itu dengan ikal dan pipa html melalui tiga perintah sed. Pertama hanya menangkap daftar file (ada apa di antara <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.
@ Anwar, saya awalnya menggunakan Ruby karena saya malas dan regil multiline mengisap sed / awk / grep. Tapi saya sudah menulis ulang untuk menggunakan dua perintah sed, tidak perlu Ruby.
notpeter
Bagus! Ini adalah jawaban yang saya cari
Anwar
4
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.
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 -cis./usr/share/man/man1/yade.1.gz
Jawaban:
dpkg -c
(atau--contents
) mencantumkan konten file paket .deb (Ini adalah front-end kedpkg-deb
.)Untuk bekerja secara langsung dengan nama paket daripada file paket, Anda dapat menggunakan
apt-file
. (Anda mungkin perlu menginstalapt-file
paket terlebih dahulu.)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.
sumber
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
:Ketika digunakan dengan cara ini,
dpkg
bertindak sebagai front-enddpkg-deb
, jadi gunakanman dpkg-deb
untuk melihat semua opsi.Anda juga dapat menggunakan browser arsip untuk melihat konten paket.
sumber
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, lakukanPaket akan diunduh
/var/cache/apt/archives
tetapi tidak diinstal.sumber
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
sumber
lynx -dump -nolist http://packages.debian.org/wheezy/all/transmission-common/filelist | grep ^/
(asalkan Anda telahlynx
menginstal).Saya mengambil ide http @ baldoz dan menggeneralisasinya untuk Ubuntu dan Debian, menambahkan sedikit
sed
dan membungkusnya dengan fungsi bash one-liner:Pemakaian:
Fungsi yang sama pada banyak baris:
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.
sumber
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:
PS: - print-uris switch mencetak url paket deb tetapi deb tidak diunduh.
Kemudian tampilkan konten paket deb tanpa mengunduhnya:
PS: Hasil yang sama bisa dicapai dengan
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:
halaman manual ditampilkan dengan benar menggunakan aplikasi manual.
PS: Pipa di atas tidak bekerja dengan perintah ar.
sumber
Mencoba:
sumber
Sepertinya tidak mungkin sebelum menginstalnya terlebih dahulu atau mengekstraksi daftar dari
.deb
file.Coba perintah berikut:
Ubah
language-pack-en
dengan nama paket Anda.Ini pada dasarnya membaca
.deb
file yang diekstraksi melaluicurl
dan dijalankandpkg --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:Paruh ikal:
-s
- diam,-L
- ikuti tautan yang dipindahkan.Jika Anda tidak tahu URL-nya, ambil dengan:,
apt --print-uris
missumber