Beberapa paket, memiliki Provides:
tajuk. Sebagai contoh, paket postfix
di Debian Wheezy telah Provides: mail-transport-agent
.
Paket mail-transport-agent
yang tidak ada secara fisik dianggap sebagai paket "virtual".
Bagaimana saya bisa tahu, pada sistem berbasis Debian, jika paket virtual yang diberikan "diinstal" (atau "disediakan")? Bisakah saya mendaftar setiap paket virtual "yang disediakan"?
Petunjuk : untuk mendaftar setiap paket virtual yang ada, diinstal atau tidak, lakukan:aptitude search "~v"
Jawaban:
Untuk daftar paket yang menyediakan
mail-transport-agent
:Buat itu
aptitude search '~Pmail-transport-agent ~i'
hanya mencantumkan paket yang diinstal (jika ada).Untuk membuat daftar semua paket virtual yang disediakan oleh paket yang diinstal saat ini:
Lihat manual bakat untuk penjelasan tentang pola pencarian.
sumber
aptitude
. Saya suka penjelasan dari @ umläute.aptitude search '~Pmysql-server ~i'
yang memberikanmariadb-server-10.0
danmariadb-server-core-10.0
, tetapi ketika saya lakukanaptitude search '~Rprovides:~i ~v'
, saya tidak melihatmysql-server
dalam daftar ... Namun, saya melihatvirtual-mysql-client
,virtual-mysql-client-core
,virtual-mysql-server
danvirtual-mysql-client-core
dalam daftar.masalahnya di sini adalah bahwa ada perbedaan halus antara paket virtual dan paket yang disediakan oleh paket lain.
perbedaannya adalah, bahwa paket dapat memberikan suatu yang nyata paket juga, tidak hanya maya paket.
bagaimanapun, berikut ini akan mencari semua paket yang menyediakan paket dan akan mencetak nama paket dan paket yang disediakannya:
untuk menemukan apakah ada paket yang diinstal pada sistem Anda yang menyediakan yang diberikan (mis. agen pengiriman-surat), gunakan
sumber
grep-available
dangrep-status
tersedia setelah Anda menginstaldctrl-tools
paket.Anda dapat mendeteksi keberadaan paket virtual yang diberikan dengan menggunakan
apt-cache showpkg <virtual>
untuk menampilkan daftar paket kandidat, dan kemudiandpkg -l <canddate> <candidate> ...
untuk menampilkan status instalasi kandidat.Sebagai contoh:
Ini adalah cetakan lengkap:
Saya percaya
dpkg
danapt-cache
merupakan alat tingkat lebih rendah dariaptitude
,grep-available
dangrep-status
. Menggunakan alat tingkat yang lebih rendah mungkin bermanfaat atau tidak, tergantung pada persyaratan khusus Anda.sumber
Anda bisa mendapatkan semua paket virtual dari DAFTAR OTOMATIS NAMA PAKET VIRTUAL . Adapun untuk menentukan apakah paket virtual diinstal saya menggunakan
dpkg -l
dan fakta bahwa ia memiliki kode keluar 0 jika paket diinstal dan kode keluar 1 jika tidak diinstal.sumber
dpkg -l mail-transport-agent
dapat mengembalikan 0 bahkan jika tidak ada paket yang menyediakannya yang saat ini diinstal. Saya pikir ini didasarkan pada kehadiran/var/dpkg/lib/available
tapi saya tidak yakin. Saya melakukan pengecekan yangdpkg -l foo
mengembalikan 1 untuk paket yang belum pernah saya instal tetapi 0 untuk paket yang baru saja saya bersihkan.