Mac Os X 10.6.8에 최신 버전의 Apache2.x를 설치하는 데 시간이 좀 걸렸습니다.
./configure를 통해 Apache를 구성할 때 Darwin 레이아웃을 지정했습니다. 이 레이아웃은 기존 Apache 설치의 경로 설정을 가정합니다. 내 목표는 이전 아파치 설치를 교체하는 것이기 때문에 이것이 제가 원하는 것입니다.
make를 실행한 다음 물론 sudo make install을 실행했습니다.
나는 아파치 버전을 확인했다.
apachetcl -v
알겠어요
Server version: Apache/2.4.1 (Unix)
Server built: Mar 31 2012 01:52:54
이것은 좋다. 그러나 여기에 이상한 부분이 있습니다. /etc/apache2에서 "이전" httpd.conf 파일을 확인했는데 수정 날짜가 오래되었습니다.
나는 아파치를 실행하기 전까지는 이것을 실제로 이해하지 못했습니다. Apache가 새 버전과 호환되지 않는 일부 확장을 로드하려고 했습니다.
이로 인해 /usr/libexec/apache2 디렉토리를 확인하게 되었고, 두세 개의 모듈을 제외하고 이들 모듈 중 최근에 수정된 모듈이 하나도 없음을 발견했습니다. 기본적으로 sudo make install은 가능한 모든 파일을 다루지는 않습니다.
What is the convention here? Should make install overwrite everything or not?
나는 개발자가 구성 스크립트와 Makefile을 작성하는 방법에 달려 있다고 가정합니다.
나는 make install을 다시 실행하기 전에 내가 알고 있던 기존 아파치 디렉토리에 대해 rm -rf를 수행했습니다. 그 후에는 모든 것이 신선합니다.
답변1
Makefile
그 안에서 정의되는 유일한 일이나 그것이 실행되는 동반 스크립트에 대한 당신 말이 맞습니다. 소스에서 소프트웨어를 업그레이드할 때 "모범 사례"는 일반적으로 원래 소스 설치 디렉터리를 uninstall
실행하거나 삭제하지 않고 이 옵션을 사용하는 것입니다.make clean
/usr/local
하지만 패키지 관리자가 추가한 파일은 프로그램이 외부에서 설치하는 경우 삭제될 수 있으므로 주의해야 합니다 . Apache와 같은 주요 구성 파일은 파기되지 않고 설치 중에 간단히 제거되어 유지되는 경우가 많습니다. 항상 그런 것은 아니지만. -b
또는 설치 옵션을 사용하여 --backup
각 대상을 백업 할 수 있습니다 .
편집하다:Makefile.in
현재 버전을 보면 여러 명령에 소유권과 타임스탬프를 유지하는 스위치가 추가된 httpd
것처럼 보입니다 .cp
-p