При обновлении пакета с помощью make install, должен ли я сначала запустить make uninstall для уже существующего пакета?
Если мне не удается запустить make uninstall в первую очередь, разве типичный результат не хуже, чем просто лежать неиспользуемые файлы?
Если ответ "да", является ли ответ универсальным или зависит от пакета? Документы automake заявляют, что цель удаления создана, но, возможно, существуют исключения.
Спасибо
2 ответа
Невозможно гарантировать, что процесс make uninstall для новой версии будет работать правильно с установленной версией. Вам также необходимо убедиться, что у вас есть идентичные параметры конфигурации с вашей новой и старой версией. Риск того, что он сделает что-то не так, слишком велик, особенно если вы используете это как root.
Это одна из многих причин, почему создание правильных пакетов для вашей системы так полезно. Создать пакеты Debian или RPM несложно, и есть такие инструменты, как dh-make, которые дают вам 90% необходимой работы, особенно для пакетов на основе autotools. Преимущества использования упаковки заключаются в том, что при обновлении вы знаете, что ни один из файлов предыдущей версии не установлен, и что вы знаете, какие файлы пакет создал в вашей системе. Вы также получаете информацию о том, как был собран предыдущий пакет, и можете повторить сборку с более новой версией. Если вы компилируете из исходного кода, используя "./configure; make; make install", есть вероятность, что вы потеряете знание о том, какие опции были использованы, какой процесс вы использовали, какие патчи вы применили.
Эти преимущества определенно стоят небольших вложений в обучение созданию собственного программного обеспечения.
Попробуйте использовать что-то вроде checkinstall при принудительной установке из исходного кода. (он также может создавать пакеты rpm/deb)
Согласитесь с Дэвидом Пашли, что создание правильных пакетов - лучший способ.