Mac Os X 10.6.8に最新バージョンのApache2.xをインストールするのに時間がかかりました。
./configureでApacheを設定するときにDarwinレイアウトを指定しました。このレイアウトでは、既存のApacheインストールのパス設定を想定しています。私の目標は、以前のApacheインストールを置き換えることであるため、これが私が望むものです。
makeを実行し、もちろんsudo make installを実行しました。
私はApacheのバージョンを確認しました。
apachetcl -v
わかりました。
Server version: Apache/2.4.1 (Unix)
Server built: Mar 31 2012 01:52:54
これはいいですね。しかし、ここに奇妙な部分があります。 /etc/apache2で「古い」httpd.confファイルを確認しましたが、修正日が古くなりました。
私はApacheを実行するまで、これを実際に理解していませんでした。 Apacheが新しいバージョンと互換性のないいくつかの拡張機能をロードしようとしました。
これは/usr/libexec/apache2ディレクトリをチェックし、2つの3つのモジュールを除いて、これらのモジュールのうち最近変更されたモジュールが1つもないことを発見しました。デフォルトでは、sudo make installはすべての可能なファイルを扱うわけではありません。
What is the convention here? Should make install overwrite everything or not?
私は開発者が設定スクリプトとMakefileを書く方法に依存していると仮定します。
私はmake installを再実行する前に私が知っていた既存のApacheディレクトリに対してrm -rfを実行しました。その後、すべてが新鮮です。
答え1
Makefile
その中で定義されている唯一のこと、またはそれが実行されるコンパニオンスクリプトについてのあなたは正しいです。ソースからソフトウェアをアップグレードするときの「ベストプラクティス」は、通常、元のソースインストールディレクトリをuninstall
実行または削除せずにこのオプションを使用することです。make clean
/usr/local
ただし、パッケージマネージャによって追加されたファイルは、プログラムが外部からインストールされている場合は削除される可能性があるため、注意が必要です。 Apacheなどの主要な設定ファイルは破棄されず、インストール中に単に削除されたままになることがよくあります。いつもそうではありませんが。-b
または、インストールオプションを使用して--backup
各ターゲットをバックアップすることもできます。
編集する:Makefile.in
現在のバージョンを見ると、複数のコマンドに所有権とタイムスタンプを保持するスイッチが追加されているようですhttpd
。cp
-p