Как преобразовать установщик .run в установщик .deb?

Как преобразовать установщик .run в установщик .deb?

Я использую 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

В итоге я сделал следующее:

  1. Создайте пользовательский .deb-файл, содержащий файл .run.
  2. «Установить» файл .run в /tmp
  3. Используйте postinstдля выполнения файла .run (и удаления впоследствии)
  4. Этот конкретный файл .run на самом деле предоставляет свой собственный сценарий удаления, которому не нужен оригинальный файл .run. Поэтому я использую его postrmдля выполнения этого сценария.

Все работает очень хорошо. Никаких нареканий и очень просто.

Связанный контент