GNU/Linux >> Linux Esercitazione >  >> Linux

Come trovare il pacchetto che fornisce un file specifico in Linux

Questo breve tutorial spiega alcuni modi diversi per trovare il pacchetto che fornisce un file specifico in Linux. Questo potrebbe essere utile quando si compila e si installa manualmente un pacchetto. Quando stai compilando un pacchetto dal sorgente, è possibile che tu riceva un messaggio di errore simile a "Nessuna regola per creare un target '', necessario per ''. Interrompi." . Potresti non sapere esattamente quali pacchetti forniscono il file mancante. In questi casi, puoi facilmente scoprire i pacchetti che forniscono quei file mancanti e installarli nella tua macchina Linux come descritto in questa guida.

Trova il pacchetto che fornisce un file specifico in Linux

Arch Linux, Antergos, Manjaro Linux:

Su Arch-based, c'è un piccolo strumento da riga di comando chiamato pkgfile , che viene utilizzato per cercare file dai pacchetti.

Pkgfile viene preinstallato con Arch Linux. In caso contrario, puoi installare utilizzando il seguente comando:

$ sudo pacman -S pkgfile

Quindi, esegui il comando seguente per sincronizzare con il database pkgfile:

$ sudo pkgfile -u

Ora puoi trovare il pacchetto che fornisce un file specifico, ad esempio alisp.h , utilizzando il comando:

$ pkgfile alisp.h
extra/alsa-lib

Come puoi vedere nell'output sopra, alsa-lib il pacchetto fornisce alisp.h file. E il pacchetto è disponibile da extra deposito. Ora puoi installare questo pacchetto come mostrato di seguito.

$ sudo pacman -S alsa-lib

Per elencare tutti i file forniti dal pacchetto alsa-lib, eseguire:

$ pkgfile -l alsa-lib

RHEL, CentOS, Fedora:

Nei sistemi basati su YUM come RHEL e i suoi cloni come CentOS, Scientific Linux, puoi trovare il pacchetto che possiede un particolare file, usando il seguente comando:

$ yum whatprovides '*filename'

Su Fedora, usa invece il seguente comando:

$ dnf provides '*filename'

Se il file è già disponibile nel tuo sistema, ad esempio /bin/ls , puoi quindi trovare il pacchetto che possiede il file usando il comando:

# rpm -qf /bin/ls
coreutils-8.22-18.el7.x86_64

Puoi anche utilizzare il repoquery comando come segue:

$ repoquery -f /bin/ls

Se il comando repoquery non è disponibile nel tuo sistema, installa yum-utils pacchetto.

$ sudo yum install yum-utils

Oppure,

$ sudo dnf install yum-utils

Debian, Ubuntu, Linux Mint:

In qualsiasi sistema basato su DEB, puoi trovare il pacchetto che fornisce un determinato file utilizzando apt-file strumento.

Installa apt-file come mostrato di seguito se non è già installato:

$ sudo apt-get install apt-file

Se hai appena installato apt-file, la cache a livello di sistema potrebbe essere vuota. È necessario eseguire 'apt-file update' come root per aggiornare la cache. Puoi anche eseguire 'apt-file update' come utente normale per utilizzare una cache nella directory home dell'utente.

Aggiorniamo la cache del database usando il comando:

$ sudo apt-file update

Quindi cerca i pacchetti che contengono un file specifico, ad esempio alisp.h , con comando:

$ apt-file find alisp.h

Oppure,

$ apt-file search alisp.h

Il campione sarebbe:

libasound2-dev: /usr/include/alsa/alisp.h

Bene, libasound2-dev è! Puoi installare questo pacchetto usando il comando:

$ sudo apt-get install libasound2-dev

Se hai già il file e volevi solo sapere a quale pacchetto appartiene, puoi utilizzare dpkg comando come mostrato di seguito.

$ dpkg -S $(which alisp.h)

Oppure,

$ dpkg -S `which alisp.h`

Se conosci il percorso completo del file, ad esempio /bin/ls ,  puoi cercare i pacchetti a cui appartiene utilizzando il seguente comando:

$ dpkg -S /bin/ls
coreutils: /bin/ls

SUSE / openSUSE:

Su SUSE e openSUSE, esegui il comando seguente per scoprire a quale pacchetto appartiene un determinato file.

$ zypper wp alisp.h

Oppure,

$ zypper se --provides --match-exact alisp.h

Lettura consigliata:

  • Come elencare i pacchetti installati da un determinato repository in Linux
  • Come trovare le dipendenze per un particolare pacchetto in CentOS

E questo è tutto. Spero questo sia di aiuto. Se conosci altri metodi da trovare per trovare il pacchetto che contiene un file particolare, non esitare a farcelo sapere nella sezione commenti qui sotto. Controllerò e aggiornerò la guida di conseguenza.


Linux
  1. Come utilizzare il comando Tar in Linux

  2. Come elencare le dipendenze di un pacchetto in Linux

  3. Come trovare il file più vecchio in un albero di directory in Linux

  4. Trova il file quindi cd in quella directory in Linux

  5. Come reindirizzare i risultati di "trova" a mv in Linux

Come utilizzare il comando head di Linux

Come usare il comando diff di Linux

Come trovare la versione di Redhat Linux installata

Come trovare una stringa in un file su Linux

Autorizzazioni Linux:come trovare le autorizzazioni di un file

Come trovare file contenenti una stringa di testo specifica in Linux