📦 Как отобразить содержимое пакета Linux |

📦 Как отобразить содержимое пакета Linux

Мануал

Мы уже знали, как составить список установленных пакетов, а также как вывести список зависимостей пакета на Linux.

Сегодня мы увидим, как составить список содержимого пакета Linux.

Неважно, установлен ли пакет или нет.

Можно прочитать содержимое как установленного , так и неустановленного пакета.

В Linux и Unix большинство программ обычно не попадают в один каталог.

При установке пакета все файлы в этом пакете разбросаны по файловой системе и сохранены по разным путям.

Обычно исполняемые файлы (например, бинарники/скрипты) хранятся в каталогах /bin или /usr/bin или /usr/local/bin, библиотеки /usr/lib, файлы конфигурации в «/etc», статические данные в «/usr/share» и т. д.

Теперь давайте найдем список файлов в пакете и где они на самом деле хранятся на Linux.

Как просмотреть подробную информацию о пакете в 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, и выполните следующую команду, чтобы просмотреть его содержимое:

$ 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-file, как показано ниже, если он еще не установлен:

$ sudo apt install apt-file

Если вы только что установили apt-file, кеш системы может быть пустым.

Вам необходимо запустить «apt-file update» от имени пользователя root, чтобы обновить кеш.

Вы также можете запустить «apt-file update» от обычного пользователя, чтобы использовать кеш в домашнем каталоге.

Давайте обновим кеш базы данных командой:

$ 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.

Это несколько способов просмотра содержимого пакета в системах на основе 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

см. также:

Как перечислить зависимости пакета в Linux

🐧 Как установить Perl-модули на Linux

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий