Сборка пакета.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