Дата и время публикации:
Проблема и решение
1. Суть проблемы
Получение содержимого и извлечение файлов с данными и программами без установки deb-пакета через APT на Debian и Ubuntu[3.1].
Пакет с данным и программами представляет собой архивный файл в формате AR(1)[3.2], который распаковывается одноименной командой и включает в себя следующие файлы:
- debian-binary — текстовый файл, содержащий версию пакета в формате .deb;
- control.tar.gz — сжатый файл, содержащий директорию debian/ для сборки пакета и контрольную сумму в MD5SUM(1);
- data.tar.xz — сжатый файл, содержащий все устанавливаемые файл программ и данных на Debian и Ubuntu.
2. Решение
Таким образом, если задача состоит в извлечении, к примеру справочной информации пакета binutils версии 2.38, нужно выполнить ряд незатейлевых манипуляций.
Создать директорию binutils-doc-2.38 c поддирикторией cntx :
~$ mkdir -p binutils-doc-2.38/cntx && cd binutils-doc-2.38
В директорию binutils-doc-2.38 с использованием WGET(1) закачать файл и перейти в поддиректорию cntx :
~$ wget \ http://deb.debhian.org/debian/pool/main/b/binutils/binutils-doc_2.38.90.20220713-2_all.deb && \ cd cntx
Затем, в binutils-doc-2.38/cntx распаковать deb-пакет :
~/binutils-doc-2.38/cntx$ ar x ../binutils-doc_2.38.90.20220713-2_all.deb ~/binutils-doc-2.38/cntx$ ls -la итого 644 drwxr-xr-x 2 user user 4096 авг 11 17:07 . drwxr-xr-x 3 user user 4096 авг 11 17:05 .. -rw-r--r-- 1 user user 504 авг 11 17:07 control.tar.xz -rw-r--r-- 1 user user 643008 авг 11 17:07 data.tar.xz
и посмотреть содержимое data.tar.xz, который предоставляет нужную справочную информацию о версии binutils-2.38 :
binutils-doc-2.38/cntx$ tar -tvf data.tar.xz drwxr-xr-x root/root 0 2022-07-14 13:07 ./ drwxr-xr-x root/root 0 2022-07-14 13:07 ./usr/ drwxr-xr-x root/root 0 2022-07-14 13:07 ./usr/share/ drwxr-xr-x root/root 0 2022-07-14 13:07 ./usr/share/doc/ drwxr-xr-x root/root 0 2022-07-14 13:07 ./usr/share/doc/binutils-doc/ -rw-r--r-- root/root 59379 2022-07-14 13:07 ./usr/share/doc/binutils-doc/changelog.Debian.gz -rw-r--r-- root/root 1970 2022-07-14 13:07 ./usr/share/doc/binutils-doc/copyright drwxr-xr-x root/root 0 2022-07-14 13:07 ./usr/share/info/ -rw-r--r-- root/root 297514 2022-07-14 13:07 ./usr/share/info/as.info.gz -rw-r--r-- root/root 71082 2022-07-14 13:07 ./usr/share/info/binutils.info.gz -rw-r--r-- root/root 21004 2022-07-14 13:07 ./usr/share/info/ctf-spec.info.gz -rw-r--r-- root/root 34234 2022-07-14 13:07 ./usr/share/info/gprof.info.gz -rw-r--r-- root/root 33389 2022-07-14 13:07 ./usr/share/info/gprofng.info.gz -rw-r--r-- root/root 121812 2022-07-14 13:07 ./usr/share/info/ld.info.gz lrwxrwxrwx root/root 0 2022-07-14 13:07 ./usr/share/doc/binutils-doc/bfd -> ../binutils/bfd lrwxrwxrwx root/root 0 2022-07-14 13:07 ./usr/share/doc/binutils-doc/gas -> ../binutils/gas lrwxrwxrwx root/root 0 2022-07-14 13:07 ./usr/share/doc/binutils-doc/gprof -> ../binutils/gprof lrwxrwxrwx root/root 0 2022-07-14 13:07 ./usr/share/doc/binutils-doc/ld -> ../binutils/ld
Затем, извлечь файлы из data.tar.xz в целевую директорию [3.3] :
~/binutils-doc-2.38/cntx$ tar -xpJf data.tar.xz -C ~/binutils-doc-2.38/
3. Библиография
3.1 How to extract a .deb file without opening it on Debian or Ubuntu Linux