Cara daftar semua paket yang diinstal

1885

Saya ingin menampilkan daftar semua paket yang diinstal ke dalam file teks sehingga saya dapat memeriksanya dan menginstal secara massal di sistem lain. Bagaimana saya melakukan ini?

Ivan
sumber
7
Ini sudah dijawab di sini .
Simon Quigley
2
Wow, pergi melalui jawaban tampaknya ada begitu banyak cara untuk mencapai ini: /
Madivad
2
Bagaimana saya melakukan instalasi massal pada sistem baru dari file teks seperti itu?
Elysium
2
@Madivad, manajer paket ini semula seharusnya membuat hidup lebih mudah ...
René Nyffenegger

Jawaban:

2135

Ubuntu 14.04 dan lebih tinggi

The aptalat pada Ubuntu 14.04 dan di atas membuat ini sangat mudah.

apt list --installed

Versi yang Lebih Lama

Untuk mendapatkan daftar paket yang diinstal secara lokal, lakukan ini di terminal Anda:

dpkg --get-selections | grep -v deinstall

( -vTag "invert" grep untuk mengembalikan garis yang tidak cocok)

Untuk mendapatkan daftar paket tertentu yang diinstal:

dpkg --get-selections | grep postgres

Untuk menyimpan daftar itu ke file teks yang dipanggil packagesdi desktop Anda lakukan ini di terminal Anda:

dpkg --get-selections | grep -v deinstall > ~/Desktop/packages

Atau, cukup gunakan

dpkg -l

(Anda tidak perlu menjalankan perintah ini sebagai superuser, jadi tidak perlu sudoatau varian lain yang diperlukan di sini)

Sabacon
sumber
37
Kemudian, ketika menginstal ke komputer baru, lakukan cat ~/Desktop/packages > sudo dpkg --set-selections && sudo apt-get dselect upgrade sumber
koanhead
13
Sintaks untuk dpkg mungkin telah sedikit berubah sejak 2006 karena perintah itu tidak berfungsi untuk saya, @koanhead. sudo dpkg --set-selections < ~/Desktop/packages && sudo apt-get -u dselect-upgradelakukan triknya.
James
219
Perhatikan bahwa ini tidak akan melacak paket mana yang diinstal secara eksplisit oleh pengguna dan yang diinstal sebagai dependensi. Ini berarti bahwa jika Anda menggunakan metode ini untuk membuat ulang pengaturan Anda di komputer lain, apt tidak akan dapat menghapus dependensi yang tidak dibutuhkan ketika Anda menghapus paket yang diberikan.
intuited
73
Sedih dan luar biasa bahwa komentar @intuited tidak lebih dipahami oleh komunitas. Apakah lebih banyak kontributor "berperingkat tinggi" berhenti untuk berpikir lebih banyak sebelum memberikan saran yang hanya memuat ulang paket lama pada versi ubuntu baru bukanlah ide yang baik (?). Dengan semua opsi dpkg, saya masih tidak melihat satu pun yang mengeluarkan paket yang terinstal secara 'tegas' oleh pengguna agar daftar ITU dapat dimuat ulang dan diizinkan untuk memiliki dependensinya diinstal; Saya ingin mengetahuinya - silakan bagikan info itu. Sementara itu, buatlah daftar paket yang benar-benar Anda butuhkan untuk menginstal ulang dan menjalankannya
Ricalsin
62
Kita semua tahu bahwa linux membeda-bedakan orang tanpa memori foto, tetapi serius, apa yang salah dengan itu apt list installed. Suatu hari kita harus berhenti secara sistematis gagal prinsip "menjaga hal-hal sederhana tetap".
414

Untuk mendapatkan hanya paket yang terinstal secara tegas (tidak hanya diinstal sebagai dependensi), Anda dapat menjalankan

aptitude search '~i!~M'

Ini juga akan mencakup deskripsi singkat, yang mungkin Anda inginkan. Jika tidak, tambahkan juga opsi -F '%p', seperti yang disebutkan oleh karthick87.


Namun pilihan lain tampaknya menyalin file /var/lib/apt/extended_states, yang merupakan database file teks dalam format ini:

Package: grub-common
Architecture: amd64
Auto-Installed: 0

Package: linux-headers-2.6.35-22-generic
Architecture: amd64
Auto-Installed: 1

Auto-Installed: 0 menunjukkan bahwa paket telah diinstal dengan jelas dan bukan hanya ketergantungan.

intuisi
sumber
52
Ini seharusnya jawaban yang benar. Mengapa daftar ketergantungan?
Stavros Korokithakis
13
Ini seharusnya jawabannya, tetapi menggunakan aptitude agak tidak bisa diandalkan karena Multiarch saat ini (perbaikan di jalan), sayangnya. Masih memberi +1 untuk menunjukkan hanya daftar paket yang diinstal secara eksplisit dan cara untuk melakukan ini (meskipun saat ini tidak berfungsi pada 11,10+).
gertvdijk
4
@intuited "Perbaiki Dirilis" untuk Precise (beberapa waktu lalu). :)
gertvdijk
11
Ini mencantumkan semua paket, bukan hanya paket yang diinstal secara manual di Ubuntu 13.10.
Eamon Nerbonne
5
Adakah cara untuk mencapai hasil yang sama apt-get?
Javier Arias
203

Untuk mendaftar semua paket yang sengaja diinstal (bukan sebagai dependensi) dengan perintah apt, jalankan yang berikut ini:

(zcat $(ls -tr /var/log/apt/history.log*.gz); cat /var/log/apt/history.log) 2>/dev/null |
  egrep '^(Start-Date:|Commandline:)' |
  grep -v aptdaemon |
  egrep '^Commandline:'

Ini memberikan tampilan berdasarkan waktu mundur, dengan perintah yang lebih lama terdaftar terlebih dahulu:

Commandline: apt-get install k3b
Commandline: apt-get install jhead
...

Data instalasi juga menunjukkan penggunaan sinaptik, tetapi tanpa detail (sama dengan tanggal pemasangan):

(zcat $(ls -tr /var/log/apt/history.log*.gz); cat /var/log/apt/history.log) 2>/dev/null |
  egrep '^(Start-Date:|Commandline:)' |
  grep -v aptdaemon |
  egrep -B1 '^Commandline:'

menyediakan yang berikut:

Start-Date: 2012-09-23  14:02:14
Commandline: apt-get install gparted
Start-Date: 2012-09-23  15:02:51
Commandline: apt-get install sysstat
...
bcl
sumber
3
Atau (dengan zgrep dan menghapus pesan pembaruan):zgrep -hE '^(Start-Date:|Commandline:)' $(ls -tr /var/log/apt/history.log*.gz ) | egrep -v 'aptdaemon|upgrade' | egrep -B1 '^Commandline:'
belacqua
3
Apakah pendekatan ini melewatkan paket yang terinstal dpkg??
drevicko
5
Sementara jawaban sederhana di atas baik untuk pengguna umum. Metode ini sejauh ini adalah yang terbaik untuk melacak kembali semua penyesuaian yang dilakukan pada mesin, karena juga menunjukkan apa yang dihapus, atau ditambahkan, dari gambar dasar, karena daftar mereka dalam urutan itu dilakukan, dan membantu Anda mengingat yang urutan yang benar untuk menambahkannya kembali ke sistem lain.
AllGamer
3
@drevicko Anda benar, tidak mencantumkan paket yang diinstal dengan dpkg
Steve Buzonas
3
Ini sangat berguna untuk menjaga agar tetap teratur - otak saya lebih suka dengan cara ini untuk alasan apa pun ..
JeremyFelix
191

Buat cadangan dari paket apa yang saat ini diinstal:

dpkg --get-selections > list.txt

Kemudian (di sistem lain) pulihkan instalasi dari daftar itu:

dpkg --clear-selections
sudo dpkg --set-selections < list.txt

Untuk menghilangkan paket basi:

sudo apt-get autoremove

Untuk menginstal seperti pada waktu cadangan (yaitu untuk menginstal paket yang ditetapkan oleh dpkg --set-selections):

sudo apt-get dselect-upgrade
gogaman
sumber
5
Kiat bagus tentang memulihkan di komputer lain. +1.
Drew Noakes
15
bermigrasi antara 2 mesin ubuntu 12,04 yang berbeda pendekatan ini merusak sistem saya. butuh beberapa saat sampai saya menyadari bahwa entah bagaimana ubuntu-desktopsudah dihapus - mungkin karena salah satu perintah dpkg. hati-hati, butuh waktu berjam-jam untuk memperbaiki kerusakan!
Karl Frisk
1
Dan terkadang sistem memperbarui aplikasi yang secara khusus Anda inginkan agar sistem tidak pernah menyentuhnya, jalankan aplikasi ini di akhir perintah sudo apt-mark hold name-your-package . Ini akan mencegah apt-get dari memperbarui ke versi saat ini yang merupakan standar untuk proses pembaruan.
Faron
77
apt-mark showmanual

halaman manual menyatakan:

akan mencetak daftar paket yang diinstal secara manual

Jadi, itu hanya harus memberikan daftar paket yang diinstal secara eksplisit (meskipun ini termasuk paket yang merupakan bagian dari instalasi awal default) tanpa semua dependensi termasuk karena paket ini diinstal.

Untuk menampilkan hasilnya ke file teks:

apt-mark showmanual > list-manually-installed.txt
Tim Tisdall
sumber
Di Debian "apt-mark showmanual" tidak bekerja pada "squeeze" tetapi bekerja pada "wheezy"
Wadih M.
11
Seperti kebanyakan jawaban lain, apt-mark showmanualtidak juga. Itu juga daftar banyak paket yang diinstal secara otomatis, mungkin bagian dari instalasi dasar.
mivk
8
Nah pertanyaannya adalah untuk paket yang diinstal dan ini memberikan semua paket yang diinstal dikurangi dependensi yang diinstal secara otomatis. Itu tidak termasuk paket awal sebagai bagian dari instalasi awal. Saya kira Anda bisa menjalankan ini pada instalasi baru untuk mendapatkan daftar instalasi default dan kemudian kurangi itu dari ini untuk melihat perbedaannya.
Tim Tisdall
5
Tidak ada yang menyebutkan alternatif ini untuk daftar paket yang diinstal secara manual: apt list --manual-installed.
Pablo A
41

dpkg-query(Alih-alih dpkg --get-selections, yang mencantumkan beberapa paket yang tidak diinstal) sebagai berikut:

dpkg-query -W -f='${PackageSpec} ${Status}\n' | grep installed |  sort -u | cut -f1 -d \ > installed-pkgs

Atau:

dpkg -l | grep ^ii | sed 's_  _\t_g' | cut -f 2 > installed-pkgs
kyleN
sumber
Mengetik # for pkg in `cat installed-pkgs`; do apt-get install -y $pkg; donedi sistem kedua saya telah membuat ini sehingga akan menginstal Paket.
user9869932
1
@julianromera: apt-get install -y $(< installed-pkgs)akan membuatnya agar apt-get berjalan sekali saja dan menangani semua dependensi sekaligus.
jamadagni
@ julianromera ... koreksi saya jika saya salah tetapi untuk membangun aplikasi dengan dependensi sebelum melakukan instalasi biasanya sudo apt-get build-dep name-package; sudo apt-get install name-package; ?
Faron
39

Untuk mendaftar semua paket yang diinstal,

dpkg -l |awk '/^[hi]i/{print $2}' > 1.txt

atau

aptitude search -F '%p' '~i' > 1.txt

atau

dpkg --get-selections > 1.txt

Catatan:
Anda akan mendapatkan file 1.txt hasil di folder rumah Anda atau Anda dapat menentukan jalur Anda sendiri.

karthick87
sumber
35

Anda dapat menggunakan Synaptic untuk menyimpan kondisi saat ini dari paket yang diinstal Anda. Dalam Synaptic, pilih "file / save markings", Masukkan nama file untuk menyimpan status, dan pastikan untuk mencentang kotak "Simpan status penuh, tidak hanya perubahan".

File yang disimpan dari ini dapat dimuat ke mesin baru menggunakan "file / tanda baca" di Synaptic.

Nerdfest
sumber
34

Saya sarankan menggunakan cetak biru . Meskipun dirancang untuk server, ini juga dapat digunakan dari desktop. Ini akan membuat skrip shell / koki / boneka yang dapat Anda gunakan untuk menginstal ulang semua paket Anda.

Penjinak
sumber
Saya tidak mencoba mirror lengkap, tetapi hanya fakta mengambil file config ke akun yang luar biasa. Saya mencari alat seperti itu untuk sementara waktu sekarang, terima kasih banyak!
tbolender
33

Anda ingin menginstal ulang paket sekarang di 12.04, kan?

Jika demikian, itu sangat mudah. Anda memerlukan "Ubuntu Single Sign On akun." (Buat sebelum menginstal ulang sehingga sistem Anda disinkronkan.)

  1. Buka Pusat Perangkat Lunak dan cari opsi "Sinkronkan Komputer ..." di bawah menu File.

  2. Ketika Anda mengkliknya, Anda akan melihat komputer Anda terdaftar dan daftar semua aplikasi di komputer Anda.

  3. Ketika Anda akan menginstal yang baru, komputer itu akan dianggap sebagai komputer baru.

  4. Anda hanya perlu masuk ke akun Ubuntu Anda dan komputer Anda sebelumnya akan ditampilkan.

  5. Klik di atasnya; Anda akan mendapatkan daftar semua aplikasi. Pilih "instal" pada aplikasi yang ingin Anda instal.

Nirmik
sumber
Saya menetapkan nama yang sama untuk komputer saya pada instalasi baru untuk mencegah pengunduhan besar dari server Ubuntu One setiap kali. Apakah Anda pikir ini bekerja untuk saya?
Alen
32

Ada juga alat yang disebut Aptik (baik baris perintah dan GUI) yang dapat membantu Anda melihat daftar semua paket yang diinstal, dengan opsi untuk memilih / membatalkan pilihan beberapa dari mereka, membuat daftar cadangan, dan kemudian mengembalikan set paket yang sama di sistem lain.

Untuk memasang:

sudo add-apt-repository -y ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install aptik

Info lebih lanjut: https://teejeetech.in/aptik/

masukkan deskripsi gambar di sini

Seperti yang dapat dilihat pada tangkapan layar, Aptik memungkinkan Anda juga membuat cadangan dan memulihkan PPA , yang tentunya akan diperlukan untuk menginstal beberapa paket yang diinstal.

Sadi
sumber
Jika Anda menginginkan GUI, Anda harus menginstalnya apt-get install aptik-gtkjuga
Maduka Jayalath
30

APT-Klon . Paket ini dapat digunakan untuk mengkloning / mengembalikan paket pada sistem berbasis apt.

  • Ini akan menyimpan / mengembalikan paket, sources.list, keyring dan status terinstal otomatis.
  • Itu juga dapat menyimpan / mengembalikan paket yang tidak dapat diunduh lagi menggunakan dpkg-repack.

sumber: man apt-clone

APT-Clone digunakan oleh ubiquity(penginstal Ubuntu) untuk proses peningkatan. Ini jauh lebih baik daripada dpkg --get-selectionssolusinya karena:

  1. Ini menyimpan semua informasi repositori.
  2. Ini melacak paket apa yang diinstal secara otomatis.
  3. Hal ini memungkinkan untuk mengemas kembali file DEB yang diinstal secara lokal.

Cara Penggunaan

  1. Pasang

    sudo apt-get install apt-clone
    
  2. Buat cadangan

    sudo apt-clone clone path-to/apt-clone-state-ubuntu-$(lsb_release -sr)-$(date +%F).tar.gz
    
  3. Kembalikan cadangan

    sudo apt-clone restore path-to/apt-clone-state-ubuntu.tar.gz
    

    Pulihkan ke rilis yang lebih baru:

    sudo apt-clone restore-new-distro path-to/apt-clone-state-ubuntu.tar.gz $(lsb_release -sc)
    

Itu membuat file tar gzipped sederhana yang dapat dengan mudah diedit dan ditinjau sebelum mengembalikan pada komputer lain. Berikut contoh strukturnya:

/
├── etc
│   └── apt
│       ├── preferences.d
│       ├── sources.list
│       ├── sources.list.d
│       │   ├── anton_-ubuntu-dnscrypt-vivid.list
│       │   ├── maarten-baert-ubuntu-simplescreenrecorder-vivid.list
│       │   └── megasync.list
│       ├── trusted.gpg
│       └── trusted.gpg.d
│           ├── anton__ubuntu_dnscrypt.gpg
│           ├── anton__ubuntu_dnscrypt.gpg~
│           ├── maarten-baert_ubuntu_simplescreenrecorder.gpg
│           └── maarten-baert_ubuntu_simplescreenrecorder.gpg~
└── var
    └── lib
        └── apt-clone
            ├── extended_states
            ├── installed.pkgs
            └── uname
user.dz
sumber
26

Ada penjelasan hebat tentang Unix StackExchange yang menjelaskan cara menggunakan aptitude ke daftar paket yang tidak diinstal sebagai dependensi, dan bagaimana membandingkan daftar itu dengan daftar paket default untuk rilis Ubuntu Anda.

Untuk mendapatkan file manifes untuk versi desktop 12.04 dan yang lebih baru, kunjungi situs ini , pilih rilis Anda, dan gulir ke bawah di bawah gambar CD ke bagian file. Anda akan menemukan sesuatu seperti "ubuntu-12.04.4-desktop-amd64 + mac.manifest" yang cocok dengan arsitektur Anda.

Untuk versi server Anda harus mendapatkan file manifes dari ISO yang digunakan untuk menginstal sistem asli. Untuk VPS atau server cloud, penyedia Anda mungkin membuat gambar tersedia atau Anda mungkin perlu menghubungi mereka.

Berikut adalah contoh menggunakan kode dari pos yang dirujuk, bersama dengan modifikasi untuk menginstal di server baru.

Server lama (kode dari pos lain, keluaran disimpan ke file):

aptitude search '~i !~M' -F '%p' --disable-columns | sort -u > currently-installed.list
wget -qO - http://mirror.pnl.gov/releases/precise/ubuntu-12.04.3-desktop-amd64.manifest \
  | cut -f1 | sort -u > default-installed.list
comm -23 currently-installed.list default-installed.list > user-installed.list

Di server baru, salin file menggunakan scp, lalu gunakan sed untuk menambahkan 'install' ke setiap baris (-i melakukan inline-replace). Kemudian Anda dapat menggunakan daftar sebagai input ke 'dpkg --set-choices' dan menginstal paket dengan apt-get:

scp user@oldserver:user-installed.list .
sed -i 's/$/\tinstall/' user-installed.list
sudo dpkg --set-selections < user-installed.list
sudo apt-get dselect-upgrade

Sebelum memulai tugas ini, saya sarankan membaca dan memahami semua bagian dari pos yang disebutkan di awal, dan kemudian berkonsultasi dengan panduan referensi bakat untuk detail tentang pola pencarian.

pemikir
sumber
25

Anda dapat melihat aptlog di bawah /var/log/apt/dan dpkglog di bawah/var/log/

dan Anda bisa mendapatkan daftar paket yang diinstal hanya dengan perintah:

dpkg -l | grep '^ii '
Maythux
sumber
23

Saya terkejut apt-cacheperintah yang dirancang persis untuk tujuan ini belum disebutkan di atas ...

apt-cache pkgnames

Untuk info lebih lanjut, jalankan apt-cache --help:

** apt-cache adalah alat tingkat rendah yang digunakan untuk menanyakan informasi
dari file cache biner APT

Perintah:
   gencaches - Membangun cache paket dan sumber
   showpkg - Menampilkan beberapa informasi umum untuk satu paket
   showsrc - Tampilkan catatan sumber
   stats - Menampilkan beberapa statistik dasar
   dump - Menampilkan seluruh file dalam bentuk singkat
   dumpavail - Cetak file yang tersedia ke stdout
   unmet - Menampilkan dependensi yang tidak terpenuhi
   search - Cari daftar paket untuk pola regex
   show - Menampilkan catatan yang dapat dibaca untuk paket
   depend - Tampilkan informasi ketergantungan mentah untuk suatu paket
   rdepends - Menampilkan informasi dependensi terbalik untuk suatu paket
   pkgnames - Daftar nama semua paket dalam sistem
   dotty - Hasilkan grafik paket untuk GraphViz
   xvcg - Hasilkan grafik paket untuk xvcg
   kebijakan - Tampilkan pengaturan kebijakan

Pilihan:
  -h Teks bantuan ini.
  -p =? Cache paket.
  -s =? Cache sumber.
  -q Nonaktifkan indikator kemajuan.
  -i Tampilkan hanya deps penting untuk perintah yang tidak terpenuhi.
  -c =? Baca file konfigurasi ini
  -o =? Tetapkan opsi konfigurasi yang berubah-ubah, misalnya -o dir :: cache = / tmp
Lihat halaman manual apt-cache (8) dan apt.conf (5) untuk informasi lebih lanjut.
**
ostrokach
sumber
5
TLDR; Saya akhirnya menemukan bahwa apt --installed listmemberikan hasil terbaik (seperti yang disarankan dalam jawaban teratas di atas. Meskipun apt-cache pkgnamestampaknya melakukan trik pada pandangan pertama, itu daftar "semua paket dalam sistem" (per teks bantuan di atas), yang juga termasuk paket yang perlu diketahui tentang tetapi tidak benar-benar diinstal. Ada --installedopsi tetapi tampaknya tidak bekerja dengan baik pkgnames.
sxc731
2
apt-cache pkgnames | wc -lmemberikan 55909paket (sistem tahu tentang), sedangkan aptitude search '~i!~M' | wc -lmemberi 2160(paket diinstal secara eksplisit, tanpa dependensi).
knb
18

Perintah di bawah ini juga akan mencantumkan semua paket yang diinstal,

grep ' installed ' /var/log/dpkg.log /var/log/dpkg.log.1 | awk '{print $5}' | sort -u
Avinash Raj
sumber
The .1 di sana menyiratkan log diputar, jika itu yang terjadi maka mungkin lebih baik untuk grep /var/log/dpkg.log*untuk mendapatkan semua log yang diputar.
Steve Buzonas
17

Bantu wiki komunitas ini - Tambahkan solusi terbaru.


dpkg, xargs, & apt-get

Perintah ini harus menyelesaikan pembuatan file teks yang berisi paket yang diinstal:

dpkg -l | awk  '{print $2}' > package_list.txt

Untuk menyelesaikan instalasi massal paket yang terdaftar, Anda perlu mengedit 'package_list.txt'. Hapus garis aneh di bagian atas file menggunakan editor teks. Anda kemudian dapat menggunakan perintah ini untuk menginstal paket dari file yang dibuat menggunakan:

xargs < package_list.txt apt-get install -y

apt-cache, xargs, & apt-get

Hanya gunakan metode ini jika Anda ingin semua paket saat ini diinstal menggunakan daftar ( yang termasuk diinstal secara otomatis, dll).

Keluarkan respons 'apt-cache pkgnames' ke file, kami cukup beri nama "package_list.txt". Anda dapat melakukannya dengan:

apt-cache pkgnames > package_list.txt

Kemudian ketika Anda ingin menginstal paket dari "package_list.txt" Anda akan menggunakan perintah ini:

xargs < package_list.txt apt-get install -y

apt-mark, xargs, & apt-get

Kita dapat menggunakan perintah apt-mark showmanualuntuk memberikan daftar paket yang secara manual atau awalnya diinstal dengan Ubuntu. Kami ingin menampilkannya ke file, kami hanya akan memanggil "package-list.txt". Gunakan perintah ini untuk mencapai itu:

apt-mark showmanual > package-list.txt

Perintah yang akan kita gunakan untuk menginstal paket dari file "package_list.txt" di bawah ini.

xargs < package_list.txt apt-get install -y

Utilitas Migrasi Aptik

Utilitas untuk menyederhanakan instalasi ulang paket perangkat lunak setelah memutakhirkan / menginstal ulang distribusi berbasis Ubuntu.
[ Launchpad | Aptik ]

Untuk informasi tentang Aptik, coba kunjungi halaman resminya , dan untuk tangkapan layar klik di sini atau lihat akhir bagian ini.

Menginstal Aptik sederhana. Ikuti langkah ini:

  1. Tambahkan PPA dengan:
    sudo add-apt-repository -y ppa:teejee2008/ppa

  2. Perbarui apt dengan perintah di bawah ini.
    sudo apt-get update

  3. Instal Aptik menggunakan:
    sudo apt-get install aptik

Aptik Migration Utility v16.5.2


David teman Anda
sumber
1
Output dari apt-mark showmanualtermasuk Bash, Unity, dan Xorg, antara lain. Apakah mereka seharusnya ada di sana?
wjandrea
@wjandrea output dari 'apt-mark showmanual' termasuk Bash & Unity di daftar yang saya hasilkan juga. Seharusnya normal karena daftar perintah diinstal secara manual & awalnya diinstal dengan Ubuntu.
David temanmu
16

Untuk menyimpan daftar paket yang diinstal ke file bernama installed_packages.txt, jalankan saja:

dpkg-query --list >> installed_packages.txt
wb9688
sumber
3

Saya pikir itu menarik untuk dicatat apt list --installedatau dpkg-query --listbenar - benar menggunakan file yang dipanggil /var/lib/dpkg/statusdi belakang di mana semua info tentang paket adalah jenggot.

Jadi, jika Anda hanya ingin berurusan dengan daftar paket super luas cat /var/lib/dpkg/status.

Catatan: Jangan ubah /var/lib/dpkg/statusfile.

prosti
sumber
3

Selain paket APT , banyak paket GUI saat ini didistribusikan sebagai terkunci .

Jika paket Anda tidak ditemukan apt list --installed, maka coba snap list:

$ snap list

Name                  Version                     Rev   Tracking  Publisher       Notes
gimp                  2.10.10                     165   stable    snapcrafters    -
gnome-calculator      3.32.1                      406   stable/…  canonical✓      -
keepassxc             2.4.1                       267   stable    keepassxreboot  -
...

Ini juga merupakan ide yang baik untuk ditambahkan /snap/binke PATH sehingga Anda dapat memulai dari terminal (dilakukan secara otomatis untuk pengguna non-root).

rustyx
sumber
1

Paket dctrl-toolsmenyediakan grep-statusalat untuk mendapatkan daftar paket yang ditandai sebagai diinstal pada sistem Anda:

sudo apt install dctrl-tools

Pemakaian:

grep-status -FStatus -sPackage -n   "install ok installed"

Lihat : man dctrl-tools

GAD3R
sumber
1

https://www.rosehosting.com/blog/list-all-installed-packages-with-apt-on-ubuntu/ :

1. Daftar paket perangkat lunak yang diinstal pada Ubuntu

Untuk mendaftar paket perangkat lunak yang diinstal pada mesin Anda, Anda dapat menggunakan perintah berikut:

sudo apt list --installed

Output dari perintah akan sangat mirip dengan yang berikut, tergantung pada paket mana yang saat ini diinstal:

Listing...
acl/xenial,now 2.2.52-3 amd64 [installed]
adduser/xenial,xenial,now 3.113+nmu3ubuntu4 all [installed]
apache2/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 amd64 [installed]
apache2-bin/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 amd64 [installed,automatic]
apache2-data/xenial-updates,xenial-updates,xenial-security,xenial-security,now 2.4.18-2ubuntu3.1 all [installed,automatic]
apache2-doc/xenial-updates,xenial-updates,xenial-security,xenial-security,now 2.4.18-2ubuntu3.1 all [installed]
apache2-utils/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 amd64 [installed]
apparmor/xenial-updates,now 2.10.95-0ubuntu2.5 amd64 [installed,automatic]
apt/xenial-updates,now 1.2.19 amd64 [installed]
apt-utils/xenial-updates,now 1.2.19 amd64 [installed]
...

2. Gunakan program KURANG

Untuk dengan mudah membaca seluruh output Anda dapat menggunakan lessprogram ini.

sudo apt list --installed | less

3. Gunakan Perintah GREP

Anda dapat mencari paket tertentu melalui output menggunakan grepprogram.

sudo apt list --installed | grep -i apache

4. Sebutkan semua paket yang menyertakan Apache

Output dari perintah di atas akan mencantumkan semua paket yang termasuk apachedalam namanya.

apache2/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 amd64 [installed]
apache2-bin/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 amd64 [installed,automatic]
apache2-data/xenial-updates,xenial-updates,xenial-security,xenial-security,now 2.4.18-2ubuntu3.1 all [installed,automatic]
apache2-doc/xenial-updates,xenial-updates,xenial-security,xenial-security,now 2.4.18-2ubuntu3.1 all [installed]
apache2-utils/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 amd64 [installed]
libapache2-mod-php/xenial,xenial,now 1:7.0+35ubuntu6 all [installed,automatic]
libapache2-mod-php7.0/xenial-updates,now 7.0.13-0ubuntu0.16.04.1 amd64 [installed,automatic]
libapache2-mod-security2/xenial,now 2.9.0-1 amd64 [installed]
libapache2-modsecurity/xenial,xenial,now 2.9.0-1 all [installed]

Apt mendukung pola untuk mencocokkan nama paket dan opsi untuk mendaftar (--installed)paket yang diinstal , (--upgradeable) paket yang dapat diupgrade atau semua (--all-versions)versi paket yang tersedia .

5. Gunakan program DPKG

Alternatif lain yang dapat Anda gunakan untuk mendaftar paket perangkat lunak yang diinstal pada VPS Ubuntu Anda adalah dpkgperintah.

sudo dpkg -l

Output dari perintah akan memberi Anda informasi seperti nama paket, versi, arsitektur dan deskripsi singkat tentang paket. Tentu saja, Anda dapat menggunakan grepprogram ini lagi untuk mencari paket tertentu.

sudo dpkg -l | grep -i apache

Outputnya akan terlihat seperti di bawah ini:

ii  apache2                       2.4.18-2ubuntu3.1                     amd64        Apache HTTP Server
ii  apache2-bin                   2.4.18-2ubuntu3.1                     amd64        Apache HTTP Server (modules and other binary files)
ii  apache2-data                  2.4.18-2ubuntu3.1                     all          Apache HTTP Server (common files)
ii  apache2-doc                   2.4.18-2ubuntu3.1                     all          Apache HTTP Server (on-site documentation)
ii  apache2-utils                 2.4.18-2ubuntu3.1                     amd64        Apache HTTP Server (utility programs for web servers)
rc  apache2.2-common              2.2.22-6ubuntu5.1                     amd64        Apache HTTP Server common files
ii  libapache2-mod-php            1:7.0+35ubuntu6                       all          server-side, HTML-embedded scripting language (Apache 2 module) (default)
rc  libapache2-mod-php5           5.5.9+dfsg-1ubuntu4.16                amd64        server-side, HTML-embedded scripting language (Apache 2 module)
ii  libapache2-mod-php7.0         7.0.13-0ubuntu0.16.04.1               amd64        server-side, HTML-embedded scripting language (Apache 2 module)
ii  libapache2-mod-security2      2.9.0-1                               amd64        Tighten web applications security for Apache
ii  libapache2-modsecurity        2.9.0-1                               all          Dummy transitional package
ii  libapr1:amd64                 1.5.2-3                               amd64        Apache Portable Runtime Library
ii  libaprutil1:amd64             1.5.4-1build1                         amd64        Apache Portable Runtime Utility Library
ii  libaprutil1-dbd-sqlite3:amd64 1.5.4-1build1                         amd64        Apache Portable Runtime Utility Library - SQLite3 Driver
ii  libaprutil1-ldap:amd64        1.5.4-1build1                         amd64        Apache Portable Runtime Utility Library - LDAP Driver
.

Dengan kompetisi tutorial ini, Anda telah berhasil mempelajari cara mendaftar paket yang diinstal di Ubuntu.

MAK Ripon
sumber
0

Ada banyak cara untuk melakukan itu. Jika Anda menggunakan CentOS seperti saya, Anda dapat menggunakan ini: 1. yum list installed 2.rpm -qa

saeed mohammadi
sumber