|
|||||||
Как перепаковать deb-пакет, внеся в него собственные изменения
Время создания: 29.06.2022 14:05
Текстовые метки: linux, debian, deb, dpkg, перепаковать, распаковать, упаковать, пакет, изменить
Раздел: Компьютер - Linux - Инсталляция программ - Пакетный менеджер APT: apt-get и прочее
Запись: xintrea/mytetra_syncro/master/base/1656500708hce2fhoroe/text.html на raw.github.com
|
|||||||
|
|||||||
Пакет deb представляет из себя архив, в котором лежат файлы с заданной форматом пакета структурой. Пакет deb можно легко распаковать, внести в него изменения и снова собрать. Как это сделать рассказано ниже. Чтобы распаковать какой-нибудь пакет, нужно, находясь в директории с файлом пакета, выполнить команду: dpkg -x some-prog-123.deb ./someprog Данная команда извлечет в каталог ./someprog все файлы, которые устанавливаются из данного пакета. Однако в пакете имеется специальная информация о версиях и зависимостях, которую тоже надо извлечь в виде служебных файлов. Иногда такую информацию называют контрольной информацией. Извлекается она следующим образом: mkdir ./someprog/DEBIAN В результате будет создан каталог ./someprog/DEBIAN внутри которого будет находиться два служебных файла: control dirs Можно изменить, например, файл control - поправить в нем версию или зависимости. После чего надо заново создать deb-пакет. Чтобы собрать обратно пакет нужно выполнить команду: dpkg -b ./someprog some-prog-123-new.deb После чего можно проверить полученный новый пакет, например, зайдя в него клавишей Enter в Midnight Commander. Если ошибок нет, значит пакет собран правильно и можно пытаться его устанавливать. Внимание! После пересборки пакета, хеш-суммы deb-файла изменяются. Если пакет прописан в репозитарии, например в файле Packages.gz, тогда в данном файле нужно изменить и хеш-суммы. Контрольные суммы можно вычислить командами: md5sum имя_пакета.deb sha256sum имя_пакета.deb sha1sum имя_пакета.deb Помимо изменения хеш-сумм, изменится и размет deb-пакета в байтах. Новый размер можно посмотреть командой: ls -l имя_пакета.deb После сбора информация об измененном пакете, файл Packages.gz можно распаковать командой: gunzip Packages.gz В результате файл Packages.gz будет удален и вместо него появится файл Packages. В нем надо найти описание нужного пакета, и поменять контрольные суммы (поля MD5sum, SHA1, SHA256) и размер (Size). Далее файл Packages надо опять упаковать: gzip Packages В результате чего файл Packages будет заменен упакованным файлом Packages.gz. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|