Apt-cache: Bagaimana mendaftar semua paket yang diinstal dengan nomor versi?

51

apt-cache dump --installed tidak bekerja, itu daftar paket yang dihapus juga.

Saya ingin mendaftar paket instalasi masing-masing satu per baris, dengan nomor versi yang diinstal.

Xiè Jìléi
sumber
3
bug # 775771 membatasi hasil pencarian apt-cache untuk paket yang diinstal
bartolo-otrit

Jawaban:

53

mencoba dpkg -l

itu mencantumkan Anda paket, versi dan deskripsi singkat.

kev
sumber
1
Saya suka juga apt-show-versionskarena ini juga menunjukkan yang mana uptotdate.
malat
37

Cara paling sederhana adalah menggunakan dpkg, tetapi itu mungkin memperlihatkan beberapa paket asing dan memotong panjang nama paket dan nomor versi:

dpkg -l

Untuk daftar hanya paket yang diinstal dengan benar dan tidak memotong nama:

dpkg -l | grep '^ii'

Untuk mendapatkan kontrol lebih besar atas format output, Anda dapat menggunakan dpkg-query:

dpkg-query -W -f '${status} ${package} ${version}\n' | \
sed -n 's/^install ok installed //p'
Gilles 'SANGAT berhenti menjadi jahat'
sumber
13

Perintah lain dapat:

apt-show-versions

Ini juga memberi Anda info tentang keadaan paket (terkini, dapat diperbarui, ...) dan tentang distribusi asal (wheezy, jessie, ...). Seseorang dapat dengan mudah menyaring paket yang berasal dari backports atau repositori eksotis lainnya.

Program ini dikemas secara terpisah. Instal dulu dengan:

apt-get install apt-show-versions
SkyRaT
sumber
Ini sangat bagus karena menunjukkan versi paket yang dapat ditingkatkan. +1.
Randall Cook
dikombinasikan dengan apt-mark showmanualini memberi Anda cara yang bagus dan mudah untuk mengambil versi dari semua paket yang diinstal secara manual, lihat juga jawaban Askubuntu ini apt-mark showmanual > /tmp/versions && apt-show-versions | grep -f /tmp/versions
Gregor
4

Perintah berikut mencantumkan paket-paket dengan versinya, dan tambahannya itu memungkinkan Anda mengatur sistem dengan paket dan versi yang sama nanti, menggunakan pkg-selections.txtfile yang dihasilkan di sini:

aptitude -q -F "%?p=%?V %M" --disable-columns search \~i > pkg-selections.txt

Setiap baris akan berisi nama paket, versi dan opsional "A" jika paket diinstal secara otomatis.

Sumber: " Kloning sistem Debian - paket dan versi yang identik ". Juga berisi skrip yang mengatur sistem dari pkg-selections.txt.

tanius
sumber
4

Untuk daftar nama setiap paket yang diinstal, ketikkan sebagai pengguna apa saja:

dpkg --get-selections

Anda akan mendapatkan output seperti ini:

accountsservice              install
aclinstall                   install
acpi-supportinstall          install
acpidinstall                 install
...

Untuk menghapus string karakter "instal" yang tidak perlu, Anda dapat menggunakan sed :

dpkg --get-selections | sed 's:install$::'

Dan jika Anda ingin menyimpannya ke file yang disebut InstalledPackages , Anda mengetik ini:

dpkg --get-selections | sed 's:install$::' > InstalledPackages
Rémi G.
sumber
1

Jika Anda tidak memiliki akses ke sistem live, dan memiliki cadangan /partisi root , Anda dapat:

root@backup_server /mnt/old_root/var/lib/dpkg/info # ls -la *.list | awk {'print $9'}| sed 's/.list//' >> /root/installed_app

Sekarang ini /root/installed_appberisi semua paket yang diinstal!

sasha2002
sumber