Как просмотреть содержимое пакета в Linux
Мы уже знали, как составлять список установленных пакетов, а также как составлять список зависимостей пакета в Linux. Сегодня мы увидим, как вывести содержимое пакета в Linux. Не имеет значения, установлен пакет или нет. Можно прочитать содержимое установленного или неустановленного пакета.
В Linux и Unix большинство программ обычно не располагаются в одном каталоге. Когда вы устанавливаете пакет, все файлы в этом пакете разбросаны по файловой системе и сохраняются по разным путям. Обычно исполняемые файлы (например, двоичные файлы/скрипты) хранятся в каталогах «/bin», «/usr/bin» или «/usr/local/bin», файлы библиотек — в «/usr/lib», файлы конфигурации — в каталоге «/usr/lib». «/etc», статические данные в «/usr/share» и т. д. Теперь давайте найдем список файлов в пакете и где они на самом деле хранятся в Linux.
Получение списка содержимого пакета в Linux
Сначала мы увидим, как читать содержимое пакета в системах на базе DEB, например Ubuntu.
Список содержимого установленного пакета в Ubuntu
Я уже установил пакет Microsoft Teams на свой рабочий стол Ubuntu 20.04.
Чтобы просмотреть содержимое пакета Microsoft Teams, просто запустите:
dpkg -L teams
Пример вывода:
/.
/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
Видеть? В приведенном выше выводе показаны файлы, установленные пакетом Teams, и их расположение в моей системе Ubuntu.
Вот еще один способ просмотреть содержимое установленного пакета в Ubuntu:
dpkg-query -L teams
Перечислите содержимое неустановленного пакета в Ubuntu
Как я уже сказал, приведенные выше команды отображают содержимое установленного пакета. Что делать, если пакет не установлен и вы хотите прочитать его содержимое? Это тоже возможно! Вы можете узнать, какие файлы будут установлены пакетом, еще до его установки.
Сначала загрузите файл .deb. Я уже загрузил файл .deb приложения Teams. Перейдите в папку, в которую вы загрузили файл .deb, и выполните следующую команду, чтобы просмотреть его содержимое:
dpkg --contents teams_1.2.00.32451_amd64.deb
Или,
dpkg -c teams_1.2.00.32451_amd64.deb
Пример вывода:
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
Альтернативно вы можете сделать это с помощью инструмента apt-file.
Установите apt-файл, как показано ниже, если он еще не установлен:
sudo apt install apt-file
Если вы только что установили apt-файл, общесистемный кеш может быть пуст. Вам нужно запустить «apt-file update» от имени пользователя root, чтобы обновить кеш. Вы также можете запустить «обновление apt-файла» от имени обычного пользователя, чтобы использовать кеш в домашнем каталоге пользователя.
Давайте обновим кеш базы данных с помощью команды:
sudo apt-file update
Теперь перечислите содержимое установленного пакета, например vim, как показано ниже:
apt-file list vim
Пример вывода:
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
Инструмент apt-file также используется для поиска пакетов, предоставляющих определенный файл. Например, найдите пакет, содержащий файл alisp.h , с помощью команды:
apt-file find alisp.h
Или,
apt-file search alisp.h
Пример вывода:
libasound2-dev: /usr/include/alsa/alisp.h
Как видите, пакет «libasound2-dev» предоставляет файл alisp.h.
Для получения более подробной информации перейдите по следующей ссылке.
- Как найти пакет, предоставляющий определенный файл в Linux
Это несколько способов просмотра содержимого пакета в системах на базе DEB. Теперь посмотрим, как вывести содержимое пакета в системах на базе RPM, например CentOS.
Список содержимого установленного/неустановленного пакета в CentOS
В системах на базе RPM, таких как CentOS, мы можем найти содержимое пакета с помощью команды repoquery.
Пакет «yum-utils» предоставляет команду repoquery, поэтому давайте установим его с помощью команды:
sudo yum install yum-utils
Теперь давайте узнаем содержимое пакета редактора «nano» с помощью команды:
repoquery --installed --list nano
Или,
repoquery --list nano
Или,
repoquery -l nano
Пример вывода:
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
Таким же образом вы можете просмотреть содержимое неустановленного файла. Перейдите в папку, куда вы загрузили RPM-файл, и просмотрите его содержимое, как показано ниже:
repoquery --list nano-2.9.8-1.el8.x86_64.rpm
Связанное чтение:
- Как загрузить пакет RPM со всеми зависимостями в CentOS
Надеюсь это поможет.