Linux にプログラムのパスを通す方法

パスの通し方

PATH について

Linux や Mac のターミナルでコマンドを打って実行できるのは、そのコマンドが環境変数に追加されているからである。例えば、次のように perl を打つと Perl が実行される。

perl -e 'print "Hello,World\n";'

Perl が実行されているのは、perl というコマンドが入力されると、システムは、PATH とよばれる環境変数に保存されているディレクトリ一覧から perl コマンドの実体を探して、それを実行する。そのコマンドの実体はどこにあるのかを調べるには which コマンドを利用する。

which perl
## /usr/bin/perl

この例では、perl コマンドの実体が /usr/bin/perl にあるということになる。

これに対して、コマンドの実体が存在しない場合に、そのコマンドを実行しようとするとエラーが発生する。例えば、qwertyuiop という実際に存在しないコマンドをターミナルで実行すると、次のようなコマンドが見つからないエラーが出力される。

qwertyuiop
## -bash: qwertyuiop: command not found

パスの追加

Linux で、apt-get などでインストールしたプログラムに関しては、自動的にパスが追加される。正確には、パスが通っているディレクトリにプログラムの実体が置かれる。しかし、ルート権限を持たないユーザーがプログラムをコンパイルしてインストールした場合などに、システムにパスが追加されない場合がある。この場合、ユーザーが手動でパスを追加しなければならない。

ユーザー自身がパスを追加する場合は、一般に /home/username/.bashrc または /home/username/.bash_profile のファイルに、パスを追加するコマンドを 1 行加えればよい。ここでいう username は Linux マシンにログインするときのユーザー名である。

例えば、あるプログラムの実体は /home/username/app/blast/bin のディレクトリの下に置かれたとする。ここにパスを追加するには、まず、.bashrc または .bash_profile ファイルを開き、次の 1 行を追加して保存する。

export PATH=${PATH}:/home/username/app/blast/bin

追加したいパスが複数あれば、コロンで繋いで続けて書けばよい。

export PATH=${PATH}:/home/username/app/blast/bin:/home/username/app/bowtie/bin

ファイルを保存してから、ログインし直すと反映されるようになる。