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