Hangi paketin bir dosyaya sahip olduğunu nasıl bulurum?


Yanıtlar:


44

Debian'da bu görevi yerine getiren birçok fayda var; bir açıklama için bu sayfayı kontrol edin . İkisinden söz edeceğim apt-fileve dlocate.

apt-filedahili önbelleğini arar, böylece aramak istediğiniz tüm paketleri kurmamanıza izin verir. Aşağıda daha ayrıntılı bir rehber bulacaksınız.

dlocatedpkg -L(paket içeriğini listeleyen komut) hızlı bir alternatiftir ve bu nedenle yalnızca kurulu paketleri arar. Arama tarafından gerçekleştirilir dlocate -S file.name.

Ayrıca paketleri.debian.org sunucusunu ( paketlerin içeriğini arama bölümü) kullanarak çevrimiçi olarak arama yapabilirsiniz .


Yükleme ve kullanma apt-file

İlk önce güncellemek iyi bir fikirdir:

sudo apt-get update

Ne apt-fileiçin olduğuna bakın :

apt-cache show apt-file

Yükle:

sudo apt-get install apt-file

Depolardaki verileri okuyun (bu işlem aynı zamanda çalışır, sudoancak kullanıcının önbelleğini oluşturur; daha sonra sudoönbellek sistem çapındadır):

sudo apt-file update

Arama yap. Bu örnekte hangi paketin xrandrçalıştırılabilir olduğunu bilmek istiyoruz :

apt-file search xrandr

Bu birçok paketleri listeler unxrandr, lxrandr.moya source_lxrandr.py. Bizim durumumuzda pek kullanışlı değil. Daha akıllıca arama:

apt-file search -x /xrandr$

( $satırın sonunu gösterir). Örnek çıktı:

bash-completion: /usr/share/bash-completion/completions/xrandr
x11-xserver-utils: /usr/bin/xrandr

İlk sonuç çalıştırılabilir gibi görünmüyor, ikincisi ise sonuçta göze çarpıyor. Daha fazla araştırma yapabiliriz. Çalıştırmak:

apt-cache show x11-xserver-utils

Bingo! Bu paket.


Bu cevaptaki ilk bağlantı ( debianhelp.co.uk/findfile.htm ) şimdi geçersiz sayılıyor .
rogpeppe

123
user@host:~$ dpkg-query -S /bin/bash 
bash: /bin/bash

Bash, paket adıdır.


4
Bu cevap kabul edilenden çok daha iyi!
Bex

Doğru. “Kabul edilen cevabın” yeşil bir onay işareti alması da talihsiz bir durumdur, ki bu aynı zamanda “doğru cevabı” da gösteren bir işarettir. Bu durumda, kabul edilen cevap cevap vermez dpkg-query -SVE isteğe bağlı paketleri kurmanın yanlış yolunu size gönderir ..
Scott Prive

42

Başka bir alternatif:

$ dpkg -S /bin/bash
bash: /bin/bash

En azından Ubuntu'mda, her ikisi de dpkgpakette görünüyor , bu yüzden herhangi birinin özel bir avantajı yok ...


14

Kurulum tarafından oluşturulan dosyalar şurada dpkg -Sbelirtildiği gibi bulunmayacaktır : https://askubuntu.com/a/667227/52975

Örneğin /bin/nc, paketi yüklediğinizde görünür netcat-openbsd.

Ancak üzerine:

dpkg -S /bin/nc

anlıyoruz dpkg-query: no path found matching pattern /bin/nc.

Bunun nedeni /bin/nc, kurulumdan sonra çalıştırılan postinst betiğindekiupdate-alternatives çağrı tarafından üretilmesidir .

Böyle çalışır, çünkü paketin başka bir sürümü de /bin/ncverilir netcat-traditional.

Bu tür oluşturulan dosyaları bulmanın genel bir yolu olduğunu sanmıyorum. Alternatif semboliklerin özel durumunda, şu bağlantıyı takip edebiliriz readlink -f:

dpkg -S "$(readlink -f /bin/nc)"

2

Debian'a aşina olmam, bunu denediğimde şaşırmıştım:

kearnsp@xubuntuvb:~$ dpkg -S /usr/bin/vncviewer
dpkg-query: no path found matching pattern /usr/bin/vncviewer
kearnsp@xubuntuvb:~$ 

Biraz araştırma ve paketi buldum:

kearnsp@xubuntuvb:~$ ls -l /usr/bin/vncviewer
lrwxrwxrwx 1 root root 27 May 28 15:49 /usr/bin/vncviewer -> /etc/alternatives/vncviewer
kearnsp@xubuntuvb:~$ ls -l /etc/alternatives/vncviewer
lrwxrwxrwx 1 root root 20 May 28 15:49 /etc/alternatives/vncviewer -> /usr/bin/xvnc4viewer
kearnsp@xubuntuvb:~$ dpkg -S /usr/bin/xvnc4viewer
xvnc4viewer: /usr/bin/xvnc4viewer
kearnsp@xubuntuvb:~$ 
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.