※実際には12/17のネタです。
■前提条件の確認とインストール
lennyには無かった「useradd」コマンドに「-M」オプションがあるので、そのまま入りそうだ。
$ sudo apt-get install alien libaio1 unixodbc
$ whereis -b unzip
unzip: /usr/bin/unzip
$ LANG=C man useradd | grep -A 3 "\-M\$"
-M
Do no create the user's home directory, even if the system wide
setting from /etc/login.defs (CREATE_HOME) is set to yes.
$ whereis -b chkconfig | grep chkconfig || sudo apt-get install chkconfig
chkconfig: /sbin/chkconfig
$ apt-cache show chkconfig | grep Filename
Filename: pool/main/c/chkconfig/chkconfig_11.0-79.1-1_all.deb
$ whereis -b awk 2>&1 | grep "^\/bin\/awk" || test -f /bin/awk || sudo ln -s /usr/bin/awk /bin/awk
$ ls -l /bin/awk
lrwxrwxrwx 1 root root 12 2011-12-17 19:59 /bin/awk -> /usr/bin/awk
■zipの解凍、rpm⇒deb変換
※lennyと母艦は一緒の仮想マシンなので、ここの処理時間は変わらない。
$ unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip
$ cd Disk1/;time sudo alien --to-deb --scripts oracle-xe-11.2.0-1.0.x86_64.rpm
oracle-xe_11.2.0-2_amd64.deb generated
real 4m14.957s
user 1m16.953s
sys 2m24.345s
■インストール
$ sudo dpkg -i oracle-xe_11.2.0-2_amd64.deb
(データベースを読み込んでいます ... 現在 41910 個のファイルとディレクトリがインストールされています。)
oracle-xe 11.2.0-2 を (oracle-xe_11.2.0-2_amd64.deb で) 置換するための準備をしています ...
oracle-xe を展開し、置換しています...
oracle-xe (11.2.0-2) を設定しています ...
Executing post-install steps...
insserv: warning: script 'oracle-xe' missing LSB tags and overrides
oracle-xe 0:off 1:off 2:on 3:on 4:on 5:on 6:off
You must run '/etc/init.d/oracle-xe configure' as the root user to configure the database.
■「configure」スクリプトの実行
$ sudo /etc/init.d/oracle-xe configure
★途中で以下のようなエラーが出たが正常に終了した。
Starting Oracle Net Listener...touch: cannot touch `/var/lock/subsys/listener': No such file or directory
Configuring database...Done
Starting Oracle Database 11g Express Edition instance...Done
Installation completed successfully.
■実行したスクリプトから「touch」を使用している箇所を抜き出す
$ sudo grep touch /etc/init.d/oracle-xe | sed s/"\t"//g | sort | uniq
touch /var/lock/subsys/listener
touch /var/lock/subsys/oracle-xe
■後で削除されるようだが、「/var/lock/subsys」ディレクトリが無い。
$ sudo grep "\/var\/lock\/subsys\/listener" /etc/init.d/oracle-xe
touch /var/lock/subsys/listener
touch /var/lock/subsys/listener
if [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/listener
$ sudo grep "\/var\/lock\/subsys\/oracle-xe" /etc/init.d/oracle-xe
touch /var/lock/subsys/oracle-xe
touch /var/lock/subsys/oracle-xe
rm -f /var/lock/subsys/oracle-xe
参考:最終回 Linux起動の仕組みを理解しよう[rcスクリプト編]
http://www.atmarkit.co.jp/flinux/rensai/theory11/theory11a.html
$ sudo grep subsys /etc/init.d/oracle-xe
touch /var/lock/subsys/listener
touch /var/lock/subsys/oracle-xe
touch /var/lock/subsys/listener
touch /var/lock/subsys/oracle-xe
if [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/listener
rm -f /var/lock/subsys/oracle-xe
■ディレクトリを作成するだけでよいので、作成する。
$ sudo mkdir /var/lock/subsys
■oracle-xeを起動中は以下の空のファイルが作成される。
停止するとこのファイルは無くなる。
$ sudo ls /var/lock/subsys/
listener oracle-xe
※lennyにも無かったので、このディレクトリを作成して追加した。
※oracleユーザでログインしないのであれば、パスワードの設定は不要。
■ログインチェック
$ source /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh
$ sqlplus system/*****
SQL*Plus: Release 11.2.0.2.0 Production on 土 12月 17 20:35:23 2011
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
に接続されました。
SQL> exit
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Productionとの接続が切断されました。
■追記(initスクリプトの修正)
oracle-xeのLSB tagを修正する(debian lenny / squeeze)
http://ameblo.jp/labunix/entry-11116145732.html