g++
と/usr/local/bin/
に2つの/usr/bin/
プログラムがあります。
デフォルトのg++
を/usr/local/bin/
に含めたいです。ただし、他のプログラムのために、PATH環境変数を変更したくありません。 /usr/bin/
のバージョンより/usr/local/bin/
のバージョンのほうがいいと思います。これは可能ですか?
私のポイントを明確にするために:
私の2つのプログラムのデフォルトを次のようにしたい:
g++
in /usr/local/bin/
python
in /usr/bin/
しかし、/usr/local/bin/
と/usr/bin/
には両方のプログラムが存在します。どうすればよいですか?
オプション1:パスに上書きフォルダーを作成する
これらのプログラムを間接的に呼び出す必要がある場合(たとえば、ウィンドウマネージャーによって起動されたアプリケーションがg++
またはpython
を呼び出す場合など)は、パスを編集する必要があります。 ~/.bashrc
のパスの先頭に新しいフォルダを追加するだけです。
export PATH=/home/username/.bin:$PATH
そして、適切なプログラムを指す2つのシンボリックリンクを配置します。
ln -s /usr/bin/python /home/username/.bin/python
ln -s /usr/local/bin/g++ /home/username/.bin/g++
このようにして、~/.bashrc
が適切に供給されると(ログアウトしてから再度ログインすると)、すべてが正しいpython
と正しいg++
を見つけるはずです。
オプション2:bashが従うにはalias
を使用
より軽量なソリューションを探している場合、そしてpython bashから直接)のみを呼び出すの場合、~/.bashrc
にalias
を設定できます。
alias python=/usr/bin/python
オプション3:/ usr/local/bin /のpython
の名前を変更するだけ
または、常に/usr/local/bin/python
の名前を/usr/local/bin/python-alternate
などに変更することもできます。少なくともパッケージマネージャによって制御されるDebianでは、/usr/bin
で名前を変更することはお勧めしません。通常/usr/local/bin
はそうではありません。
オプション4:Makefileで正しいコンパイラを指定
ワークフローでmake
、またはmake
を呼び出すより広範なアプリケーション(autotools
やcmake
など)を使用している場合、ほとんどの場合、コンパイラーを指定するオプションがあります。たとえば、メイクファイルは次のようになります。
CXX=/usr/local/bin/g++
all:
$(CXX) inputfile.cpp -o outputfile
またはcmake
を使用すると、
cmake -D CMAKE_CXX_COMPILER=/usr/local/bin/g++ ..
プログラムが異なればコンパイラを指定するための構文も異なりますが、ほとんどの場合は指定できます。