LTSリポジトリは素晴らしいですが、何らかの理由で一部のプログラムでは「ソースからビルド」アプローチを好む。 1つの理由は私が好むバージョンを得るからです(LTSのPHPは5.3で、ソースから5.4をコンパイルできる)。nginx
などもnode.js
似ています。
これで、すべてのチュートリアルで、また/opt
はなどの「root所有」フォルダにプログラムをインストールするように主張する理由が疑問に思います。次のようにホームフォルダにインストールする方がはるかに簡単であることがわかりました。
/srv
/usr/local
/ホーム/prahlad/プログラム/PHP-5.4
sudo
1つの利点は、これらのプログラムをインストールするために使用する必要がないことです。 2番目の関連する利点は次のとおりです。安全懸念。 (仮説的に)これらのソースの1つにマルウェアが含まれている(Linuxでは可能性は低いですが)どうなりますか?ルートアクセスを拒否した方が良いでしょうか?
ルートが所有するフォルダにプログラムをインストールする必要がある例が気になります。
答え1
マニュアルには、他の人が使用できるように背中に設置するように記載/usr/local/
されています。/opt
ホームディレクトリにインストールする場合は、自分だけがアクセスできます。自分のためにコンパイルする場合は大丈夫です。
答え2
これは厳密で高速なルール/opt
ではありませんが、基本的なコンテンツは通常それ自体に含まれており、実行可能ファイルを実行可能ファイルパスにコピーしたり、シンボリックリンクしたり、内部フォルダを追加したりする必要があります$PATH
。他の場所に置いて使用したいです$HOME/bin
。
ただし、デフォルトのソースビルドコンテンツは、共有/usr/local
ライブラリとマニュアルページをインストールすることもできます。他の場所に保存するには、通常、PREFIX
変数を最初にエクスポートするか、コマンドラインで指定することでmake
これを./configure --help
確認して説明できます。
この場合、使用するパスにはいくつかのディレクトリ階層が必要です。次のようにする必要があります。
bin/
lib/
include/
share/
man/
man1/
インストーラを使用すると、より多くのディレクトリを作成できますがmanX
(/usr/share/man
モデルを参照)可能存在しない場合は生成します。その後、次のものが必要です~/.profile
。たとえば、次のようになります。
export PATH=~/bin:$PATH
export LD_LIBRARY_PATH=~/lib:$LD_LIBRARY_PATH
export MANPATH=~/share/man:$MANPATH
パッケージが共有ライブラリを使用している場合、これは非常に重要です。LD_LIBRARY_PATH
それ以外の場合、実行可能ファイルは共有ライブラリに接続できません。 MANPATH
すべてのシステムで動作するわけではなく、必ずしも必要なわけではありません。man foobar
失敗した場合、どこで探すべきかがわかります。