İkili kaynak paketini bulmak için komut?


33

Biliyorum ki bir whichkomutun tam adı yankılandı (örn. which sh). Ancak, belirli bir ikili dosya sağlayan paketi tekrarlayan bir komut olduğundan eminim. Böyle bir komut var mı? Eğer öyleyse, bu nedir? Bunu çalıştırabilmek isterim:

commandName ls

ve Al

coreutils

Örneğin.

Yanıtlar:


36

Sanırım dpkg -Skomutu arıyorsunuz ( dpkg için sıkça kullanılan seçeneklere de bakınız ).


4
Teşekkür ederim! dpkg -S `which COMMANDHERE`benim için çalıştı.
Delan Azabani,

Gentoo: qfile <name>
Sergei

dpkg -Ssource (code) paketinin adından farklı olabilecek ikili paket adının adını bulur.
Tino,

Sadece bütünlük için , aslında komut için bir seçenek olan seçeneğin -Skısa şeklidir (ancak düz de işe yarıyor)--searchdpkg-querydpkg
zorlayıcı

10

Dosyaları henüz yüklemediğiniz bir pakette bulmak istiyorsanız, apt-file kullanın.

apt-get install -y apt-file
apt-file update

Sonra bir şey bulmak için:

apt-file search /usr/bin/file

veya

apt-find search file

Nerede "dosya" aradığın şeyin adı.

Her debian sistemde bunu yapmak istemiyorsanız, bu betiği kullanabilirsiniz:

#!/bin/bash
which apt-get >/dev/null || { echo apt-get not found >&2; exit 1; }
which apt-file >/dev/null || { apt-get install -y apt-file;  apt-file update; }
unset i; IFS=$'\x0a'; select i in $( apt-file search "/$@" ); do 
    test -n "$i" || break; apt-get install "${i%% *}"; done

Bunu daha sonra çırptım, ama iyi çalışıyor gibi görünüyor.

Not: "dpkg -S" yalnızca önceden kurduğunuz şeyleri bulur.


3
Kullanılması -yparametre tehlikelidir, bu şeylerin herhangi bir sayı için evet diyebiliriz. Komut dosyasında iyi olabilir, ancak ilk komut , kullanıcının sisteminin neye benzediğini bilemediğiniz apt-get install apt-fileiçin gerçekten okumalıdır -y.
jmiserez
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.