まだプログラマーですが何か?

プログラマーネタとアスリートネタ中心。たまに作成したウェブサービス関連の話も http://twitter.com/dotnsf

タグ:linux

オラクルが、正規ライセンス購入前の勉強目的で試しにソフトウェアを利用することのできるライセンス『OTN(Oracle Technology Network)開発者ライセンス』を提供していることを今更ながら知りました:
自分用Oracle DBを「無償で」作ろう!「OTN開発者ライセンス」

※同じく無料版である IBM Db2 Express-C みたいな位置付け?と思っていたのですが、ちと違いそう。Express-C は機能としては Express Edition に近いのですが、開発者エディションというわけではありません。「サポートなしで本番利用可」なのが IBM Db2 Express-C であり、この辺りが違いと言えそうです。

※むしろ IBM Db2 Developer Community Edition の位置付けが近い感じ。


利用するには Oracle アカウントの登録が必要ですが、登録自体は無料でした。各種オラクル製品がダウンロード可能で、オラクルDBはもちろん、Java や MySQL などの製品版も対象に含まれていました。利用目的は制限されていますが、仕様、検証、開発、テストに使うことはできるとのこと。早速使ってみました。なんと 20年以上ぶりにオラクル DB をインストールしてみた顛末です(笑)。


まずは OTN ページにアクセスして "Sign In" します:
2017072101


自分の OTN ID とパスワードを指定して「サインイン」します:
2017072102


サインイン後、"Software Downloads" をクリックしてダウンロードページに移動します:
20170721025


ダウンロードページをスクロールすると、ダウンロード対象の製品一覧が見つかります。オラクルDBも新しいエディションである 12c の Enterprise/Standard Edition 含めてダウンロードできますが、自分は比較的軽量な方がいいので 11g の Express Edition を選択しました:
2017072103


オラクルDB Express 11g2 のダウンロードページです。License Agreement にチェックを入れます:
2017072104


そして対象プラットフォーム(下図は Linux x64 を選択。他に Windows 32/64 bit 版を選択可)を選ぶとダウンロードが開始されます:
2017072105


ダウンロードできれば後はインストールするだけですが、Linux 版のオラクルDB Express 11g2 の場合、インストールするには スワップメモリが 2GB 必要です(足りないとインストーラーが止まります)。充分なスワップメモリが確保されていない環境の場合は動的にスワップファイルを増やす必要があります。その方法や手順は以下を参照ください:
Linux の SWAP 領域を増やす


改めて Linux 版の場合は zip された rpm ファイルがダウンロードされます。なので 64bit Linux 上でダウンロードしたファイルを unzip し、Disk1 フォルダ以下にある rpm ファイルを指定してインストールします:
# unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip
# cd Disk1
# rpm -ivh oracle-xe-11.2.0-1.0.x86_64.rpm
準備中...                ########################################### [100%]
   1:oracle-xe              ########################################### [100%]
Executing post-install steps...
You must run '/etc/init.d/oracle-xe configure' as the root user to configure the database.


「root で /etc/init.d/oracle-xe configure を実行しろ」というメッセージが表示されているので、このコマンドを実行して初期セットアップを実行します。セットアップ時の選択肢は全てデフォルトのままで、明示的に指定したのはパスワード(と確認パスワード)だけです:
# /etc/init.d/oracle-xe configure

Oracle Database 11g Express Edition Configuration
-------------------------------------------------
This will configure on-boot properties of Oracle Database 11g Express
Edition.  The following questions will determine whether the database should
be starting upon system boot, the ports it will use, and the passwords that
will be used for database accounts.  Press <enter> to accept the defaults.
Ctrl-C will abort.

Specify the HTTP port that will be used for Oracle Application Express [8080]:

Specify a port that will be used for the database listener [1521]:

Specify a password to be used for database accounts.  Note that the same
password will be used for SYS and SYSTEM.  Oracle recommends the use of
different passwords for each database account.  This can be done after
initial configuration: (パスワード指定)
Confirm the password: (確認パスワード指定)

Do you want Oracle Database 11g Express Edition to be started on boot (y/n) [y]:

Starting Oracle Net Listener...Done
Configuring database...Done
Starting Oracle Database 11g Express Edition instance...Done
Installation completed successfully.


これでセットアップ完了、、のはず、ですが、この後の作業を便利に行うための追加作業をしておきます。オラクル DB をコマンドラインから操作する場合に便利な環境変数が /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh(および /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.csh)コマンドによって設定されます。なので、/etc/bashrc などに以下の1行を追加して、対象ユーザーがログインする際にこの環境変数設定が行われるようにしておきます:
. /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh

改めてログインし直して(この環境変数設定を有効にして)、SQL*Plus を実行し、system DB に対して SQL を実行してみます:
# sqlplus system

SQL*Plus: Release 11.2.0.2.0 Production on 土 7月 22 01:54:50 2017

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

パスワードを入力してください:


Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
に接続されました。
SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
PL/SQL Release 11.2.0.2.0 - Production
CORE    11.2.0.2.0      Production
TNS for Linux: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - Production

SQL>

動きましたー! 懐かしい(Solaris の前の)SunOS 以来のオラクル DB インストール体験でした。いやあ、再びオラクルをインストールする日が来るとは・・・

Linux を使っている時に、ディスクの余った領域を SWAP ファイルとして作成し、SWAP 領域を増やす手順です。OS を起動したまま、サービスを止めることなく変更します。


まず増やす前の状態を確認しておきます:
# free -m
             total       used       free     shared    buffers     cached
Mem:           996        918         77          3          3        586
-/+ buffers/cache:        328        667
Swap:         1023          1       1022

現在のスワップは約 1GB(1023 MB)になっています。この領域を 1024 MB 増やして、約 2GB にします。

方法としては /var/swapfile という 1GB のファイルを作り、このファイルをスワップとして利用します:
# dd if=/dev/zero of=/var/swapfile bs=1M count=1024
# mkswap /var/swapfile
# swapon /var/swapfile

ここまでの作業が出来たら改めて状態を確認します:
# free -m
             total       used       free     shared    buffers     cached
Mem:           996        918         77          3          3        586
-/+ buffers/cache:        328        667
Swap:         2047          1       2046

SWAP メモリが約 2GB に増えました。なお、このまま元の状態(SWAP メモリ 1GB)に戻す場合は swapoff コマンドを利用します:
# swapoff /var/swapfile

このままだと次回起動時には SWAP メモリは 1GB に戻ります。次回起動時以降は SWAP メモリ 2GB の状態で起動させたい場合は、以下のコマンドを実行して /etc/fstab ファイルを書き換えます:
# echo "/var/swapfile        swap                    swap    defaults        0 0" >> /etc/fstab

 

IBM LinuxONE(メインフレーム版 Linux)に IBM Domino をインストールすることに挑戦してみました:2017012200


いくつか前提を紹介します。まず LinuxONE の環境は IBM LinuxONE コミュニティクラウド上の RHEL 6.x のサーバーインスタンスを使うことにします(最大 120 日間無料で使えます)。また IBM Domino を導入する際にはその環境に X Window のデスクトップ GUI が必要です。これらの環境を用意するまでの手順はこちらを参照ください:
IBM LinuxONE コミュニティクラウド上で X Window のデスクトップ環境を構築する


次に IBM Domino ですが、これは無料で入手できるものではありません。IBM Domino のサブスクリプション契約をお持ちで、インストールモジュールをダウンロードする権利をお持ちの人のみが入手可能なものです。

(訂正)
IBM Domino は IBM 無料トライアルダウンロードプログラムに含まれており、IBM LinuxONE 向けのエディションもこの対象でした:
https://www.ibm.com/developerworks/downloads/ls/lsds/

2017012302


IBM ID をお持ちか作成いただくことで、こちらからトライアル版をダウンロードしてご利用いただくことも可能です:
2017012301



(有効なサブスクリプション契約をお持ちの場合は、)"Linux for z System" 向けの IBM Domino の最新版をダウンロードしてください。ちなみに 2017/Jan/22 時点では V9.0 英語版がパーツ番号 CIBM5EN で検索することで見つけることができるはずです。ファイル名は DOMINO_9.0_64BIT_LIN_ZS_EN.tar でした。このファイルを入手済みであるとして、以下を紹介します。

LinuxONE に限らないのですが、Linux 版の IBM Domino は導入前に root ではない実行時のユーザーおよびそのグループを OS 内に作成しておく必要があります。以下、notes グループの notes ユーザーによって実行する前提として、これらのグループとユーザーを作成しておきます:
# groupadd notes
# useradd notes -g notes

ユーザーを作成したら、ダウンロードしたインストールモジュールファイルを展開し、zlinux64/domino フォルダ内のインストーラー(install)をコマンドラインから実行してインストール作業を行います:
# cd /data
# ls
DOMINO_9.0_64BIT_LIN_ZS_EN.tar

# tar xvf DOMINO_9.0_64BIT_LIN_ZS_EN.tar

# cd zlinux64/domino

# ./install

インストーラーを実行すると、次のようなインストール画面に切り替わります。ここから次へは TAB、変更時はスペース+変更内容+Enter で、必要に応じてオプションを編集しながらインストーラーの作業を進めます:

2017012002


LinuxONE で利用する場合、唯一意識すべきはインストール先のディスクだと思われます。比較的メインディスクに空きがない状態で導入するには /data 以下を指定して導入するようにします。以下の例はデータディレクトリをデフォルトの /local/notesdata から /data/local/notesdata に変更している様子です:
2017012003


最終確認画面が表示されています。問題なければ TAB キーでインストールが開始されます:
2017012004


インストールが完了しても、IBM Domino の場合はセットアップを行わないと動きません。というわけでセットアップに移りますが、その前に1つ作業があります。 xhost の設定をしておかないとセットアップ時に利用する GUI のウィンドウが開かないのです。

またここからは X Window システムのデスクトップ GUI 環境が必要になります。というわけでまずは VNC クライアントを使ってこのサーバーのデスクトップを開いてターミナルを起動し、この xhost コマンドで notes ユーザーの画面でインストーラーウィンドウが開くようにしておきます:
# xhost +local:notes

そのまま続けて notes ユーザーに su し( root ユーザーでは server は起動しません)、ノーツデータディレクトリがカレントディレクトリになっている状態から server を実行します。これ実はサーバーの起動手順と同じですが、最初の一回はセットアップモードでの起動が行われます:
# su - notes

$ cd /data/local/notesdata
$ /opt/ibm/domino/bin/server

すると GUI に Domino セットアップのフラッシュスクリーンが表示され・・・
2017012005


しばらくすると、見慣れた Domino サーバーセットアップの画面に遷移します。ここからはいつもの(Windows とかの)セットアップと同じです:
2017012006


セットアップが完了し、再度 server コマンドを実行すると、今度は Domino サーバーがコンソール内で起動し、Domino サーバーとして利用可能になります:
zdomino


IBM Domino は有料のソフトウェア製品であり、この製品(特に IBM z Systems 版)を無料で入手する方法は限られてしまいますが、その手段をお持ちの方であればのインストールモジュールを入手する方法がちと面倒ではありますが、IBM Domino はメインフレーム上のパブリッククラウド Linux に導入して使うまでの環境は(IBM LinuxONE コミュニティクラウドを使うことで)無料で用意できることになります。

試験的な利用も含め、パブリッククラウド上で IBM Domino の環境を作って動かしてみたい、という方は是非一度お試しください。

CentOS や RHEL で便利に利用されているパッケージ管理コマンドの "yum" 。このコマンドの便利な使い方の1つが groupinstall と呼ばれる機能です。ある環境を用意しようとした際に複数のパッケージを導入しないといけない場合、その複数のパッケージを1つの「グループパッケージ」のまとまりとみなし、グループパッケージ1つを指定して導入することで環境構築が可能になります。

個人的によく使う例で紹介すると、GUI のデスクトップ環境であれば "Desktop"、日本語サポート環境であれば "Japanese Support" などです。それぞれ以下のコマンドで導入できます:
(デスクトップ環境)
# yum groupinstall "Desktop"
(日本語サポート環境) # yum groupinstall "Japanese Support"

上記のようにグループパッケージを指定するだけでまとまったパッケージを導入できるのは便利なのですが、ではこれらのコマンドで実際にどのようなパッケージが導入されるのかを調べる方法はあるでしょうか? その答が yum の groupinfo コマンドです。例えば "Desktop" で何が導入されるのかを確認するには以下のようなコマンドを実行します(黒字が入力、青字が出力結果です):
# yum groupinfo "Desktop"
  :
  :
グループ: デスクトップ
 説明: シンクライアントとして使用できる最低限のデスクトップ
 強制的なパッケージ:
   NetworkManager
   NetworkManager-gnome
   alsa-plugins-pulseaudio
   at-spi
   control-center
   dbus
   gdm
   gdm-user-switch-applet
   gnome-panel
   gnome-power-manager
   gnome-screensaver
   gnome-session
   gnome-terminal
   gvfs-archive
   gvfs-fuse
   gvfs-smb
   metacity
   nautilus
   notification-daemon
   polkit-gnome
   xdg-user-dirs-gtk
   yelp
 標準パッケージ:
   control-center-extra
   eog
   gdm-plugin-fingerprint
   gnome-applets
   gnome-media
   gnome-packagekit
   gnome-vfs2-smb
   gok
   openssh-askpass
   orca
   pulseaudio-module-gconf
   pulseaudio-module-x11
   vino
 オプション パッケージ:
   sabayon-apply
   tigervnc-server
   xguest


同様に "Japanese Support" の場合は以下のようになりました:
# yum groupinfo "Japanese Support"
  :
  :
グループ: 日本語のサポート
 Language: ja
 標準パッケージ:
   ipa-gothic-fonts
   ipa-mincho-fonts
   ipa-pgothic-fonts
   ipa-pmincho-fonts
   vlgothic-fonts
   vlgothic-p-fonts
 条件付パッケージ:
   autocorr-ja
   eclipse-nls-ja
   ibus-anthy
   kde-i18n-Japanese
   kde-l10n-Japanese
   libreoffice-langpack-ja
   man-pages-ja
   poppler-data


これらの結果の中の「強制的パッケージ」と「標準パッケージ」が groupinstall コマンドによって導入されます。また「オプションパッケージ」や「条件付きパッケージ」が導入可能になります。

滅多にはないのですが、CentOS/RHEL の環境によっては "yum groupinstall" コマンドが使えないこともあります。その場合はここに記載した情報を使って "yum install" で同様の環境構築が可能になります。

※ここに記載されていないグループパッケージを導入する場合は、"yum groupinfo" の使える環境でパッケージを確認し、そこにリストされたパッケージを "yum install" する、という形になります。


この記事の続きです:


IBM LinuxONE コミュニティクラウド上に作った仮想サーバーにいわゆる "LAMP"(=Linux + Apache HTTPD + MySQL + PHP) 環境を構築してみます。まずは上記記事を参考に仮想サーバーを作り、SSH でリモートログインします:
2017010403


ミドルウェアの導入作業を伴うため、ルート権限を持ったユーザーにスイッチしておきます:
$ sudo /bin/bash
#


LAMP 環境に必要なミドルウェアや言語環境をまとめて導入します(赤字はコメント):
# yum install httpd -y (Apache HTTP サーバー)
# yum install mysql-server mysql -y (MySQL)
# yum install php php-mbstring php-mysql php-gd php-pear php-xml php-devel -y (PHP)

また以下は LAMP 環境構築においては必須ではありませんが、使うことも多いというか、あると便利だと思うので必要に応じて導入しておいてください:
# yum install screen -y (screen)
# yum install git -y (git)
# yum install java-1.8.0-ibm-devel -y (JDK 1.8)

ミドルウェアを起動する前にファイアウォールの設定を行います。デフォルトの LinuxONE では iptables によるファイアウォールが有効になっており、このままでは http(s) によるアクセスができません。今回の環境では iptables を無効にしておきましょう:
# /etc/init.d/iptables stop
# chkconfig iptables off

あらためて各ミドルウェアを起動し、また自動起動設定をしておきます:
# /etc/init.d/httpd start
# /etc/init.d/httpd mysqld
# chkconfig httpd on
# chkconfig mysqld on
# exit
$

この時点で Apache HTTP サーバーが動いています。iptables の解除が成功していれば http://(IPアドレス)/ にアクセスすることができるようになっているはずです:
2017010601


さて、MySQL に関しては root のパスワードを設定しておきましょう。この例では P@ssw0rd というパスワードにしていますが、ここは必要に応じて変えてください:
$ mysql -u root

mysql> set password for root@localhost=PASSWORD('P@ssw0rd');
mysql> exit

これで LinuxONE 上でも LAMP の環境が作れました! ちなみに PHP のバージョンは 5.3.3 が導入できます:
$ php -v
PHP 5.3.3 (cli) (built: Dec 15 2015 04:50:47)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

このページのトップヘ