- Распаковать deb архив linux
- 🏺 Как извлечь пакет deb в системе Ubuntu / Debian Linux
- Используя команду ar
- Использование команды dpkg
- You may also like
- 📜 Чтение файла построчно на Bash
- 📧 В чем разница между IMAP и POP3
- ✔️ Как управлять контейнерами LXD от имени обычного.
- 📜 Руководство для начинающих по созданию первого пакета.
- Феноменальная популярность электроники Xiaomi: основные причины
- 📜 Получение вчерашней даты в Bash: Практическое руководство
- Использование специальных гелей при мышечных болях
- 🐧 Сравнение команд Printf и Echo на Linux
- 📦 Как расширить/увеличить файловую систему VxFS на Linux
- Услуги по размещению серверного оборудования в ЦОД
- Leave a Comment Cancel Reply
- • Свежие записи
- • Категории
- • Теги
- • itsecforu.ru
- • Страны посетителей
- IT is good
- Easily unpack DEB, edit postinst, and repack DEB
- 3 Answers 3
Распаковать deb архив linux
Распаковка DEB через архиватор AR
Чтобы распаковать deb-пакет, необходимо выполнить два следующих шага:
1) Узнать тип сжатия данных
ar t имя_пакета.deb | grep data
В ответ будет получено имя файла в архиве, например data.tar.gz .
2) Выполнить соответствующую имени файла команду из следующего списка:
ar -p имя_пакета.deb data.tar.gz | tar zx -C .
ar -p имя_пакета.deb data.tar.bz2 | tar jx -C .
ar -p имя_пакета.deb data.tar.xz | tar Jx -C .
ar -p имя_пакета.deb data.tar.lzma | unlzma | tar x -C .
Файлы будут распакованы в текущую директорию. Следует обратить внимание, что в конце команды ставится точка, которая обозначает что распаковка должна производиться в текущую директорию.
Распаковка DEB через менеджер пакетов DPKG
Для распаковки нужно просто дать команду:
dpkg —extract имя_пакета.deb .
Распаковка будет осуществлена в текущий каталог. В конце команды, так же как и при работе с ахиватором ar , ставится точка.
- Как устанавливать программы с использованием checkinstall
- Заставляем checkinstall собирать пакеты без ошибок
- Ручной аналог checkinstall
- Сборка deb-пакетов в домашних условиях
- Как сделать DEB-пакет вручную (краткая инструкция)
- Как сделать пакет-пустышку с нужным именем
- Менеджер пакетов xstow
- Как установить Code::Blocks из исходников
- Как принудительно установить deb-пакет
- Как скачивать Linux-пакеты через windows (wapt-get)
- Как устанавливать свежий FireFox в Ubuntu
- Пакетная система Debian: низкоуровневая работа с deb-пакетами
- Как получить исходники программы для KDE4
- Пакеты deb-src. Как в Debian подправить исходники программы и перекомпилировать её.
- Основные команды работы с RPM
- Как распаковать deb-пакет в Linux (как извлечь файлы из deb-пакета)
- Онлайн-помошник для выбора настроек APT для инсталляции Firefox в Debian Linux
- Типовая сборка программ под Linux. Что делать, если нет файла configure, какие системы сборки бывают
- Где брать пакеты от устаревших дистрибутивов Debian. Как их находить и как устанавливать?
- Как пользоваться пакетным менеджером aptitude
🏺 Как извлечь пакет deb в системе Ubuntu / Debian Linux
deb – это расширение формата и упаковки программного обеспечения для семейства Debian и его производных.
В этом руководстве мы рассмотрим, как извлечь файл пакета .deb.
Это относится к разработчикам программного обеспечения, работающим над приложениями, связанными с Debian.
Приложения Debian упакованы как обычные архивы.
Пакет Debian обычно содержит три основных файла:
- debian-binary: обычный текстовый файл, в котором хранится версия формата пакета deb.
- control.tar.gz: Этот сжатый файл содержит файл md5sums и управляющий каталог для пакета deb.
- data.tar.xz: содержит все установочные файлы.
Это мы уже рассмотрели тут:
Существует два распространенных способа распаковки пакета deb.
Используя команду ar
Таким образом, вы можете использовать команду ar с параметром -x.
Команда предоставляется пакетом binutils.
sudo apt -y install binutils tree wget https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.deb ar -x mysql-apt-config_0.8.13-1_all.deb
Если вы хотите получить более подробный вывод, добавьте аргумент -v следующим образом:
$ ar -xv mysql-apt-config_0.8.13-1_all.deb x - debian-binary x - control.tar.xz x - data.tar.xz
$ tree . ├── control.tar.xz ├── data.tar.xz ├── debian-binary └── mysql-apt-config_0.8.13-1_all.deb 0 directories, 4 files
Использование команды dpkg
Если вы используете систему на основе Debian, вы можете использовать команду dpkg для распаковки пакета .deb.
Давайте рассмотрим пример.
wget https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.deb mkdir extrated dpkg -x mysql-apt-config_0.8.13-1_all.deb extrated
itisgood
🐵 Как проверить дисковое пространство на серверах Unix
🇨🇫 Как решить “XFS: Filesystem has duplicate UUID – can’t mount”
You may also like
📜 Чтение файла построчно на Bash
📧 В чем разница между IMAP и POP3
✔️ Как управлять контейнерами LXD от имени обычного.
📜 Руководство для начинающих по созданию первого пакета.
Феноменальная популярность электроники Xiaomi: основные причины
📜 Получение вчерашней даты в Bash: Практическое руководство
Использование специальных гелей при мышечных болях
🐧 Сравнение команд Printf и Echo на Linux
📦 Как расширить/увеличить файловую систему VxFS на Linux
Услуги по размещению серверного оборудования в ЦОД
Leave a Comment Cancel Reply
• Свежие записи
• Категории
• Теги
• itsecforu.ru
• Страны посетителей
IT is good
В этой статье вы узнаете, как удалить удаленный Git-репозиторий. Процесс прост, но его полезно запомнить, чтобы избежать неожиданностей в будущем. Git – это…
В 11-й версии своей операционной системы Microsoft серьезно переработала интерфейс и убрала несколько привычных функций. Нововведения не всем пришлись по душе. Мы дадим…
Продажа ноутбука нередко становится хлопотным занятием. Кроме поиска покупателя, продавцу необходимо подготовить устройство перед проведением сделки. Но если последовательно выполнить все шаги, ничего…
Вы можете оказаться в ситуации, когда вам нужно использовать скрипт шелла для чтения файлов построчно. В этом руководстве я расскажу о нескольких способах…
Вторичное жильё выгоднее для молодых семей, желающих приобрести свою первую квартиру. Сталкиваясь с ипотечным кредитованием, можно избежать много лишней суеты и проблем, если…
Easily unpack DEB, edit postinst, and repack DEB
I’m attempting to install Intel’s OpenCL SDK but the DEB files are buggy conversions from RPM (see here for the curious). I need to edit the postinst script in the DEB they provide. How can I take an existing DEB, extract the contents (including the control information), then later repackage the contents to make a new DEB? I will only edit files, no files will be added or removed.
the unpacking part can be done from midnight commander ( apt install mc )— just press enter on a deb file
3 Answers 3
The primary command to manipulate deb packages is dpkg-deb .
To unpack the package, create an empty directory and switch to it, then run dpkg-deb to extract its control information and the package files. Use dpkg-deb -b to rebuild the package.
mkdir tmp dpkg-deb -R original.deb tmp # edit DEBIAN/postinst dpkg-deb -b tmp fixed.deb
Beware that unless your script is running as root, the files’ permissions and ownership will be corrupted at the extraction stage. One way to avoid this is to run your script under fakeroot . Note that you need to run the whole sequence under fakeroot , not each dpkg-deb individually, since it’s the fakeroot process that keeps the memory of the permissions of the files that can’t be created as they are.
fakeroot sh -c ' mkdir tmp dpkg-deb -R original.deb tmp # edit DEBIAN/postinst dpkg-deb -b tmp fixed.deb '
Rather than mess with permissions, you can keep the data archive intact and modify only the control archive. dpkg-deb doesn’t provide a way to do that. Fortunately, deb packges are in a standard format: they’re ar archives. So you can use ar to extract the control archive, modify its files, and use ar again to replace the control archive by a new version.
mkdir tmp cd tmp ar p ../original.deb control.tar.gz | tar -xz # edit postinst cp ../original.deb ../fixed.deb tar czf control.tar.gz *[!z] ar r ../fixed.deb control.tar.gz
You should add a changelog entry and change the version number if you modify anything in the package. The infrastructure to manipulate Debian packages assumes that if two packages have the same name and version, they’re the same package. Add a suffix to the debian_revision part at the end of the version number; for sorting reasons the suffix should start with ~ , e.g. 1.2.3-4.1 becomes 1.2.3-4.1~johnjumper1 .
Instead of using shell tools, you can use Emacs. The dpkg-dev-el package (which is its own upstream as this is a native Debian package) contains modes to edit .deb files and to edit Debian changelogs. Emacs can be used interactively or scripted.