Сборка пакета .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, что предотвратит перезапись системных файлов процессом, если он пойдет не так.

4
задан 13 April 2017 в 15:23

2 ответа

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

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


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

0
ответ дан 13 April 2017 в 15:23

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

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

sudo checkinstall --install=no

0
ответ дан 13 April 2017 в 15:23

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

Похожие вопросы: