Bagaimana cara mengetahui paket Debian dari mana file berasal?
sumber
Bagaimana cara mengetahui paket Debian dari mana file berasal?
Ada beberapa utiliti di Debian yang melakukan tugas ini; periksa halaman ini untuk deskripsi. Saya akan menyebutkan dua dari mereka, apt-file
dan dlocate
.
apt-file
mencari cache internal, sehingga memungkinkan Anda untuk tidak menginstal semua paket yang ingin Anda cari. Di bawah ini Anda akan menemukan panduan lebih rinci.
dlocate
adalah alternatif cepat untuk dpkg -L
(perintah yang mencantumkan konten paket), dan karena itu, pencarian hanya paket yang diinstal. Pencarian dilakukan oleh dlocate -S file.name
.
Anda juga dapat mencari paket secara online menggunakan server packages.debian.org (bagian Cari konten paket ).
apt-file
Sebaiknya perbarui dulu:
sudo apt-get update
Lihat untuk apa apt-file
:
apt-cache show apt-file
Pasang itu:
sudo apt-get install apt-file
Baca data dari repositori (ini berfungsi juga tanpa sudo
tetapi menciptakan cache pengguna kemudian; dengan sudo
cache adalah seluruh sistem):
sudo apt-file update
Lakukan pencarian. Dalam contoh ini kita ingin tahu di mana paket yang xrandr
dapat dieksekusi adalah:
apt-file search xrandr
Ini daftar banyak paket dengan unxrandr
, lxrandr.mo
atau source_lxrandr.py
. Tidak terlalu berguna dalam kasus kami. Pencarian lebih pintar:
apt-file search -x /xrandr$
( $
menunjukkan ujung garis). Contoh output:
bash-completion: /usr/share/bash-completion/completions/xrandr
x11-xserver-utils: /usr/bin/xrandr
Hasil pertama tidak terlihat seperti dieksekusi, yang kedua tidak. Kami dapat menyelidiki lebih lanjut. Lari:
apt-cache show x11-xserver-utils
Bingo! Ini paketnya.
Di mana bash adalah nama paket.
sumber
dpkg-query -S
DAN mengirim Anda ke jalan yang salah menginstal paket opsional ..Alternatif lain:
Setidaknya pada Ubuntu saya, keduanya sepertinya ada dalam
dpkg
paket, jadi tidak ada keuntungan nyata untuk yang spesifik ...sumber
File yang dihasilkan instalasi tidak akan ditemukan oleh
dpkg -S
, seperti yang disebutkan di: https://askubuntu.com/a/667227/52975Misalnya,
/bin/nc
muncul ketika Anda menginstal paketnetcat-openbsd
.Tetapi setelah:
kita dapatkan
dpkg-query: no path found matching pattern /bin/nc
.Ini terjadi karena
/bin/nc
dihasilkan olehupdate-alternatives
panggilan dalam skrip postinst yang dijalankan setelah instalasi.Ini berfungsi seperti ini karena versi lain
/bin/nc
disediakan olehnetcat-traditional
paket.Saya tidak berpikir ada cara umum untuk menemukan file yang dihasilkan tersebut. Khusus untuk symlink alternatif, kami dapat mengikuti tautan dengan
readlink -f
:sumber
Tidak terbiasa dengan Debian, saya bingung ketika saya mencoba ini:
Sedikit penyelidikan dan saya menemukan paket:
sumber