Я сам компилирую и устанавливаю программное обеспечение в Linux (в моем случае Debian Squeeze). Скачивание, распаковка, установка зависимых библиотек / заголовков разработчика, запуск configure, затем make.
До этого момента все остается в исходном каталоге. Как только я бегу make install
, в основном у меня появляются файлы, не являющиеся пакетами, в /usr/local
или /usr
(зависит от --path
переключатель).
Я также попытался установить его в другое место, например /opt
, но это часто где-то доставляет неприятности. Т.е. Я всегда не забываю специально добавлять это в путь заголовка / компоновщика. Или я устанавливаю там пакет и всю систему pkg-config
не знает об этом (мне снова нужно добавить дополнительные флаги). И даже если я установлю все специальные программы в /opt
, Я бы не знал, какие все эти файлы в bin/
, и т.д lib/
и т.д. принадлежат друг другу. Если я начну их устанавливать в /opt/software1/
проблема обслуживания просто умножается, и мне нужно отслеживать еще больше путей, которые мне нужно добавить для компиляции дополнительных пакетов или они должны быть в пути к библиотеке LD и т. д.
Но когда я устанавливаю программное обеспечение прямо в /usr
У меня просто плохое предчувствие, что я больше не могу правильно сказать, какие из моих пользовательских установочных файлов и где принадлежат. Определить, принадлежит ли данный файл к пакету, легко, но если это не так, при большой выборочной установке сложно запомнить или выяснить, где принадлежит файл.
Когда я хочу удалить файлы, становится еще хуже. Они разбросаны по bin/
, lib/
, man/
и т. д. Поэтому, если я хочу полностью удалить пользовательский установленный пакет, мне придется выполнить ручную работу или, в худшем случае, я больше не смогу определить их все и оставлю устаревшие файлы.
Я знаю, что могу также начать создавать из него собственный пакет. Но это потребует от меня анализа каждого программного обеспечения, которое я устанавливаю заранее? У меня нет реального опыта создания .deb
файлов и распространять их на другие инсталляции тоже не планирую. Все, что мне нужно, это хороший способ отслеживать пользовательские локальные установки.
Наверное, я мог бы что-нибудь придумать самостоятельно, например, составить список всех файлов (find / ...
), установите программное обеспечение, а затем сделайте это снова и сохраните где-нибудь разницу. Просто задайтесь вопросом, может ли быть лучший способ.
Поскольку вы просили о лучших практиках: лучше всего не устанавливать программное обеспечение не в репозитории. Если это невозможно, лучше всего собрать из него пакеты и использовать системный менеджер пакетов для управления ими.
Вам нужно будет найти способ проверить наличие важных обновлений, но как вы это сделаете, зависит от вас. Но если они там есть, вам нужно заново собрать и обновить из новых пакетов.
Ты пробовала проверить установку (это в репозиториях Debian)?
Вместо того, чтобы использовать make install
ты можешь использовать checkinstall
и он создаст (и установит) пакет с программным обеспечением, чтобы вы могли отслеживать его с помощью диспетчера пакетов.
Не знаю, сочтете ли вы это наконец полезным, но по крайней мере я поделюсь им: «… Коллекция пакетов NetBSD (pkgsrc) - это платформа для создания стороннего программного обеспечения на NetBSD и другие UNIX-подобные системы … »