なみひらブログ

学んだことを日々記録する。~ since 2012/06/24 ~

ミドルウェアのバージョン管理

サーバに導入するミドルウェアにはバージョンがあります。それらのミドルウェアのサーバに導入するときバージョンに依存した形で配置してしまうと、バージョンを上げた場合、それまで利用していたパスが不正(デッドリンク)になったりします。

例えば以下のような配置の仕方です。(jdkの場合。)

[namihira@server]/usr/java% ls
jdk1.7.0_04

上記の場合、javaを使う場合パスが"/usr/java/jdk1.7.0_04/bin"などになり、javaのバージョンをjdk1.8.0_01に上げた場合、そのパスは無効になってしまいます。
それを回避するために、バージョンを隠すような配置が必要です。



以下のように配置しましょう。

[namihira@server]/usr/java% ll
合計 16
lrwxr-xr-x 1 root  root     6  66  2012 default -> latest
drwxr-xr-x 8 root  root  4096  412  2012 jdk1.7.0_04
lrwxr-xr-x 1 root  root    11  66  2012 latest -> jdk1.7.0_04

「default」と「latest」はそれぞれシンボリックリンクで、意味はそれぞれ名前の通り「デフォルト」と「最新のバージョン」です。上の配置では、「デフォルトは最新のバージョンのものを使う」という意味です。
これにパスを通す場合には、"/usr/java/default/bin"のようにすることができ、パスからバージョン情報依存を消すことができました。
バージョンを上げる場合は、以下のようにします。

[namihira@server]/usr/java% ll
合計 16
lrwxr-xr-x 1 root  root     6  66  2012 default -> latest
drwxr-xr-x 8 root  root  4096  412  2012 jdk1.7.0_04
drwxr-xr-x 8 root  root  4096  412  2012 jdk1.8.0_01
lrwxr-xr-x 1 root  root    11  66  2012 latest -> jdk1.8.0_01

パスは有効ですね。



シンボリックリンクを固定のバージョンにする場合は以下のようにします。

[namihira@server]/usr/java% ll
合計 16
lrwxr-xr-x 1 root  root     6  66  2012 default -> jdk1.7.0_04
drwxr-xr-x 8 root  root  4096  412  2012 jdk1.7.0_04
drwxr-xr-x 8 root  root  4096  412  2012 jdk1.7.30_01
drwxr-xr-x 8 root  root  4096  412  2012 jdk1.8.1_01
lrwxr-xr-x 1 root  root    11  66  2012 latest -> jdk1.8.1_01

デフォルトでいいヒトは、"/usr/java/default/bin"
最新を使いたいヒトは、"/usr/java/latest/bin"
個別バージョンを使いたいヒトは、"/usr/java/jdk1.7.30_01/bin"
と指定する運用になります。