it-swarm-ja.tech

どこからでもプログラムを実行可能にする方法

現在のディレクトリに関係なく、特定のプログラムを実行できるようにするにはどうすればよいですか? /binフォルダーにプログラムへのシンボリックリンクを作成する必要がありますか?

79
aneuryzm

export PATH=$PATH:</path/to/file>コマンドラインでは、セッションの期間だけ持続します。

恒久的に変更したい場合はexport PATH=$PATH:</path/to/file>を〜/ .bashrcファイルに追加します(最後の部分で問題ありません)。

55
oadams

簡単に言えば、プログラムを実行するには、ディレクトリに関係なく、プログラムのディレクトリを検索パスに含める必要があります。問題は、そのパスに既にあるフォルダーにプログラムを配置するか、パスに新しいフォルダーを追加することで解決できます-どちらでも機能します。最良の答えは次の条件によって異なります。

このプログラムは、ソースからコンパイルしたダウンロード済みプログラムですか?

それはおそらくインストールメカニズムをすでに持っているでしょう。プログラムをコンパイルしたフォルダーで、rootとして 'make install'を実行します。

このプログラムは、コンピューターの標準プログラムの一部として使用できるようにするダウンロード済みプログラムですか?

この種のアプリケーションを標準フォルダに配置することは理にかなっています。このようなプログラムでは、/ usr/local/binなどのディレクトリを使用するのが一般的です。これを行うにはrootアクセスが必要です。

これは自分用に作成したプログラムであるか、コンピュータに特別な特権がありません。

ホームディレクトリに「bin」というフォルダを作成し、そこにプログラムを配置します。このスクリプト(/ usr/home/jeremy/binなど)へのフルパスを追加するには、ログインスクリプトを編集する必要がある場合があります

現在のディレクトリを検索パスに追加することもできますが、すべての新しいプログラムでこれを実行し続ける必要があり、長期的にはより多くの作業が必要になります。

24
Michael Shaw

/binディレクトリにファイルへのリンクを配置することは、いくつかの理由で最善の方法ではありません。

  • 実際の実行可能ファイルが一部のユーザーが表示または実行できない場所にある場合、そのファイルは不良リンクまたは機能不全のプログラムと見なされます。
  • /binディレクトリは、システムの実行に必要なプログラム(chmodmkdirなど)用に予約されているはずです。

実際には、実行可能ファイルを/usr/bin/または/usr/local/bin/に配置(インストール)できます。もちろん、その時点でプログラムを手動でインストールしました。ディストリビューションは、他のプログラムと同じように追跡しません。必要に応じて手動でアップグレードし、削除したい場合は手動で削除する必要があります。また、どのパッケージに依存しているかを知る必要があります(すでにプログラムを使用しているように聞こえるので、問題は解決しますが、一般に...)。

他のユーザーが使用することを期待しているプログラムを設定しているのでない限り、それは通常行うことではありません。ホームディレクトリに自分専用のbinディレクトリを作成し、シェルプロファイルを編集して~/bin/を追加します私のPATH環境変数。この方法でインストールしたプログラムは、システムの他の部分から分離されているため、追跡が簡単です。

17
Shawn J. Goff

シェルが現在あるディレクトリでコマンドfooを実行する場合、基本的に2つのオプションがあります。

  1. シェルプロンプトで./fooと入力します。

  2. .ディレクトリ(.は「現在のディレクトリ」の名前)をPATH環境変数に追加します。これを行う方法は、使用しているシェルによって異なります。

    • bourneタイプのシェル(bash、zsh、kshなど)の場合、次のように記述します(詳細は このページ を参照):

      export PATH=$PATH:.
      
    • cshタイプのシェル(tcsh、csh)の場合、次のように記述します(詳細については このページ を参照してください)。

      set path = ( $path .)
      

2.はマルチユーザーシステムのセキュリティリスクです。cdをディレクトリ/tmpに移動し、悪意のあるユーザーがlsという名前のマルウェアバイナリを作成したとします。

6
Riccardo Murri

PATHをいじると、誤って悪意のあるプログラムを実行する可能性があります。標準は、「ローカル」のものを/usr/localの下にインストールすることです( [〜#〜] fhs [〜#〜] を参照してください。これにより、Unixの使用法が成文化されます。 /usr/local/binは通常、すべてのユーザーのPATHにあります。

私の「ローカルにインストールされた」プログラムは$HOME/binにあり、./configure --prefix=$HOME ...によって標準ダンスで設定され、いくつかの(bash)エイリアスと組み合わせて選択します。システム上のgitの自己ビルドgit(衝突しないものは、最後のPATHにあります。

1
vonbrand