2009-07-22 19:06:32 +0000 2009-07-22 19:06:32 +0000
310
310

Uitzoeken bij welk pakket een bestand hoort in Ubuntu/Debian?

Ik kom er vaak achter dat ik een programma, man pagina, of ander bestand mis als ik werk op mijn Ubuntu 8.04 systeem. Is er een eenvoudige manier om op te zoeken welk pakket een bepaald bestand bevat (of het al geïnstalleerd is of niet)? Misschien een obscure optie voor apt of dpkg?

Antwoorden (8)

416
416
416
2009-07-22 19:13:44 +0000

(Debian/Ubuntu) Ontdek tot welk pakket een bestand behoort :

dpkg -S /usr/bin/ls

‘dpkg -S’ komt overeen met de string die je opgeeft, dus gewoon ‘ls’ als argument gebruiken komt overeen met elk bestand van elk pakket dat ‘ls’ ergens in de bestandsnaam heeft. Dus meestal is het een goed idee om een absoluut pad te gebruiken. Je kan in het tweede voorbeeld zien dat 12 duizend bestanden die gekend zijn bij dpkg overeenkomen met de kale string ‘ls’.

255
255
255
2009-07-22 19:08:44 +0000
apt-file search filename

of

apt-file search /path/to/file

Om apt-file te installeren, gebruikt u:

sudo apt-get install apt-file

Je moet de database bijwerken voordat je het kunt gebruiken:

sudo apt-file update
20
20
20
2009-07-22 20:07:17 +0000

(http://packages.debian.org) is wat ik altijd gebruik om deze taak uit te voeren. Het is superieur aan apt-file omdat het ook delen van bestandsnamen kan vinden. Het is ook gelinkt aan de hoofdpakkettenlijst die beschrijvingen, bugs, etc. bevat. Al met al een goede website. Niet zo bruikbaar vanaf de commandoregel, maar nog steeds heel bruikbaar.

Voor de snelheid heb ik een bookmark van de url gemaakt:

http://packages.debian.org/search?searchon=contents&keywords=%s&mode=filename&suite=unstable&arch=any

in Firefox, en “debfind” als sleutelwoord toegevoegd (klik op “more” in de bookmark manager met het oplichtend), zodat ik gewoon “debfind ” kan typen en het zal werken. Je kunt de ‘suite’ veranderen van unstable naar stable of testing als je dat wilt, voor andere versies van de distributie.

11
11
11
2011-08-08 19:30:27 +0000

Je kunt ook dlocate gebruiken. Van de man pagina;

$ dlocate [PATTERN]
List all records where either the package name or the filename matches PATTERN.
4
4
4
2013-01-14 02:40:06 +0000

Ik vond Wajig…

wajig whichpackage /path/to/file

b.v.

wajig whichpackage /etc/apt/sources.list

Wajig is een handige command line of console tool die alle apt-get, dpkg goodness omhult die je nooit wilde leren. .

Om wajig te installeren gebruik je:

apt-get install wajig

Dat commando ‘whichpackage’ zelf hangt af van apt-file

je zult nog steeds de database moeten updaten voordat je het kunt gebruiken: - Ik weet nog niet of wajig update whixh doet een apt-get update ook de file cache update, maar ik verwacht van wel.

sudo wajig update

sudo apt-file update

( en Super Cow, Easter egss ? ! )

2
2
2
2013-10-28 10:40:51 +0000

Vergelijkbaar met jamuraa’s antwoord voor Debian, kunt u ook naar http://packages.ubuntu.com/ gaan voor Ubuntu. Je moet een beetje naar beneden scrollen om het “Search the contents of packages” zoekvak te vinden waar je het pad van een bestand kunt invoeren.

0
0
0
2014-11-24 09:59:47 +0000

Het command-not-found pakket geeft je hints over mogelijke commando’s en de naam van het debian pakket. Het werkt door het commando in de bash shell te typen en naar de uitvoer te kijken.

Bijvoorbeeld als de commandonaam bekend is:

zer@ivy:~ 10:45 $ zsh5
The program 'zsh5' is currently not installed. To run 'zsh5' please ask
your administrator to install the package 'zsh'
zsh5: command not found

en als het commando niet bekend is, worden er enkele gissingen toegepast:

zer@ivy:~ 09:46 $ zsh
No command 'zsh' found, did you mean:
 Command 'lsh' from package 'lsh-client' (main)
 Command 'osh' from package 'omake' (main)
 Command 'ysh' from package 'libyaml-shell-perl' (main)
 Command 'ssh' from package 'openssh-client' (main)
 Command 'vsh' from package 'crystalspace' (main)
 Command 'dsh' from package 'dsh' (main)
 Command 'ash' from package 'ash' (main)
 Command 'msh' from package 'nmh' (main)
 Command 'zssh' from package 'zssh' (main)
 Command 'qsh' from package 'gridengine-client' (main)
 Command 'sh' from package 'dash' (main)
 Command 'bsh' from package 'bsh' (main)
zsh: command not found
0
0
0
2012-12-20 00:33:23 +0000

Probeer naar bestanden te zoeken met http://www.kodkast.com/applications/find-which-package-file-belongs-to

Dit is een applicatie om naar bestanden te zoeken die in verschillende rpm’s/linux packages zitten, en is erg handig wanneer je de rpm niet eens op je machine geïnstalleerd hebt.