rpm2cpio Linux

Введение

Как следует из названия, rpm2cpio берет файл пакета RPM и преобразует его в архив cpio.

Поскольку он написан для использования в первую очередь в качестве фильтра, указывать особо нечего.

rpm2cpio принимает только один аргумент, и даже это необязательно!

Необязательным аргументом является имя файла пакета, который будет преобразован.

Если в командной строке не указано имя файла, rpm2cpio просто считает данные из стандартного ввода и преобразует их в архив cpio.

Давайте попробуем:

Изображение баннера

Установка

Можно установить на различные дистрибутивы Linux, не обязательно на RPM основе.

В .deb дистрибутивах

sudo apt-get install -y rpm2cpio

Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: librpm9 librpmio9 rpm-common Suggested packages: rpm-i18n The following NEW packages will be installed: librpm9 librpmio9 rpm-common rpm2cpio 0 upgraded, 4 newly installed, 0 to remove and 53 not upgraded. Need to get 326 kB of archives. After this operation, 1 419 kB of additional disk space will be used. Get:1 http://fi.archive.ubuntu.com/ubuntu jammy/universe amd64 librpmio9 amd64 4.17.0+dfsg1-4build1 [93,2 kB] Get:2 http://fi.archive.ubuntu.com/ubuntu jammy/universe amd64 librpm9 amd64 4.17.0+dfsg1-4build1 [189 kB] Get:3 http://fi.archive.ubuntu.com/ubuntu jammy/universe amd64 rpm-common amd64 4.17.0+dfsg1-4build1 [33,7 kB] Get:4 http://fi.archive.ubuntu.com/ubuntu jammy/universe amd64 rpm2cpio amd64 4.17.0+dfsg1-4build1 [9 882 B] Fetched 326 kB in 0s (2 880 kB/s) Selecting previously unselected package librpmio9. (Reading database ... 255604 files and directories currently installed.) Preparing to unpack .../librpmio9_4.17.0+dfsg1-4build1_amd64.deb ... Unpacking librpmio9 (4.17.0+dfsg1-4build1) ... Selecting previously unselected package librpm9. Preparing to unpack .../librpm9_4.17.0+dfsg1-4build1_amd64.deb ... Unpacking librpm9 (4.17.0+dfsg1-4build1) ... Selecting previously unselected package rpm-common. Preparing to unpack .../rpm-common_4.17.0+dfsg1-4build1_amd64.deb ... Unpacking rpm-common (4.17.0+dfsg1-4build1) ... Selecting previously unselected package rpm2cpio. Preparing to unpack .../rpm2cpio_4.17.0+dfsg1-4build1_amd64.deb ... Unpacking rpm2cpio (4.17.0+dfsg1-4build1) ... Setting up librpmio9 (4.17.0+dfsg1-4build1) ... Setting up librpm9 (4.17.0+dfsg1-4build1) ... Setting up rpm-common (4.17.0+dfsg1-4build1) ... Setting up rpm2cpio (4.17.0+dfsg1-4build1) ... Processing triggers for man-db (2.10.2-1) ... Processing triggers for dbus (1.12.20-2ubuntu4.1) ... Processing triggers for libc-bin (2.35-0ubuntu3.1) ...

Пример

rpm2cpio package.rpm | cpio --extract --make-directories

2000 blocks

После распаковки в текущей директории образуется структура соответствующая пакету

ls

package/ ├── etc │ └── systemd │ └── system │ └── package-tool.service ├── license │ └── lic ├── opt │ └── package │ ├── bin │ │ └── package-tool │ ├── etc │ ├── tool │ └── scripts │ ├── tool-postinstall.sh │ └── package-tool.sh ├── package.rpm └── var └── log └── package 11 directories, 8 files

Автор статьи: Андрей Олегович