Я использую Ubuntu 14.04.
У меня есть много сторонних системных библиотек, которые я использую для проектов, но управление установкой библиотек затруднено. Некоторые библиотеки — это файлы .deb, некоторые собираются из исходников (из которых я затем создаю .deb), а некоторые — это файлы .run.
Моя цель — иметь свой собственный репозиторий, который будет размещать эти сторонние системные библиотеки в виде файлов .deb. Моя проблема — конвертация файлов .run в файлы .deb.
Я попробовал использовать checkinstall для запуска файла .deb (в частности, драйверов камеры UEye, которые были найденыздесь), надеясь, что checkinstall зафиксирует изменения в моей файловой системе, но, к сожалению, это обернулось катастрофой.
Существуют ли простые способы преобразования файлов .run в файлы .deb?
решение1
Простого или универсального метода для этого не существует. Первая часть обычного файла .run
(я буду использовать файл установки драйвера ATI в качестве справочного материала) — это скрипт, за которым следует поток сжатых данных, который немедленно сохраняется в файловой системе. Чтобы преобразовать его в файл deb, необходимо распаковать поток в каталог, создать каталог debian/
, в вашем rules
файле необходимо отредактировать его, чтобы dhmake просто взял структуру каталогов и скопировал файлы туда, где они должны быть, поскольку у вас нет Makefile
или эквивалента, который использует install
скрипт.
Я настоятельно рекомендую просто попросить дистрибьютора программного обеспечения создатьПакет Debianтак как большинство из этих файлов запуска даже неDFSG-совместимый.
решение2
В итоге я сделал следующее:
- Создайте пользовательский .deb-файл, содержащий файл .run.
- «Установить» файл .run в /tmp
- Используйте
postinst
для выполнения файла .run (и удаления впоследствии) - Этот конкретный файл .run на самом деле предоставляет свой собственный сценарий удаления, которому не нужен оригинальный файл .run. Поэтому я использую его
postrm
для выполнения этого сценария.
Все работает очень хорошо. Никаких нареканий и очень просто.