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
Автор статьи: Андрей Олегович