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

Jak znaleźć pakiet, do którego należy plik w Ubuntu/Debian?

Często zdarza mi się, że podczas pracy na moim systemie Ubuntu 8.04 brakuje jakiegoś programu, strony man lub innego pliku. Czy istnieje jakiś prosty sposób na sprawdzenie jaki pakiet zawiera dany plik (czy jest on już zainstalowany czy nie)? Może jakaś niejasna opcja dla apt lub dpkg?

Odpowiedzi (8)

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

(Debian/Ubuntu) Odkryj do jakiego pakietu należy dany plik ](http://www.commandlinefu.com/commands/view/1947/debianubuntu-discover-what-package-a-file-belongs-to):

dpkg -S /usr/bin/ls

‘dpkg -S’ po prostu pasuje do łańcucha, który mu podasz, więc użycie ‘ls’ jako argumentu pasuje do każdego pliku z dowolnego pakietu, który ma ‘ls’ w nazwie pliku. Więc zazwyczaj dobrym pomysłem jest użycie absolutnej ścieżki. W drugim przykładzie widać, że 12 tysięcy plików, które są znane dpkg pasuje do gołego łańcucha ‘ls’.

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

lub

apt-file search /path/to/file

Aby zainstalować apt-file , użyj:

sudo apt-get install apt-file

Zanim będzie można z niego korzystać, trzeba będzie zaktualizować jego bazę danych:

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

packages.debian.org ](http://packages.debian.org) jest tym, czego zawsze używam do wykonania tego zadania. Jest on lepszy od apt-file, ponieważ może znaleźć również części nazw plików. Jest również połączony z główną listą pakietów, która zawiera opisy, błędy itp. Ogólnie rzecz biorąc, dobra strona. Nie tak użyteczna z linii poleceń, ale wciąż całkiem przydatna.

Dla szybkości dodałem adres url do zakładek:

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

w Firefoxie, i dodałem “debfind” jako słowo kluczowe (kliknij “więcej” w menedżerze zakładek z podświetlonym), więc mogę po prostu wpisać “debfind ” i będzie działać. Możesz zmienić “suite” z unstable na stable lub testing, jeśli chcesz, dla innych wersji dystrybucji.

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

Możesz również użyć dlocate. Ze strony man;

$ 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

Znalazłem Wajig…

wajig whichpackage /path/to/file

np.

wajig whichpackage /etc/apt/sources.list

Wajig jest poręcznym narzędziem wiersza poleceń lub konsoli, które zawiera wszystkie dobroci apt-get, dpkg, których nigdy nie chciałeś się nauczyć. .

Aby zainstalować wajig użyj:

apt-get install wajig

To polecenie ‘whichpackage’ samo w sobie zależy od apt-file

nadal będziesz musiał zaktualizować jego bazę danych, zanim będziesz mógł go użyć: - Nie wiem jeszcze, czy wajig update whixh robi apt-get update również aktualizuje cache plików, ale spodziewam się, że może.

sudo wajig update

sudo apt-file update

( i Super Cow, Easter egss ? ! )

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

Podobnie do odpowiedzi jamuraa dla Debiana, możesz również wejść na stronę http://packages.ubuntu.com/ dla Ubuntu. Będziesz musiał przewinąć trochę w dół, aby znaleźć “Szukaj zawartości pakietów” pole wyszukiwania, gdzie można wprowadzić ścieżkę do pliku.

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

Pakiet command-not-found daje podpowiedzi o potencjalnych poleceniach i nazwie pakietu debianowego. Działa to poprzez wpisanie polecenia w powłoce bash i spojrzenie na jego wyjście.

Na przykład, jeśli nazwa polecenia jest znana:

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

a jeśli polecenie nie jest znane, stosowane są pewne domysły:

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

Spróbuj wyszukać pliki za pomocą http://www.kodkast.com/applications/find-which-package-file-belongs-to

Jest to aplikacja do wyszukiwania plików, które są zawarte w różnych pakietach rpm/linux, i jest bardzo przydatna, gdy nie masz nawet zainstalowanych rpm na komputerze.