Как я могу исправить плохой коммерческий пакет deb?
Клиент Citrix ICA (получатель) 13 .deb
Пакет имеет некоторые известные проблемы. Как мне внести изменения в пакет? Мне нужно удалить некоторые зависимости и изменить скрипт установки.
Ссылка: Как мне установить Citrix ICA Client (Receiver) 13 в Debian 64-bit Linux?
1 ответ
Я отвечаю на этот вопрос сам, потому что другие могут найти эту информацию полезной. Эти вопросы и ответы были вдохновлены другим вопросом: как мне установить Citrix ICA Client (Receiver) 13 в 64-битной Linux Debian?
- Создайте временный каталог и скопируйте
.deb
файл к нему. - Извлечь
.deb
файл:ar vx archive.deb
- Появятся три файла:
debian-binary
: Не трогайcontrol.tar.gz
: Конфиг и скрипты для установки и удаления- Этот файл может иметь другое расширение, в зависимости от используемого формата сжатия.
data.tar.gz
: Файлы для установки- Этот файл может иметь другое расширение, в зависимости от используемого формата сжатия.
И то и другое *.tar.gz
Файлы могут иметь разные расширения в зависимости от используемого формата сжатия. .deb
Формат поддерживает несколько разных. Также оба *.tar.gz
файлы являются tarbombs, поэтому все файлы будут взорваться по одному и тому же пути. Лучше создать временный каталог, скопировать, а затем распаковать.
файл control.tar.gz
имеет два файла для взлома:
control
: Содержит список зависимостей пакета. Вы можете добавлять / удалять зависимости.postinst
: Содержит скрипт после установки. Вы можете добавлять / удалять команды.
Воссоздать *.tar.gz
файлы как: tar -czvf control.tar.gz *
или же (data.tar.gz
)
Наконец, создайте новый архив. Заказ очень важен здесь: ar rv my_new_package.deb debian-binary control.tar.gz data.tar.gz
Вы можете попробовать свой новый пакет с этими командами:
- Удалить существующий пакет:
apt-get remove $package_name
- ... где
$package_name
имя вашей посылки, например,icaclient
- ... где
- Установите новый пакет:
dpkg --install my_new_package.deb
Ссылка: http://tldp.org/HOWTO/html_single/Debian-Binary-Package-Building-HOWTO/