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?
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?
Jawaban:
The apt
alat pada Ubuntu 14.04 dan di atas membuat ini sangat mudah.
apt list --installed
Untuk mendapatkan daftar paket yang diinstal secara lokal, lakukan ini di terminal Anda:
dpkg --get-selections | grep -v deinstall
( -v
Tag "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 packages
di 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 sudo
atau varian lain yang diperlukan di sini)
sudo dpkg --set-selections < ~/Desktop/packages && sudo apt-get -u dselect-upgrade
lakukan triknya.
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.
apt-get
?
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
...
zgrep -hE '^(Start-Date:|Commandline:)' $(ls -tr /var/log/apt/history.log*.gz ) | egrep -v 'aptdaemon|upgrade' | egrep -B1 '^Commandline:'
dpkg
??
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
ubuntu-desktop
sudah dihapus - mungkin karena salah satu perintah dpkg. hati-hati, butuh waktu berjam-jam untuk memperbaiki kerusakan!
sudo apt-mark hold name-your-package
. Ini akan mencegah apt-get dari memperbarui ke versi saat ini yang merupakan standar untuk proses pembaruan.
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
apt-mark showmanual
tidak juga. Itu juga daftar banyak paket yang diinstal secara otomatis, mungkin bagian dari instalasi dasar.
apt list --manual-installed
.
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
# for pkg in `cat installed-pkgs`; do apt-get install -y $pkg; done
di sistem kedua saya telah membuat ini sehingga akan menginstal Paket.
apt-get install -y $(< installed-pkgs)
akan membuatnya agar apt-get berjalan sekali saja dan menangani semua dependensi sekaligus.
sudo apt-get build-dep name-package; sudo apt-get install name-package;
?
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.
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.
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.
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.)
Buka Pusat Perangkat Lunak dan cari opsi "Sinkronkan Komputer ..." di bawah menu File.
Ketika Anda mengkliknya, Anda akan melihat komputer Anda terdaftar dan daftar semua aplikasi di komputer Anda.
Ketika Anda akan menginstal yang baru, komputer itu akan dianggap sebagai komputer baru.
Anda hanya perlu masuk ke akun Ubuntu Anda dan komputer Anda sebelumnya akan ditampilkan.
Klik di atasnya; Anda akan mendapatkan daftar semua aplikasi. Pilih "instal" pada aplikasi yang ingin Anda instal.
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/
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.
apt-get install aptik-gtk
juga
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-selections
solusinya karena:
Cara Penggunaan
Pasang
sudo apt-get install apt-clone
Buat cadangan
sudo apt-clone clone path-to/apt-clone-state-ubuntu-$(lsb_release -sr)-$(date +%F).tar.gz
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
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.
Saya terkejut apt-cache
perintah 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. **
apt --installed list
memberikan hasil terbaik (seperti yang disarankan dalam jawaban teratas di atas. Meskipun apt-cache pkgnames
tampaknya 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 --installed
opsi tetapi tampaknya tidak bekerja dengan baik pkgnames
.
apt-cache pkgnames | wc -l
memberikan 55909
paket (sistem tahu tentang), sedangkan aptitude search '~i!~M' | wc -l
memberi 2160
(paket diinstal secara eksplisit, tanpa dependensi).
Untuk jadwal lengkap, lihat:
setengah jalan melintasi halaman:
dpkg --daftar
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
/var/log/dpkg.log*
untuk mendapatkan semua log yang diputar.
Bantu wiki komunitas ini - Tambahkan solusi terbaru.
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
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
Kita dapat menggunakan perintah apt-mark showmanual
untuk 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 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:
Tambahkan PPA dengan:
sudo add-apt-repository -y ppa:teejee2008/ppa
Perbarui apt dengan perintah di bawah ini.
sudo apt-get update
Instal Aptik menggunakan:
sudo apt-get install aptik
apt-mark showmanual
termasuk Bash, Unity, dan Xorg, antara lain. Apakah mereka seharusnya ada di sana?
Saya pikir itu menarik untuk dicatat apt list --installed
atau dpkg-query --list
benar - benar menggunakan file yang dipanggil /var/lib/dpkg/status
di 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/status
file.
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/bin
ke PATH sehingga Anda dapat memulai dari terminal (dilakukan secara otomatis untuk pengguna non-root).
Paket dctrl-tools
menyediakan grep-status
alat 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
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
less
program ini.sudo apt list --installed | less
3. Gunakan Perintah GREP
Anda dapat mencari paket tertentu melalui output menggunakan
grep
program.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
apache
dalam 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
dpkg
perintah.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
grep
program 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.
Ada banyak cara untuk melakukan itu. Jika Anda menggunakan CentOS seperti saya, Anda dapat menggunakan ini: 1. yum list installed
2.rpm -qa