Tento stručný návod vysvětluje několik různých způsobů, jak najít balíček, který poskytuje konkrétní soubor v Linuxu. To může být užitečné, když ručně kompilujete a instalujete balíček. Když kompilujete balíček ze zdroje, je možné, že se vám zobrazí chyba podobná „Žádné pravidlo pro vytvoření cíle '
Najděte balíček, který poskytuje konkrétní soubor v Linuxu
Arch Linux, Antergos, Manjaro Linux:
Na platformě Arch existuje malý nástroj příkazového řádku s názvem pkgfile , který se používá k vyhledávání souborů z balíčků.
Pkgfile je dodáván s předinstalovaným Arch Linuxem. Pokud tomu tak není, můžete nainstalovat pomocí následujícího příkazu:
$ sudo pacman -S pkgfile
Poté spusťte následující příkaz pro synchronizaci s databází pkgfile:
$ sudo pkgfile -u
Nyní můžete najít balíček, který poskytuje konkrétní soubor, řekněme například alisp.h pomocí příkazu:
$ pkgfile alisp.h extra/alsa-lib
Jak vidíte na výše uvedeném výstupu, alsa-lib balíček poskytuje alisp.h soubor. A balíček je k dispozici od extra úložiště. Nyní můžete nainstalovat tento balíček, jak je znázorněno níže.
$ sudo pacman -S alsa-lib
Chcete-li zobrazit seznam všech souborů poskytovaných balíčkem alsa-lib, spusťte:
$ pkgfile -l alsa-lib
RHEL, CentOS, Fedora:
V systémech založených na YUM, jako je RHEL a jeho klony jako CentOS, Scientific Linux, můžete najít balíček, který vlastní konkrétní soubor, pomocí následujícího příkazu:
$ yum whatprovides '*filename'
Na Fedoře použijte místo toho následující příkaz:
$ dnf provides '*filename'
Pokud je soubor již ve vašem systému dostupný, řekněte například /bin/ls , pak můžete najít balíček, který vlastní soubor, pomocí příkazu:
# rpm -qf /bin/ls coreutils-8.22-18.el7.x86_64
Můžete také použít repoquery příkaz takto:
$ repoquery -f /bin/ls
Pokud příkaz repoquery není ve vašem systému dostupný, nainstalujte si yum-utils balíček.
$ sudo yum install yum-utils
Nebo,
$ sudo dnf install yum-utils
Debian, Ubuntu, Linux Mint:
V jakémkoli systému založeném na DEB můžete najít balíček, který poskytuje určitý soubor, pomocí apt-file nástroj.
Nainstalujte apt-file, jak je znázorněno níže, pokud ještě není nainstalován:
$ sudo apt-get install apt-file
Pokud jste právě nainstalovali apt-file, může být mezipaměť celého systému prázdná. Chcete-li aktualizovat mezipaměť, musíte spustit 'apt-file update' jako root. Můžete také spustit 'apt-file update' jako normální uživatel a použít cache v domovském adresáři uživatele.
Aktualizujeme mezipaměť databáze pomocí příkazu:
$ sudo apt-file update
A pak vyhledejte balíčky, které obsahují konkrétní soubor, řekněte alisp.h , s příkazem:
$ apt-file find alisp.h
Nebo,
$ apt-file search alisp.h
Příklad by byl:
libasound2-dev: /usr/include/alsa/alisp.h
Dobře, libasound2-dev to je! Tento balíček můžete nainstalovat pomocí příkazu:
$ sudo apt-get install libasound2-dev
Pokud již soubor máte a chtěli byste vědět, ke kterému balíčku patří, můžete použít dpkg příkaz, jak je znázorněno níže.
$ dpkg -S $(which alisp.h)
Nebo,
$ dpkg -S `which alisp.h`
Pokud znáte úplnou cestu k souboru, řekněte například /bin/ls můžete vyhledat balíčky, ke kterým patří, pomocí následujícího příkazu:
$ dpkg -S /bin/ls coreutils: /bin/ls
SUSE / openSUSE:
Na SUSE a openSUSE spusťte následující příkaz a zjistěte, ke kterému balíčku patří určitý soubor.
$ zypper wp alisp.h
Nebo,
$ zypper se --provides --match-exact alisp.h
Doporučené čtení:
- Jak zobrazit seznam nainstalovaných balíčků z určitého úložiště v systému Linux
- Jak najít závislosti pro konkrétní balíček v CentOS
A to je vše. Snad to pomůže. Pokud znáte nějaké další způsoby, jak najít balíček obsahující konkrétní soubor, dejte nám vědět v sekci komentářů níže. Příručku podle toho zkontroluji a aktualizuji.