Linux/Mac 上の同じプログラムを別のバイナリにマップするにはどうすればよいでしょうか?

Linux/Mac 上の同じプログラムを別のバイナリにマップするにはどうすればよいでしょうか?

which Rが を返すと仮定し/opt/anaconda3/bin/R、他の場所に他のバイナリがありR、 と入力したときに別の R バイナリを実行するとしますR

どうすればそれが実現できるのかそれなし

  • Rバイナリのいずれかを削除する
  • ファイルを移動する

動作を確認するには、以下Rを実行します/some/other/location/R(そしてwhich R戻ります/some/other/location/R

答え1

選択肢はいくつかあります。

  • 変数を変更してPATH、異なる順序でディレクトリを検索するようにします。これは、ディレクトリ内のすべてのプログラムに影響します。
  • Debian では、Debian の代替品 (Debian および派生製品) を使用します。そして、時々しか役に立ちません。
  • ディレクトリを設定し/opt/bin-override、それを の先頭に追加しPATH、実行するコマンドのシンボリック リンクを追加します。
  • ~/.bash_aliasesまたはにエイリアスを追加します/etc/bash.bashrc
    alias R="/some/other/location/R"

関連情報