Již jsme věděli, jak vypsat nainstalované balíčky a také jak vypsat seznam závislostí balíčku v Linuxu. Dnes uvidíme, jak vypsat obsah balíčku v Linuxu. Nezáleží na tom, zda je balíček nainstalován nebo ne. Je možné číst obsah nainstalovaného nebo nenainstalovaného balíčku.
V Linuxu a Unixu většina programů obvykle nekončí v jednom adresáři. Když nainstalujete balíček, všechny soubory v tomto balíčku jsou rozptýleny v systému souborů a uloženy v různých cestách. Obvykle jsou spustitelné soubory (např. binární soubory/skripty) uloženy v adresářích '/bin' nebo '/usr/bin' nebo '/usr/local/bin', soubory knihoven v '/usr/lib', konfigurační soubory v '/etc', statická data v '/usr/share' a tak dále. Nyní najdeme seznam souborů v balíčku a kde jsou ve skutečnosti uloženy v Linuxu.
Seznam obsahu balíčku v Linuxu
Nejprve uvidíme, jak číst obsah balíčku v systémech založených na DEB, například Ubuntu.
Seznam obsahu nainstalovaného balíčku v Ubuntu
Již jsem nainstaloval Microsoft Teams balíček na mé ploše Ubuntu 20.04.
Chcete-li zobrazit obsah balíčku Microsoft Teams, jednoduše spusťte:
$ dpkg -L teams
Ukázkový výstup:
/. /usr /usr/bin /usr/bin/teams /usr/share /usr/share/applications /usr/share/applications/teams.desktop /usr/share/pixmaps /usr/share/pixmaps/teams.png /usr/share/teams . . . /usr/share/teams/swiftshader/libEGL.so /usr/share/teams/swiftshader/libGLESv2.so /usr/share/teams/teams /usr/share/teams/v8_context_snapshot.bin
Vidět? Výše uvedený výstup zobrazuje soubory nainstalované balíčkem Teams a jejich umístění v mém systému Ubuntu.
Zde je další způsob, jak zobrazit obsah nainstalovaného balíčku v Ubuntu:
$ dpkg-query -L teams
Vypsat obsah nenainstalovaného balíčku v Ubuntu
Jak jsem již řekl, výše uvedené příkazy zobrazí obsah nainstalovaného balíčku. Co když balíček není nainstalován a chcete si přečíst jeho obsah? I to je možné! Soubory, které balíček nainstaluje, můžete zjistit ještě před jeho instalací.
Nejprve si stáhněte soubor .deb. Již jsem si stáhl soubor .deb aplikace Teams. Přejděte do umístění, kam jste stáhli soubor .deb, a spusťte následující příkaz pro zobrazení jeho obsahu:
$ dpkg --contents teams_1.2.00.32451_amd64.deb
Nebo,
$ dpkg -c teams_1.2.00.32451_amd64.deb
Ukázkový výstup:
drwxr-xr-x root/root 0 2019-11-20 20:55 ./ drwxr-xr-x root/root 0 2019-11-20 20:54 ./usr/ drwxr-xr-x root/root 0 2019-11-20 20:54 ./usr/bin/ -rwxr-xr-x root/root 286 2019-11-20 20:54 ./usr/bin/teams drwxr-xr-x root/root 0 2019-11-20 20:54 ./usr/share/ drwxr-xr-x root/root 0 2019-11-20 20:54 ./usr/share/applications/ -rw-r--r-- root/root 352 2019-11-20 20:54 ./usr/share/applications/teams.desktop . . . -rwxr-xr-x root/root 286264 2019-11-20 20:54 ./usr/share/teams/swiftshader/libEGL.so -rwxr-xr-x root/root 2677296 2019-11-20 20:54 ./usr/share/teams/swiftshader/libGLESv2.so -rwxr-xr-x root/root 114944384 2019-11-20 20:54 ./usr/share/teams/teams -rw-r--r-- root/root 1040824 2019-11-20 20:54 ./usr/share/teams/v8_context_snapshot.bin
Případně to můžete provést pomocí apt-file nástroj také.
Nainstalujte apt-file, jak je uvedeno níže, pokud ještě není nainstalován:
$ sudo apt 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 jako root spustit ‚apt-file update‘. Můžete také spustit „apt-file update“ jako normální uživatel a použít vyrovnávací paměť v domovském adresáři uživatele.
Aktualizujeme mezipaměť databáze pomocí příkazu:
$ sudo apt-file update
Nyní vypište obsah nainstalovaného balíčku, například vim, jako níže:
$ apt-file list vim
Ukázkový výstup:
vim: /usr/bin/vim.basic vim: /usr/share/bug/vim/presubj vim: /usr/share/bug/vim/script vim: /usr/share/doc/vim/NEWS.Debian.gz vim: /usr/share/doc/vim/changelog.Debian.gz vim: /usr/share/doc/vim/copyright vim: /usr/share/lintian/overrides/vim
Nástroj apt-file se také používá k hledání balíčků, které poskytují konkrétní soubor. Najděte například balíček, který poskytuje alisp.h soubor s příkazem:
$ apt-file find alisp.h
Nebo,
$ apt-file search alisp.h
Ukázkový výstup:
libasound2-dev: /usr/include/alsa/alisp.h
Jak můžete vidět, balíček "libasound2-dev" poskytuje soubor alisp.h.
Další podrobnosti naleznete na následujícím odkazu.
- Jak najít balíček, který poskytuje konkrétní soubor v Linuxu
Toto je několik způsobů, jak zobrazit obsah balíčku v systémech založených na DEB. Nyní se podívejme, jak vypsat obsah balíčku v systémech založených na RPM, například CentOS.
Seznam obsahu nainstalovaného/nenainstalovaného balíčku v CentOS
V systémech založených na RPM, jako je CentOS, můžeme najít obsah balíčku pomocí "repoquery" příkaz.
Balíček "yum-utils" poskytuje příkaz repoquery, takže jej nainstalujme pomocí příkazu:
$ sudo yum install yum-utils
Nyní zjistíme obsah balíčku editoru "nano" pomocí příkazu:
# repoquery --installed --list nano
Nebo,
# repoquery --list nano
Nebo,
# repoquery -l nano
Ukázkový výstup:
Last metadata expiration check: 0:03:02 ago on Tuesday 16 June 2020 06:01:46 PM IST. /etc/nanorc /usr/bin/nano /usr/bin/rnano /usr/lib/.build-id /usr/lib/.build-id/d3 . . . /usr/share/nano/tcl.nanorc /usr/share/nano/tex.nanorc /usr/share/nano/texinfo.nanorc /usr/share/nano/xml.nanorc
Stejným způsobem můžete vypsat obsah nenainstalovaného souboru. Přejděte do umístění, odkud jste stáhli soubor rpm, a zobrazte jeho obsah, jak je uvedeno níže:
# repoquery --list nano-2.9.8-1.el8.x86_64.rpm
Související čtení:
- Jak stáhnout balíček RPM se všemi závislostmi v CentOS
Doufám, že to pomůže.