g++
次の場所に2つのプログラムがあります/usr/local/bin/
。/usr/bin/
デフォルト値g++
はです/usr/local/bin/
。しかし、他のプログラムと同様に、PATH環境変数を変更したくありません。/usr/bin/
私はバージョンよりもバージョンを好む/usr/local/bin/
。可能ですか?
私のポイントを明確に説明するには:
両方のプログラムのデフォルト設定を次のように設定したいと思います。
g++
/usr/local/bin/
python
から/usr/bin/
しかし、/usr/local/bin/
私は/usr/bin/
両方のプログラムが存在しますが、どうすればいいですか?
答え1
オプション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:alias
bashに使用して従う
より軽い解決策をお探しの場合bashから直接Pythonを呼び出します。alias
、以下で設定できます~/.bashrc
。
alias python=/usr/bin/python
python
オプション3:/usr/local/bin/で名前を変更するだけです。
/usr/local/bin/python
または、自分の名前を次のように変更することもできます/usr/local/bin/python-alternate
。/usr/bin
少なくともDebianでは、パッケージマネージャは名前を制御するため、埋め込みコンテンツの名前を変更することはお勧めできません。一般的に/usr/local/bin
そうではありません。
オプション4:Makefileに正しいコンパイラーを割り当てる
ワークフローでを使用する場合make
、またはより広いアプリケーションmake
(autotools
またはcmake
)を呼び出す場合は、ほとんど常にコンパイラを指定するオプションがあります。たとえば、makefile は次のようになります。
CXX=/usr/local/bin/g++
all:
$(CXX) inputfile.cpp -o outputfile
またはcmake
設定できます。
cmake -D CMAKE_CXX_COMPILER=/usr/local/bin/g++ ..
プログラムごとにコンパイラを指定するために異なる構文を使用しますが、通常は指定できます。
答え2
別のコマンドのデフォルト・パスをオーバーライドせずに単一コマンドのデフォルトの実行可能ファイルを変更するには、次のようにします.エクスポートされない特定のコマンドの先頭にPATHを設定するのではなく、PATHを更新しました。
たとえば、
# GNU/Linux install binary is the default executable
which install
/usr/bin/install
# Set AWS-CLI install binary for this command only
PATH="/home/username/aws-cli/bin:$PATH" which install
/home/username/aws-cli/bin/install