Scrapdiary

DesigningとEngineeringの架け橋

UNIX/Linuxでの環境変数

先日swatchのインストールを試行錯誤する中、オペレーションに関してどうにも基本のきの字がなっていないために現状で可能なことなのか上位の権限がないと出来ないことなのかが判断できなかった。環境変数とその設定方法について自分用にまとめ。

$PATH

コマンドを実行したい場合に正確なパスを省いてファイル名だけで実行させるようにする。例えばPerlインタープリンタ本体が「/usr/bin/perl」にインストールされているとしてた場合に下記の二つは同じ意味を持つ。

$ perl foo.pl
$ /usr/bin/perl foo.pl

別に$PATHを設定したい場合。

# 変数に値をセットしてから、宣言した変数(ここではPATH)をexportで設定
PATH=/home/hoge/bin
export PATH

# もしくは宣言と設定一括で
export PATH=/home/hoge/bin

# 既存の設定に追加する場合には$PATHを記載して「:」で繋ぐ
exprot PATH=$PATH:/home/hoge/bin:/home/hoge/lib

# 変数を初期化する場合
unset PATH

.bashrcや.bash_profileなどの設定ファイル*1に記述することで、当該ユーザでログインした際に各設定が読み込まれるようになる。その設定はexitするまで継続する。

$PERL5LIB

Perlにモジュールを格納している場所を知らせるための環境変数

$ export PERL5LIB=/home/hoge/bin:/home/hoge/perl

これを設定することでデフォルトの@INCより先にまず指定のパスを確認しに行く。

$PERL_MM_OPT

名称からするにPerlのオプション的な環境変数だろうと思われる。
README for the Gimp-Perl package

インストール先の上書き(PREFIX)
(略)
インストールしたいときは、標準的な方法でそうすることができる。
普通は、Makefile.PL の PREFIX=/パス オプションを使うことができる。
あるいは、"make install" のコマンドラインに INST* パス定義 を追加するのも一般的な解法だ。

これらのオプションについては "perldoc ExtUtils::MakeMaker"マニュアルページに解説がある。
(略)
PERL_MM_OPT='MakeMaker に渡す任意のオプション'

この変数に設定した引数は、コマンドラインで渡したかのうようにMakefile.PL に渡されるだろう。

とあるので、perlコマンドラインで叩く時に自動で付加されるパラメータということだろうか。

$ export PERL_MM_OPT="INSTALL_BASE=/home/hoge/bin"
$ perl Makefile.PL

と予め設定しておくことで、以下と同様になる。

$ perl Makefile.PL INSTALL_BASE=/home/hoge/bin

まとめ

環境変数はOS側のものと各アプリケーション毎に設定するものがあり、それらは混在して見えるため各パラメータの扱いには注意が必要。特に$PATHは間違って設定してしまうと「ls」などの通常コマンドが通らなくなる。上手に使えばオペレーションやアプリケーションの設定が短期間で効率的に行えたり、また運用に際しても同様の効果が得られそう。

*1:shellはbashで作業を想定。