Предположим, у меня есть программа установки или архив с исходным кодом для какой-либо программы, которую я хочу установить. (Пакет Debian недоступен.) Сначала я хочу создать из него пакет .deb
, чтобы в будущем можно было чисто удалить установленную программу (см. Удаление приложения, созданного из исходного кода , Если я собираю пакет из исходного кода, как я могу полностью удалить или удалить? ). Кроме того, установка с использованием пакета не позволяет ему забивать файлы из других пакетов, что не может быть гарантировано, если вы запустите установщик или sudo make install
.
Из прочтения ответов там и в других местах я понимаю, что обычным решением является использование checkinstall
для сборки пакета. К сожалению, похоже, что checkinstall
не не не препятствует make install
забивать системные файлы из других пакетов. Например, согласно Устранение проблем, вызванных checkinstall с помощью gcc build :
Я создал пакет Debian из установки, используя
sudo checkinstall -D make install
.[...] Я удалил его с помощью диспетчера пакетов Synaptic. Как оказалось, [удаление] пакета checkinstall, созданного из
blockquote>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, что предотвратит перезапись системных файлов процессом, если он пойдет не так.
Возможно, вы захотите попробовать debuild
создать двоичный (deb) файл из исходного кода. Вам нужно подготовить папку debian так, как вы ее упаковываете. Как только вы все поняли, запустите команду debuild -b
из исходного каталога, и она создаст для вас файл deb.
Вы также хотели бы взглянуть на Введение в упаковку Debian .
Если бы все это было сумасшествием, вам нужно было бы просто обойтись без checkinstall
возни с системными файлами.
Я нашел ответ в статье журнала Linux под названием Использование Checkinstall для сборки пакетов из исходного кода :
Если вы просто хотите создать. deb без выполнения установки, используйте переключатель командной строки
blockquote>
sudo checkinstall --install=no