Pertanyaan Bagaimana cara memeriksa apakah paket diinstal di server saya?


Saya baru-baru ini menginstal Ubuntu Server edisi 13.10 (Saucy Salamander). Tapi saya mengalami sedikit masalah.

Pada akhir instalasi, ia meminta Anda untuk beberapa paket tambahan apakah Anda menginginkannya atau tidak, seperti server OpenSSH dan host mesin virtual. Inilah yang saya lihat:

Enter image description here

Sekarang, masalah saya adalah bahwa saya tidak dapat mengingat apakah saya telah memeriksa kotak "mesin virtual host". Bagaimana cara memeriksa apakah server saya memiliki paket yang sesuai?

Paket apa yang disertakan dengan host mesin virtual?


126
2018-02-19 21:12


asal




Jawaban:


Untuk Daftar semua Paket yang Diinstal

Di sini "kurang" adalah pembaca teks sederhana yang digunakan untuk menggulir daftar paket dalam buffer baru yang terbuka di jendela terminal yang ada. Daftar ini tidak akan tercampur dengan perintah dan keluaran terminal lainnya. Tekan 'q' untuk kembali ke prompt terminal. Lihat "man less" untuk info lebih lanjut.

dpkg -l | less

Untuk memeriksa apakah paket diinstal atau tidak:

dpkg -l {package_name}
dpkg -l vlc

Untuk memeriksa apakah paket diinstal atau tidak (misalnya, vlc). Jika dipasang, luncurkan paket:

dpkg -l | grep vlc

Tunjukkan lokasi di mana paket diinstal. "S" (huruf kapital S) berarti "pencarian"

sudo dpkg -S {package_name}
sudo dpkg -S skype

Untuk menggunakan Grep untuk mencari:

dpkg -l | grep {keywords}
dpkg -l | grep pdf

176
2018-02-20 09:12



Apa perbedaan antara ini dan dpkg-query -l "packagename" - heypaleblue
Jangan bergantung pada kode keluar dpkg -l packagename, karena mungkin kembali dengan kode keluar 0 bahkan jika paket tidak sepenuhnya terinstal - lihat: github.com/bitrise-io/bitrise/issues/433 - Viktor Benei
dpkg -l | cut -d " " -f 3 | grep "^vlc" untuk menampilkan semua nama paket yang dimulai dengan vlc - anatoly techtonik
FYI, ini tidak berfungsi untuk paket meta karena mereka tidak berkorelasi langsung dengan dpkg. Jawaban Anda menjawab pertanyaan seperti yang ditanyakan. - mtalexan


Menggunakan dpkg

Perintah ini adalah manajer paket debian.

Anda dapat mendaftarkan semua paket yang diinstal

dpkg -l

Anda dapat melihat detail untuk paket tertentu dengan

dpkg -p packagename

Dan untuk mengetahui apakah sudah terpasang, gunakan

dpkg -s packagename | grep Status

Anda dapat mempelajari paket mana yang berisi perangkat lunak yang Anda inginkan

apt-cache search name*  

Dalam kasus Anda, Anda harus menggunakan perintah ini untuk mencari nama paket yang Anda inginkan

apt-cache search virtual machine host 

24
2018-02-20 09:10





apt -qq list PACKAGE juga dapat digunakan untuk memeriksa apakah PAKET diinstal.

Jika dipasang itu akan mencetak sesuatu seperti (dengan [installed] di akhir baris):

$ apt -qq list awscli
awscli/stable,now 1.4.2-1 all [installed]

Jika tidak dipasang, hasilnya adalah:

$ apt -qq list awscli
awscli/stable 1.4.2-1 all

20
2017-09-11 13:54



Anda dapat meletakkan bintang di bagian akhir nama paket untuk wildcard. - Brannon
Anda juga dapat menggunakan opsi yang terinstal untuk perintah itu untuk membatasi kecocokan yang benar-benar diinstal. - mtalexan
Apa itu -qq untuk? Tampaknya bekerja secara identik tanpa itu, dan opsi itu tidak ada dalam manual man apt - Gabriel Staples
@GabrielStaples Sepertinya apt list komando belum sepenuhnya didokumentasikan. Beberapa pengujian cepat pada 16.04 tampaknya menunjukkan itu -q adalah sinonim untuk --quiet pilihan. Pertama -q mencegah kata "Done" sedang dicetak. Yang kedua juga mencegah "Pencatatan ..." untuk dicetak. - Anthony Geoghegan


Saya telah menemukan cara untuk memeriksa instalasi paket hanya dengan perintah dpkg-query dan tanpa pipa.

Saya mencari solusi seperti itu sambil menulis tugas untuk playbook ansible.

Jadi, Anda dapat melakukan sesuatu seperti ini:

/usr/bin/dpkg-query --show --showformat='${db:Status-Status}\n' '<your package name>'

Ini hanyalah cara lain untuk melakukan hal itu.


12
2017-09-01 19:47



pipa dapat digunakan dengan shell modul. - sjas


Saya menulis jawaban baru sebagai Tasksel 'Nama tugas' JANGAN muncul di dpkg atau apt pertanyaan. Artinya jawaban yang lain tidak lengkap (atau salah).

"Saya tidak dapat mengingat Jika saya telah memeriksa kotak 'mesin virtual host' .."

Periksa apakah ada tanda bintang dengan nama itu setelah dijalankan kembali sudo tasksel.
(atau sebuah ' saya 'jika berlari tasksel --list-tasks).

Jika Anda tidak melihat ini, maka Anda mungkin tidak memiliki 'tasksel meta-paket'diinstal.


".. Bagaimana saya memeriksa apakah server saya memiliki paket yang sesuai?"

Jika Anda ingin mencari tahu apa yang terinstal di bawah meta-paket tasksel Virtual Machine Host:

tasksel --list-tasks

(dalam kasusmu tasksel --list-tasks | grep virt cukup)

Ini memberi tugas yang tepat nama dan indikasi apakah sudah terpasang.

Dalam kasus Anda, nama tasksel ini virt-host.


"Paket apa yang datang dengan host mesin virtual?"

Dari perintah terakhir, temukan nama tugas tasksel.
Ini diperlukan untuk perintah selanjutnya:

tasksel --task-packages virt-host

Ini daftar meta-paket Tasksel individu (dilambangkan dengan ditambahkan '^') yang membentuk nama.
Dalam kasusmu itu virt-host^.

Setelah Anda menemukan nama meta yang tepat, Anda dapat menggunakan apt:

 apt show virt-host^ | grep "Package:"

(atau apt-cache show  ... jika apt show tidak berfungsi.)

Ini akan menampilkan semua paket yang menyusun paket meta yang diberikan.

Kemudian:

 dpkg -l {each individual pkg name listed above}

Ini akan memberitahu Anda jika paket individual diinstal / dihapus (dicatat oleh huruf kedua: 'i' status berarti terinstal). Lakukan ini untuk semua paket yang terdaftar di bawah paket tugas / meta.

Ini harus menjawab pertanyaan asli.

Catatan sampingan: /usr/share/tasksel/descs/ubuntu-tasks.desc juga berisi deskripsi meta-paket Tasksel. Jika kamu: grep "virt" /usr/share/tasksel/descs/ubuntu-tasks.desc ini akan menampilkan nama meta-paket APT yang tepat. (Dalam kasus Anda ini ubuntu-virt-server). Anda juga bisa menggunakan apt perintah dengan nama-meta ini.

Jika Anda ingin menghapus paket tasksel, ini masuk ke dalam gulma sedikit. Silakan berkonsultasi https://askubuntu.com/a/88897/169878 atau sejumlah jawaban lain di luar sana.

Harap dicatat bahwa paket apt "meta" tidak cocok dengan nama paket Tasksel. Silakan berkonsultasi Halaman Komunitas Tasksel untuk info lebih lanjut.


4
2017-10-19 15:17



Kedua pertanyaan dijawab dengan benar. Jika Anda menurunkan suara, berikan alasan, atau beri tahu mengapa mereka tidak. - bshea


Gunakan tasksel (sudo apt-get install tasksel jika Anda belum memilikinya) dan jalankan tasksel --list-tasks.

tasksel akan mencetak daftar tugas, dan akan ada sebuah i di samping setiap tugas yang diinstal, dan a u di samping setiap tugas yang tidak diinstal.

Jika Anda ingin menginstal tugas, gunakan tasksel install <task>. Nama tugas yang Anda cari adalah virt-host.

Item pemilihan perangkat lunak disebut "tugas".


2
2018-02-19 21:31



terima kasih untuk memberi tahu saya nama tugas, itu adalah salah satu masalah saya, tidak yakin paket mana yang harus dicari. - D.Zou