ルートアクセスおよびインストールされたアプリケーションへのリンクなしで$ HOMEに最新バージョンのアプリケーションをインストールします。

ルートアクセスおよびインストールされたアプリケーションへのリンクなしで$ HOMEに最新バージョンのアプリケーションをインストールします。

私はかなり古いemacsがインストールされているルートではなくLinuxボックスを持っているので、最新バージョンをダウンロードして次のように構築しました。

  • 次にダウンロード$HOME/SRC
  • $HOME/BLD構成と構築--prefix=$HOME
  • makeそしてmake install

だからこれはbin私のホームディレクトリにフォルダを作成しますが、これは私が期待するものです。

これで、端末でemacsを直接入力すると(予想どおり)、まだ古い項目が開きます。だから私はそれをしなければなりません~/bin/emacs。私はそれをalias emacs=$HOME/bin/emacs私の.bash_profile仕事に追加します。しかし、私は~/binそれに追加することもできます$PATH。しかし、どちらをお勧めするのかわかりません。 2つのバージョンのemacsが~/.emacs異なるバージョンを開くたびに共有して上書きするなどの競合なしに動作できますか?

私が行ったステップが正しい場合は、以前のバージョンがすでに存在しているときにrootアクセスなしで新しいアプリケーションをインストールするのに最適な方法です。

答え1

実行を簡素化し、期待PATHどおりに機能し、asプレフィックスを使用してより多くのアプリをインストールすると、すべて期待$HOMEどおりに機能します。私のRCファイルで、次のことを行います。

PATH=$HOME/bin:$PATH
LD_RUN_PATH=$HOME/lib:$LD_RUN_PATH
export PATH LD_RUN_PATH

設定によってLD_RUN_PATHローカルにインストールされているDSOも機能できるはずです。

これまで、マルチユーザー環境とほぼ同じ方法でemacsをインストールしました。

説明:Unix(およびそれを使用する他のソフトウェア、DOSからTeXまで)のパスは、左から右に検索される場所のリストと同じです。 Unixでは、:項目を区切るためにコロン()を使用します。PATHのようなプログラムがあり、/usr/local/bin:/bin:/usr/binというプログラムを探している場合は、次のパスがfoo順番に検索されます。

  1. /usr/local/bin/foo
  2. /bin/foo
  3. /usr/bin/foo

最初に見つかったものを使用してください。したがって、ディレクトリを正しく挿入した場所に応じて、インストールされているバイナリが他のバイナリを「上書きする」ことができます。概念的に、順序はPATH伝統的に一般的に特定されたか、ローカルからグローバルにつながっていました。 (もちろん、スタンドアロンのサードパーティ製アプリをサポートするために、奇妙なルートを追加することが多いため、これらのたとえ話が壊れる可能性があります。)

関連情報