«Make install» перезаписывает файлы?

Я потратил некоторое время на установку более новой версии Apache2.x на моем Mac OS X 10.6.8.

При настройке apache через ./configure я задал макет Darwin. Этот макет предполагает настройку пути существующей установки apache, чего я хочу, так как моя цель – заменить старый.

Я запустил make, затем, конечно, sudo make install.

Я проверил версию apache, выполнив

apachetcl -v 

и я получил

 Server version: Apache/2.4.1 (Unix) Server built: Mar 31 2012 01:52:54 

И это хорошо. Но вот здесь странная часть. Я проверил «старый» файл httpd.conf в файле / etc / apache2 и имел старую дату модификации.

Я действительно не понял этого до тех пор, пока не попробовал запустить apache. Apache попытался загрузить некоторые расширения, которые не были совместимы с новой версией.

Это привело меня к проверке каталога / usr / libexec / apache2, и я увидел, что модули не были недавно изменены, за исключением двух или трех. По сути, sudo make install не перезаписывал все возможные файлы.

 What is the convention here? Should make install overwrite everything or not? 

Я предполагаю, что это зависит от того, как разработчики написали скрипт configure и Makefile.

Я закончил делать некоторые rm -rf на любых существующих серверах apache, о которых я знал, прежде чем запускать make install снова. После этого все было свежо.

One Solution collect form web for “«Make install» перезаписывает файлы?”

Вы правильно относитесь к Makefile в нем определены только то, что происходит, или сопутствующие скрипты, которые запускаются. «Лучшие практики» при обновлении программного обеспечения из источника обычно используют параметр uninstall если вы не запустили make clean или не uninstall исходный каталог установки.

Вы должны быть осторожны, хотя, если программа установила файлы за пределами /usr/local вы можете удалить файлы, которые были добавлены диспетчером пакетов. Часто основные файлы конфигурации, такие как Apache, не сбиваются и просто удаляются во время установки, они могут или сохраняются. Хотя это не всегда так. Вы можете --backup резервное копирование каждого пункта назначения с --backup опции -b или --backup для установки.

Редактирование. Глядя на Makefile.in для текущей версии httpd похоже, что некоторые из их команд cp добавляют ключ -p который сохраняет права собственности и временные метки.

  • Ошибка компиляции при попытке компиляции MikTex
  • Linux. Проверьте параметры make-файла, с помощью которых создается текущее ядро.
  • Поместить результат команды в переменную в целевой файл makefile
  • Как скомпилировать и использовать команду make для установки этой определенной программы / инструмента?
  • Как копировать git-репо из Makefile?
  • Как изменить путь установки моего исходного дерева Linux?
  • сделать фатальную ошибку: openssl / sha.h: нет такого файла или каталога
  • Нет dpkg или apt, no make или gcc. Необходимо установить их все
  • Компиляция PHP и установка его в одном каталоге
  • Компилировать пакет без установки необходимых библиотек
  • Почему gcc не может найти libevent при построении tmux из исходного кода?
  • Linux и Unix - лучшая ОС в мире.