GNU/Linux >> Znalost Linux >  >> Linux

Jak najít balíček, který poskytuje konkrétní soubor v Linuxu

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 '', potřebné pro ''. Stop." . Možná přesně nevíte, které balíčky poskytují chybějící soubor. V takových případech můžete snadno najít balíčky, které tyto chybějící soubory poskytují, a nainstalovat je do linuxové krabice, jak je popsáno v této příručce.

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.


Linux
  1. Jak používat příkaz Tar v Linuxu

  2. Jak najít verzi balíčku v Linuxu

  3. Jak najít výchozího správce souborů?

  1. Jak najít soubor v Linuxu

  2. Jak vypsat seznam závislostí balíčku v Linuxu

  3. Jak najít nejstarší soubor ve stromu adresářů v Linuxu

  1. Jak zjistit, který balíček rpm poskytuje konkrétní soubor nebo knihovnu v RHEL / CentOS

  2. Najděte soubor a poté cd do tohoto adresáře v Linuxu

  3. Jak najdu konkrétní soubor z terminálu Linux?