Сборка пакета.deb из исходного кода без его установки

Предположим, у меня есть программа установки или архив с исходным кодом для какой-либо программы, которую я хочу установить. (Пакет Debian недоступен.) Сначала я хочу создать .deb пакет из него, чтобы иметь возможность чистого удаления установленной программы в будущем (см. Удаление приложения, созданного из источника, если я собираю пакет из источника, как я могу удалить или удалить полностью?). Кроме того, установка с использованием пакета предотвращает засорение файлов из других пакетов, что не может быть гарантировано, если вы запустите установщик или sudo make install,

Checkinstall

Из чтения ответов там и в других местах, я понимаю, что обычное решение заключается в использовании checkinstallсобрать пакет. К сожалению похожеcheckinstallне мешает make installот забивания системных файлов из других пакетов. Например, в соответствии с возвратом проблем, вызванных checkinstall с gcc build:

Я создал пакет Debian из установки, используяsudo checkinstall -D make install,

[...] Я удалил его с помощью диспетчера пакетов Synaptic. Оказывается, [удаление] пакета checkinstall, созданного изmake install пытался удалить все файлы, которые затрагивал процесс установки, включая общие библиотеки gcc, такие как /lib64/libgcc_s.so.

Затем я попытался сказатьcheckinstallсобрать пакет, не устанавливая его, в надежде обойти проблему. Я создал фиктивный Makefile:

install:
    echo "Bogus" > /bin/qwertyuiop

и побежалsudo checkinstall --install=no, Файл/bin/qwertyuiopбыл создан, хотя пакет не был установлен.

В моем случаея не доверяю установщику /make installне перезаписывать системные файлы, так что это использование checkinstall исключено.

Как я могу собрать пакет, не устанавливая его и не затрагивая системные файлы?

Можно ли запустить Checkinstall в fakechroot Среда ed debootstrap для достижения этой цели? Предпочтительно, чтобы сборка выполнялась как обычный пользователь, а не как пользователь root, что предотвратит перезапись системных файлов процессом, если он пойдет не так.

2 ответа

Вы можете попробовать debuild создать бинарный (deb) файл из исходного кода. Вам нужно подготовить папку debian так, как вы ее упаковываете. Как только вы поняли это правильно, запустите команду debuild -b из исходного каталога, и он создаст файл deb для вас.

Вы также хотели бы взглянуть на Введение в упаковку Debian.


Если все это сумасшедшие вещи, вам придется просто обойтись checkinstall возиться с системными файлами.

Я нашел ответ в статье журнала Linux под названием " Использование Checkinstall для сборки пакетов из исходного кода":

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

sudo checkinstall --install=no

Другие вопросы по тегам