HOME / コンピュータTips / Solaris / PATHの設定

Date: 2019/02/16 |  このエントリーをはてなブックマークに追加  |  Tags: solaris opensolaris path

Solarisはその歴史上、BSDを経て、SVR4に変化、そしていま、Linuxに対する歩み寄りをしていることもあり、PATHの設定が難しい。

私が知ってる限り:D

パス名説明
/bin,/usr/binPOSIXのデフォルト的なもの
/sbin,/usr/sbinPOSIXのデフォルト的なスーパーユーザ用
/usr/sfw/binSunがSolarisのインストールディスクの中で追加したフリーソフト。
/usr/ccsSunの開発系?
/usr/ucbBSD系のツール群。Solarisにとっては、Solarisと言われる以前のものとの互換のためにある
/usr/xpg[46]/binX/Open Portability Guide関係のもの。WikiPedia
/usr/dt,/usr/openwin,/usr/X11X系
/opt/sfw/binCompanion Disc系で、インストールされるもの
/opt/csw/binBlastwave.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

コンピュータTips/Solaris

Recent Updates