RedHat系CentOS(x86_64)へのWebSphere MQの評価版のインストール方法とエラーの対処法をtrial and errorで記載。参考サイトは記事の末尾をご参照。尚、当該OSはMacのVMware fusion上のゲストOSとして稼働。
MQのISOイメージをマウント
# mkdir /mnt/iso # mount -t iso9660 -o loop mq.iso /mnt/iso # cd /mnt/iso # ls copyright mqseriesman-701-3x86_64.rpm mqseriesmsg_zh_cn-701-3x86.rpm gsk7bas-70-427i386.rpm mqseriesmsg_cs-701-3x86_64.rpm mqseriesmsg_zh_tw-701-3x86.rpm gsk7bas64-70-427x86_64.rpm mqseriesmsg_de-701-3x86_64.rpm mqseriesruntime-701-3x86_6.rpm lap mqseriesmsg_es-701-3x86_64.rpm mqseriessamples-701-3x86_6.rpm licenses mqseriesmsg_fr-701-3x86_64.rpm mqseriessdk-701-3x86_64.rpm mqlicense.sh mqseriesmsg_hu-701-3x86_64.rpm mqseriesserver-701-3x86_64.rpm mqseriesclient-701-3x86_64.rpm mqseriesmsg_it-701-3x86_64.rpm mqseriestxclient-701-3x86_.rpm mqseriesconfig-701-3x86_64.rpm mqseriesmsg_ja-701-3x86_64.rpm prereqs mqserieseclipsesdk33-701-3.rpm mqseriesmsg_ko-701-3x86_64.rpm readadd.txt mqseriesjava-701-3x86_64.rpm mqseriesmsg_pl-701-3x86_64.rpm readmes mqseriesjre-701-3x86_64.rpm mqseriesmsg_pt-701-3x86_64.rpm mqserieskeyman-701-3x86_64.rpm mqseriesmsg_ru-701-3x86_64.rpm
MQのライセンス受諾
/mnt/isoディレクトリへ移動し下記のコマンドを実行。
# ./mqlicense.sh -accept
以下のエラーが発生した場合はそれに対応する手順を実施し、再度上記のコマンドを実行。
追記(2013-01-07):予め下記のサイトで必要な共有ライブラリ等を確認しインストールしておけば特にエラー無くインストール可能。
・IBM System Requirements for WebSphere MQ – United States
エラーケース1 – ld-linux.so.2
./mqlicense.sh: ./lap/jre/jre/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: そのようなファイルやディレクトリはありません ERROR: Installation will not succeed unless the license agreement can be accepted.
対応方法
下記コマンドでライブラリをインストール。
# yum install ld-linux.so.2 Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile * base: ftp.iij.ad.jp * extras: ftp.iij.ad.jp * updates: ftp.iij.ad.jp Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package glibc.i686 0:2.12-1.80.el6_3.6 will be installed --> Processing Dependency: libfreebl3.so(NSSRAWHASH_3.12.3) for package: glibc-2.12-1.80.el6_3.6.i686 --> Processing Dependency: libfreebl3.so for package: glibc-2.12-1.80.el6_3.6.i686 --> Running transaction check ---> Package nss-softokn-freebl.i686 0:3.12.9-11.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved ======================================================================================================================== Package Arch Version Repository Size ======================================================================================================================== Installing: glibc i686 2.12-1.80.el6_3.6 updates 4.3 M Installing for dependencies: nss-softokn-freebl i686 3.12.9-11.el6 base 116 k Transaction Summary ======================================================================================================================== Install 2 Package(s) Total download size: 4.4 M Installed size: 13 M Is this ok [y/N]: y Downloading Packages: (1/2): glibc-2.12-1.80.el6_3.6.i686.rpm | 4.3 MB 00:00 (2/2): nss-softokn-freebl-3.12.9-11.el6.i686.rpm | 116 kB 00:00 ------------------------------------------------------------------------------------------------------------------------ Total 7.4 MB/s | 4.4 MB 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Warning: RPMDB altered outside of yum. Installing : nss-softokn-freebl-3.12.9-11.el6.i686 1/2 Installing : glibc-2.12-1.80.el6_3.6.i686 2/2 Verifying : glibc-2.12-1.80.el6_3.6.i686 1/2 Verifying : nss-softokn-freebl-3.12.9-11.el6.i686 2/2 Installed: glibc.i686 0:2.12-1.80.el6_3.6 Dependency Installed: nss-softokn-freebl.i686 0:3.12.9-11.el6 Complete!
エラーケース2 – libgcc_s.so.1
Java クラスが見つかりません: com.ibm.lex.lapapp.LAP libgcc_s.so.1 must be installed for pthread_cancel to work JVMDUMP006I Processing dump event "abort", detail "" - please wait. JVMDUMP032I JVM requested System dump using '/mnt/iso/core.20121229.053217.7255.0001.dmp' in response to an event libgcc_s.so.1 must be installed for pthread_cancel to work ./mqlicense.sh: line 172: 7255 アボートしました(コアダンプ) ${JRE?} -cp ${LAPCLASSPATH?} com.ibm.lex.lapapp.LAP -l ${PROGPATH?}/lap/licenses -s /tmp/mq_license ${STATUSARG} ${DISPLAYARG} ERROR: Installation will not succeed unless the license agreement can be accepted.
対応方法
下記コマンドでライブラリをインストール。
# yum install libgcc_s.so.1 Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile * base: ftp.iij.ad.jp * extras: ftp.iij.ad.jp * updates: ftp.iij.ad.jp Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package libgcc.i686 0:4.4.6-4.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved ======================================================================================================================== Package Arch Version Repository Size ======================================================================================================================== Installing: libgcc i686 4.4.6-4.el6 base 111 k Transaction Summary ======================================================================================================================== Install 1 Package(s) Total download size: 111 k Installed size: 144 k Is this ok [y/N]: y Downloading Packages: libgcc-4.4.6-4.el6.i686.rpm | 111 kB 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : libgcc-4.4.6-4.el6.i686 1/1 Verifying : libgcc-4.4.6-4.el6.i686 1/1 Installed: libgcc.i686 0:4.4.6-4.el6 Complete!
エラーケース3 – com.ibm.lex.lapapp.LAP not found
エラー: メイン・クラスcom.ibm.lex.lapapp.LAPが見つからなかったかロードできませんでした ERROR: Installation will not succeed unless the license agreement can be accepted.
対応方法
一度、/mnt/isoの中身を全て任意のディスクディレクトリへコピーし、当該ディレクトリのmqlicense.shの書き込み権限を付与。エディタで以下のように修正。
# Launch LAP tool # コメントアウト #${JRE?} -cp ${LAPCLASSPATH?} com.ibm.lex.lapapp.LAP -l ${PROGPATH?}/lap/licenses -s /tmp/mq_license ${STATUSARG} ${DISPLAYARG} #RC=$? # リターンコードを直書き RC=9 # Display appropriate completion message depending on LAP return code case ${RC?} in "3") declinemsg ;; "9") echo "" echo "Agreement accepted: Proceed with install." echo "" ;; *) errormsg; exit ${RC} ;; esac
その後、再度スクリプトを実行。
# ./mqlicense.sh -accept -jre /usr/bin/java <中略> Agreement accepted: Proceed with install.
rpmパッケージのインストール
以下はエラー発生ケース。
# rpm -ivh mqseriesruntime-701-3x86_6.rpm mqseriesserver-701-3x86_64.rpm mqseriessdk-701-3x86_64.rpm 準備中... ########################################### [100%] ERROR: Product cannot be installed until the license agreement has been accepted. Run the 'mqlicense' script, which is in the root directory of the install media, or see the Quick Beginnings book for more information. エラー: %pre(MQSeriesRuntime-7.0.1-3.x86_64) scriptlet failed, exit status 1 エラー: install: スクリプト %pre の実行に失敗しました (2)。MQSeriesRuntime-7.0.1-3 をスキップします。 ERROR: Product cannot be installed until the license agreement has been accepted. Run the 'mqlicense' script, which is in the root directory of the install media, or see the Quick Beginnings book for more information. エラー: %pre(MQSeriesServer-7.0.1-3.x86_64) scriptlet failed, exit status 1 エラー: install: スクリプト %pre の実行に失敗しました (2)。MQSeriesServer-7.0.1-3 をスキップします。 ERROR: Product cannot be installed until the license agreement has been accepted. Run the 'mqlicense' script, which is in the root directory of the install media, or see the Quick Beginnings book for more information. エラー: %pre(MQSeriesSDK-7.0.1-3.x86_64) scriptlet failed, exit status 1 エラー: install: スクリプト %pre の実行に失敗しました (2)。MQSeriesSDK-7.0.1-3 をスキップします。
ライセンスがacceptされていないとのこと。先ほどのスクリプトでコメントアウトした行で作成されるべきファイルが作成されないので下記のように手動で作成。
# mkdir -p /tmp/mq_license/license # touch /tmp/mq_license/license/status.dat
認証されると下記のメッセージが表示される。
License has already been accepted: Proceed with install.
再度rpmコマンドを再実行する。
# rpm -ivh mqseriesruntime-701-3x86_6.rpm mqseriesserver-701-3x86_64.rpm mqseriessdk-701-3x86_64.rpm 準備中... ########################################### [100%] 1:MQSeriesRuntime ########################################### [ 33%] 2:MQSeriesServer ########################################### [ 67%] 3:MQSeriesSDK ########################################### [100%]
なんだかなぁ。。
追記(2013-01-07):下記のサイトにインストールパッケージの説明が載っていたので引用させて頂く。
引用元:キュー・マネージャーの独り言: 第4回 WebSphere MQ V7をLinux上で使う上で、気づいた点
パッケージに依存関係がありますので、
– MQSeriesRuntime-7.0.0-0.i386.rpm
– MQSeriesSDK-7.0.0-0.i386.rpm
– MQSeriesServer-7.0.0-0.i386.rpm
– MQSeriesJRE-7.0.0-0.i386.rpm
の順番で導入してください。さらにWebSphere MQ V7がサポートしているJDKをまだ導入していない場合には、ibm-java2-i386-sdk-5.0.5.0.i386.rpmを導入してください。
WebSphere MQ V7 Explorerを利用する場合には、
– MQSeriesConfig-7.0.0-0.i386.rpm
– MQSeriesEclipseSDK33-7.0.0-0.i386.rpm
の2つも導入してください。他には、MQSeriesSamples-7.0.0-0.i386.rpm、MQSeriesJava-7.0.0-0.i386.rpm、MQSeriesMan-7.0.0-0.i386.rpm、MQSeriesMsg_ja-7.0.0-0.i386.rpmは、導入することをお勧めします。
尚、MQSeriesEclipseSDKのインストール中に下記のエラーが発生した場合は、必要な後述のパッケージをyumインストールする。
<前略> (eclipse:22879): Gtk-WARNING **: Unable to locate theme engine in module_path: "clearlooks", Gtk-Message: Failed to load module "pk-gtk-module": libpk-gtk-module.so: cannot open shared object file: No such file or directory Gtk-Message: Failed to load module "canberra-gtk-module": libcanberra-gtk-module.so: cannot open shared object file: No such file or directory <後略>
# yum install libpk-gtk-module.so # yum install libcanberra-gtk-module.so # yum install gtk2-engines.i686
インストール済みパッケージの検索方法
$ rpm -qa | grep MQSeries MQSeriesSDK-7.0.1-3.x86_64 MQSeriesJava-7.0.1-3.x86_64 MQSeriesSamples-7.0.1-3.x86_64 MQSeriesJRE-7.0.1-3.x86_64 MQSeriesServer-7.0.1-3.x86_64 MQSeriesMsg_ja-7.0.1-3.x86_64 MQSeriesConfig-7.0.1-3.x86_64 MQSeriesRuntime-7.0.1-3.x86_64 MQSeriesMan-7.0.1-3.x86_64 MQSeriesEclipseSDK33-7.0.1-3.x86_64
MQ動作確認
Queue Managerの作成。
# crtmqm qmc00 AMQ7077: You are not authorized to perform the requested operation.
権限のあるmqmユーザー(Install時にはまだ作っていなかったので)のパスワードを設定。
# cat /etc/passwd | grep mqm mqm:x:496:501::/var/mqm:/bin/bash # passwd mqm Changing password for user mqm. New password: Retype new password: passwd: all authentication tokens updated successfully.
mqmユーザーでログインし直し、Queue Managerの作成テスト、MQSCの起動確認。
$ crtmqm qmc00 WebSphere MQ queue manager created. Directory '/var/mqm/qmgrs/qmc00' created. Creating or replacing default objects for qmc00. Default objects statistics : 65 created. 0 replaced. 0 failed. Completing setup. Setup completed. $ strmqm qmc00 WebSphere MQ queue manager 'qmc00' starting. 5 log records accessed on queue manager 'qmc00' during the log replay phase. Log replay for queue manager 'qmc00' complete. Transaction manager state recovered for queue manager 'qmc00'. WebSphere MQ queue manager 'qmc00' started. $ runmqsc qmc00 Starting MQSC for queue manager qmc00. display qmgr 1 : display qmgr AMQ8408: Display Queue Manager details. QMNAME(qmc00) ACCTCONO(DISABLED) ACCTINT(1800) ACCTMQI(OFF) ACCTQ(OFF) ACTIVREC(MSG) ALTDATE(2012-12-30) ALTTIME(10.16.26) AUTHOREV(DISABLED) CCSID(1208) CHAD(DISABLED) CHADEV(DISABLED) CHADEXIT( ) CHLEV(DISABLED) CLWLDATA( ) CLWLEXIT( ) CLWLLEN(100) CLWLMRUC(999999999) CLWLUSEQ(LOCAL) CMDEV(DISABLED) CMDLEVEL(701) COMMANDQ(SYSTEM.ADMIN.COMMAND.QUEUE) CONFIGEV(DISABLED) CRDATE(2012-12-30) CRTIME(10.16.26) DEADQ( ) DEFXMITQ( ) DESCR( ) DISTL(YES) INHIBTEV(DISABLED) IPADDRV(IPV4) LOCALEV(DISABLED) LOGGEREV(DISABLED) MARKINT(5000) MAXHANDS(256) MAXMSGL(4194304) MAXPROPL(NOLIMIT) MAXPRTY(9) MAXUMSGS(10000) MONACLS(QMGR) MONCHL(OFF) MONQ(OFF) PARENT( ) PERFMEV(DISABLED) PLATFORM(UNIX) PSRTYCNT(5) PSNPMSG(DISCARD) PSNPRES(NORMAL) PSSYNCPT(IFPER) QMID(qmc00_2012-12-30_10.16.26) PSMODE(ENABLED) REMOTEEV(DISABLED) REPOS( ) REPOSNL( ) ROUTEREC(MSG) SCHINIT(QMGR) SCMDSERV(QMGR) SSLCRLNL( ) SSLCRYP( ) SSLEV(DISABLED) SSLFIPS(NO) SSLKEYR(/var/mqm/qmgrs/qmc00/ssl/key) SSLRKEYC(0) STATACLS(QMGR) STATCHL(OFF) STATINT(1800) STATMQI(OFF) STATQ(OFF) STRSTPEV(ENABLED) SYNCPT TREELIFE(1800) TRIGINT(999999999) end 2 : end One MQSC command read. No commands have a syntax error. All valid MQSC commands were processed.
尚、MQの出力メッセージの言語(英語・日本語)を切り替えたい場合はOSの言語設定を変更する。
参考サイト
- WebSphere MQ V7.0導入ガイド
- ヘルプ – WebSphere MQ for Linux にようこそ
- Install MQ Server Linux
- キュー・マネージャーの独り言: 第4回 WebSphere MQ V7をLinux上で使う上で、気づいた点
- notes >>> miscellaneous
- MQSeries.net :: View topic – AMQ7077: You are not authorized to perform the requested ope
- MQSeries.net :: View topic – AMQ7077 : Causes ?
- キュー・マネージャーの独り言: 第4回 WebSphere MQ V7をLinux上で使う上で、気づいた点
- Acrobat Reader under Fedora 11 64 bit? – FedoraForum.org
追記(2013-01-01):よくよく読むとIBM JREのインストールなど幾つか手順を端折ってしまったかも。。