Компиляция исходного кода в пакет DEB

34

У меня всегда были проблемы с установкой и удалением скомпилированного программного обеспечения, поэтому я решил, что хотел бы собрать программное обеспечение из исходного кода в пакет .deb для облегчения установки / удаления.

Я хотел бы знать, как конечный пользователь может легко и быстро встроить исходный код в пакет .deb .

Я пытался:

Ашу
источник
1
Ubucompilator - интересный проект, и я приветствую их усилия на сегодняшний день. Однако, как вы обнаружили, он предоставляет интерфейс GUI для четырех или пяти низкоуровневых команд. И, НЕТ, вы не можете использовать его для простого создания правильного пакета '.deb'.
Давид6

Ответы:

47

checkinstall делает то, что вы хотите достичь: он будет следить за тем, какие файлы устанавливаются, и помещает их в пакет .deb, который затем может быть установлен и удален

Установите его с

apt-get install checkinstall

затем вы выполняете обычную процедуру установки из исходного кода, заменяя 'sudo make install' на 'sudo checkinstall':

  ./configure
  make
  sudo checkinstall

Ссылка: https://help.ubuntu.com/community/CheckInstall

Floyd
источник
9

У нас действительно хорошее Руководство по упаковке, в котором есть раздел, посвященный новым пакетам .

перекати-поле
источник
1
Я рекомендую эту ссылку, так как она содержит всю информацию, которая понадобится кому-то. Также, если есть какие-то конкретные вопросы, я могу помочь с ними, но не для объяснения всей процедуры создания пакета debian из исходного кода.
Томас Уорд
@ppumkin: обновлено.
перекати
6

Я make checkinstallнесколько раз использовал эту команду, чтобы создать .debпакет на одной машине, чтобы установить его на других моих серверах. Это быстрый способ установить бета-версию. Это работает, но следует использовать с осторожностью. Есть подводные камни для пользователя, который не понимает многих функций .debпакета.

У меня двадцать несколько серверов, которые используют одни и те же домашние приложения. Добавление поддержки сборки и компилятора для каждого хоста не так сложно.

Ввод команд для загрузки и компиляции новой версии двадцать раз занимает много времени. Альтернативой является загрузка сценария для выполнения задачи, а затем выполнение сценария. Но часто проще обновлять приложения, используя .debфайл, созданный с помощью checkinstall.

С Шуман
источник
0

Задача упаковки некоторого случайного фрагмента программного кода в .deb довольно сложна, если программное обеспечение еще не пришло в такой форме, особенно по сравнению с просто make, make install. Если вы хотите, чтобы все было проще, я думаю, вы движетесь в неправильном направлении.

Я не говорю, что вы не можете этого сделать - разработчики Debian делают это много. Но это не самый простой способ сделать то, что вы хотите.

Возможно, вам следует больше сосредоточиться на изучении того, как «работает» компиляция и установка программного обеспечения из исходного кода. В вашу пользу тот факт, что все, что вы установили самостоятельно, должно оказаться в / usr / local

thomasrutter
источник
спасибо за предложение, но я уже знаю о компиляции программ, я успокоил некоторые из них, скомпилированные в моей системе. Единственное, что я считаю трудным - это обновить или удалить их. Так что я думаю, что файл deb был бы более удобен
Ашу
Причина, по которой пакет deb может плавно обновляться или удаляться, заключается в том, что кто-то имеет кропотливо написанные сценарии, которые делают это для каждого пакета. Кроме того, им пришлось добавить множество других описательных метаданных, которые dpkg может использовать для определения файлов. Вы получите свою работу за вас.
Томасруттер
1
На самом деле, просто пойти с ответом Флойда. В целом это выглядит как лучшее решение, если оно действительно делает то, что говорит!
Томасруттер
Ага. Решение Флойда великолепно. Особенно сейчас, это чрезвычайно зрелый. Теперь мне не нужно строить из исходного кода на тоннах серверов. :)
Jack_Hu