通常のテキストデータならこのような違いを問題にすることなく共有できますが、 実行ファイルなどのバイナリデータは、一般にこれらの環境の相違に よって使い分ける必要が出てきます。特に、自サイトで用意したツールを あるNFSサーバ に置き、これをクライアントの/usr/local/bin などのディレクトリに マウントして使用する場合、各クライアントが自分のOS環境に適合したディレクトリを 正しくマウントする必要があります。
このような場合の解決法の一つに、オートマウントのマップ中で自動的に 置き換えられる組み込み変数を利用する方法があります。 この置換えを行なうのはクライアント側のautomountdということになりますが、 使用するUNIXの種類により使用可能な組み込み変数が異なる場合がありますので、 実際に使用する場合は、必ずどのような変数がサポートされているか確かめて下さい。
Solaris 2.5のオートマウントでは、次のような変数が使用可能です。
uname -m
の出力で置き換えられます。SPARCstation LXなどではsun4m、
x86ではi86pcとなります。
uname -p
の出力で置き換えられます。SPARCマシンではsparc、x86では
i386となります。
uname -n
の出力で置き換えられます。
uname -s
の出力で置き換えられます。Solarisの場合、SunOSとなります。
uname -r
の出力で置き換えられます。Solaris 2.5では、5.5となります。
uname -v
の出力で置き換えられます。
ベンダ提供のカーネルパッチなどを当てると変化します。
uname
というコマンドはPOSIXで規定されているので、最近のUNIXであれば
たいがいのシステムに用意されているでしょう。
この変数を用いて、たとえば/etc/auto_direct
中に
/usr/local/bin -ro binserver:/export/bin/$CPU
としておき、サーバbinserverの/export/bin/以下にi386とsparcの 2つのディレクトリを作成し、それぞれのCPU用のバイナリを置くようにすれば、 Solaris2.5のSPARC版とx86版が同一の設定で使用できます。 もし、上の例で、サーバ上のバイナリを置くディレクトリ名を単にi386とか sparcではなくi386-binとsparc-binにしたい場合、
/usr/local/bin -ro binserver:/export/bin/${CPU}-bin
のように、置き換えられる部分を{ }
で囲って下さい。
この変数の置き換えは、ダイレクトマップ中でもインダイレクトマップ中でも どちらでも使用できます。かならず使用するべきだというようなものではありませんが、 頭の中に置いておけば場合によってはサイトの管理を簡略化するのに役立つでしょう。
さらに、組み込まれている変数以外の変数に値を持たせることも、automountd を 起動する時の引数を指定することで可能になります。 しかし、そこまですると各マシンの設定を共通化して管理の手間を省くという目的に かえって反する場合もあると思われますので、 十分にバランスを考慮してもっとも効率の良い方法を選択するのがよいでしょう。