HOME / コンピュータTips / Solaris / PATHの設定
Date: 2024/10/06 | | Tags: solaris opensolaris path
Solarisはその歴史上、BSDを経て、SVR4に変化、そしていま、Linuxに対する歩み寄りをしていることもあり、PATHの設定が難しい。
私が知ってる限り:D
パス名 | 説明 |
/bin,/usr/bin | POSIXのデフォルト的なもの |
/sbin,/usr/sbin | POSIXのデフォルト的なスーパーユーザ用 |
/usr/sfw/bin | SunがSolarisのインストールディスクの中で追加したフリーソフト。 |
/usr/ccs | Sunの開発系? |
/usr/ucb | BSD系のツール群。Solarisにとっては、Solarisと言われる以前のものとの互換のためにある |
/usr/xpg[46]/bin | X/Open Portability Guide関係のもの。WikiPedia |
/usr/dt,/usr/openwin,/usr/X11 | X系 |
/opt/sfw/bin | Companion Disc系で、インストールされるもの |
/opt/csw/bin | Blastwave.orgで配布されているもの。pkg-getでインストールする |
/opt/JPC/bin | 参考:私が私用に作るパッケージ |
/usr/local/bin | 管理者が自分自身の出てコンパイルしたもの。SunSiteのパッケージもの。 |
などなど。
これらのPATH設定は、順番が非常に意味を持つ。
なぜなら同名のコマンドが至るところにあるためだ。
これは何故かというと、Solarisがいろいろな経緯をもって進化したからだ。その頃に作られたシェルスクリプトなどが動作するためには、同じオプション、同じ結果がでてこないと互換性を取ることが出来ない。UNIXはとにかくいろいろなリビジョンがある。
従って、たとえばシェルでは便利なPATHが設定されたとしても、Makefileを利用したときは、開発者と同じ環境でないと、configureではエラーが出る可能性がある。なぜなら開発者と同じタイプのコマンドを利用しなくてはならないためである。
従って、なるべくrootでは標準のままのPATHにしておき、必要に応じて環境変数を設定するのが良いだろう。
次のようにPATHを設定している。
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/opt/JPC/bin:
/usr/sfw/bin:/opt/csw/bin:/usr/local/bin:/usr/ccs/bin:
/usr/ucb:/usr/X/bin:/usr/dt/bin:/bin
LD_LIBRARY_PATHS=/usr/lib /usr/sfw/lib /opt/sfw/lib /opt/csw/lib /usr/X11/lib /usr/openwin/lib /opt/JPC/lib /usr/local/lib
私はコマンドラインではcshを使っているので、.cshrcでは、このように設定している。
# PATH SETTINGS setenv EXPAND_PATHS '/opt/JPC/bin /opt/JPC/sbin \ /usr/sfw/bin /opt/sfw/bin /opt/csw/bin /opt/SUNWspro/bin \ /usr/local/bin /usr/local/sbin' setenv EXPAND_PATH "" # GROUP EXPAND PATH setenv GROUP_EXPAND_PATHS "~/bin/${OSTYPE}/${MACHTYPE} \ ~/bin ~/bin/${OSTYPE}/${MACHTYPE}" setenv GROUP_EXPAND_PATH "" foreach add_path (${EXPAND_PATHS}) if ( -d ${add_path} ) then setenv EXPAND_PATH "${EXPAND_PATH} ${add_path}" endif end foreach add_path (${GROUP_EXPAND_PATHS}) if ( -d ${add_path} ) then setenv GROUP_EXPAND_PATH \ "${GROUP_EXPAND_PATH} ${add_path}" endif end set path=(/bin /usr/bin /sbin /usr/sbin ${EXPAND_PATH} \ /usr/ccs/bin /usr/ucb /usr/X/bin /usr/dt/bin ${GROUP_EXPAND_PATH} ) # LD_LIBRARY_PATH SETTINGS setenv LD_LIBRARY_PATHS "/usr/lib /usr/sfw/lib /opt/sfw/lib \ /opt/csw/lib /usr/X11/lib /usr/openwin/lib /opt/JPC/lib /usr/local/lib" setenv LD_LIBRARY_PATH "/lib" foreach add_path (${LD_LIBRARY_PATHS}) if ( -d ${add_path}/amd64 ) then setenv LD_LIBRARY_PATH "${LD_LIBRARY_PATH}:${add_path}/amd64" endif if ( -d ${add_path} ) then setenv LD_LIBRARY_PATH "${LD_LIBRARY_PATH}:${add_path}" endif end