Вопрос или проблема
Если я вручную загружаю файл .deb
(например, с помощью apt install --download-only
, который сохраняет файл в /var/cache/apt/archives/
), как я могу перечислить файлы, которые он содержит, и извлечь один конкретный файл?
Чтобы перечислить файлы в пакете:
dpkg --contents foobar.deb
Чтобы извлечь конкретный файл:
dpkg --fsys-tarfile foobar.deb | tar -xO ./path/to/file.ext > file.ext
Спасибо https://lists.debian.org/debian-user/2003/04/msg02861.html за полезный совет.
Другой вариант – открыть файл .deb
в File Roller, который работает так же хорошо для пакетов Debian, как и для zip-файлов и tarball’ов.
Вы можете перечислить файлы пакета с помощью:
dpkg-query -L /var/cache/apt/archives/foo_1.2.3.deb
Затем извлечь весь пакет в foo_1.2.3
dpkg-deb -x /var/cache/apt/archives/foo_1.2.3.deb foo_1.2.3
если вас интересуют скрипты пакета (preinst
, postinst
, …)
dpkg-deb -e /var/cache/apt/archives/foo_1.2.3.deb foo_1.2.3-scripts
Ответ или решение
Чтобы извлечь один конкретный файл из .deb пакета, необходимо следовать определённым шагам и использовать специальные команды в терминале. В этом ответе будет рассмотрен процесс, включая перечисление файлов, содержащихся в пакете, и методы извлечения конкретного файла.
Шаг 1: Перечисление файлов в .deb пакете
Первым шагом вам необходимо просмотреть содержимое .deb файла. Для этого используется команда:
dpkg --contents название_пакета.deb
Эта команда выведет список всех файлов, содержащихся в пакете, с указанием их путей. Таким образом, вы сможете найти именно тот файл, который вам нужен.
Шаг 2: Извлечение конкретного файла
После того как вы нашли нужный файл в выводе предыдущей команды, вы можете извлечь его с помощью следующей команды:
dpkg --fsys-tarfile название_пакета.deb | tar -xO ./путь/к/файлу.ext > файл.ext
Здесь:
название_пакета.deb
— имя вашего .deb файла.путь/к/файлу.ext
— путь к файлу внутри пакета, который вы хотите извлечь.файл.ext
— имя файла, который будет сохранён на вашем компьютере.
Альтернативные методы
Существует также несколько других методов извлечения файлов из .deb пакетов.
Использование программы File Roller
Если вам удобнее использовать графический интерфейс, вы можете открыть .deb файл в приложении File Roller. Эта утилита работает аналогично архиваторам, таким как Zip и Tar, и позволяет вам легко извлекать файлы.
Комплексное извлечение содержимого
Если вас интересует извлечение всех файлов из пакета, вы можете использовать следующую команду:
dpkg-deb -x путь/к/файлу.deb путь/к/директории
Эта команда извлечёт все файлы из .deb пакета в указанную вами директорию.
Извлечение скриптов пакета
Если вам необходимо просмотреть скрипты установки и удаления пакета, используйте команду:
dpkg-deb -e путь/к/файлу.deb путь/к/директории_для_скриптов
Это позволит вам сохранить скрипты, такие как preinst
, postinst
и другие.
Заключение
Извлечение файлов из .deb пакетов — это простая задача, которая требует всего лишь нескольких команд в терминале. Зная, как перечислить файлы и правильно использовать команды для извлечения, вы сможете легко работать с пакетами и находить необходимые вам файлы. Если вы предпочитаете графический интерфейс, инструменты как File Roller облегчат этот процесс.
Используя вышеуказанные методы, вы сможете максимально эффективно управлять .deb пакетами в вашей системе.