OmniOSをとりあえず使えるようにする
タイトル通り.
初期設定
基本的なドキュメントは http://omnios.omniti.com/wiki.php/GeneralAdministration を参考にしながら進めます。
ユーザ追加
とりあえず root で入って パスワード変更&ユーザ追加 :
# passwd root # useradd -m -d /export/home/USERNAME -g staff # passwd USERNAME
サービス起動・停止
サービスのステータスは svcs コマンドで取得 / 有効/無効は svcadm で設定
# svcs # svcadm [ enable / disable ] SERVICE_NAME # svcadm [ start / stop / restart ] SERVICE_NAME
ネットワーク設定
dladmで物理インターフェイス名が取得出来ます
# dladm show-phys
LINK MEDIA STATE SPEED DUPLEX DEVICE
rge0 Ethernet up 100 full rge0
ipadm でIPインターフェイスを作り,それに対してIP設定を行います。IPv4 DHCP環境の場合は :
# ipadm create-if rge0 # ipadm create-addr -T dhcp rge0/v4
ホスト名
インストール中に設定できますが,後から変更したくなった場合は :
# cat "新ホスト名" > /etc/nodename # svccfg -s svc:/system/identity:node setprop config/nodename=新ホスト名 # svcadm refresh svc:/system/identity:node # svcadm restart svc:/system/identity:node
パッケージのアップデート
http://omnios.omniti.com/wiki.php/Packaging を参考にしてリポジトリを追加 :
# pkg set-publisher -g http://pkg.omniti.com/omniti-ms/ ms.omniti.com # pkg set-publisher -g http://pkg.cs.umd.edu/ cs.umd.edu # pkg set-publisher -g http://pkg.niksula.hut.fi/ niksula.hut.fi # pkg set-publisher -g http://omnios.blackdot.be/ omnios.blackdot.be
アップデートは以下のコマンドで実施 :
# pkg refresh --full # pkg update -v
gcc
http://omnios.omniti.com/wiki.php/DevEnv を参照して進めます。これを書いてる時点では gcc 4.8 が stable ですが、gcc48 をパッケージからインストールすると ruby のコンパイル中に gcc が segfault しました
仕方ないので LTS な gcc47 を pkg で入れます :
$ sudo pkg install developer/gcc47 developer/object-file developer/linker developer/library/lint developer/build/gnu-make system/header system/library/math/header-math
パッケージからインストールされるバイナリは /opt 下に収まります。/opt/gcc-4.7.2/bin に PATH 通しておきましょう。
次に crle コマンドで /opt/gcc-4.7.2/lib をライブラリパスに登録します。
現状のライブラリパスを表示するには :
$ crle -v
Default configuration file (/var/ld/ld.config) not found
Default Library Path (ELF): /lib:/usr/lib (system default)
Trusted Directories (ELF): /usr/lib/secure (system default)
ld.config を生成して、現在 (デフォルト状態) のライブラリパスを書き込み :
$ sudo crle -c /var/ld/ld.config -l /lib:/usr/lib
gcc のライブラリパスを追記して完了:
$ sudo crle -u -l /opt/gcc-4.7.2/lib
このへんでミスるとほぼ全てのコマンド (shared library な binary の全て) が実行できなくなります。
最後に GNU tar と make もインストール。BSD/SysVではお馴染みの gtar / gmake という名前でインストールされます :
$ sudo pkg install gnu-tar gnu-make
Ruby
https://www.ruby-lang.org/ja/downloads/ から Ruby 2.1.0 の source tarball をダウンロードし
$ gtar zxf ruby-2.1.0.tar.gz
$ cd ruby-2.1.0 $ ./configure --with-arch=x86_64 && gmake && sudo gmake install
MariaDB
https://downloads.mariadb.org/ から Solaris11用のバイナリを落としてインストールします
基本的に INSTALL-BINARY に書いてあることをそのまま実行で問題ありませんが,ユーザ mysql と グループ mysql はデフォルトで存在したのでそのまま使います。
さらに幾つかの起動スクリプト (e.g. bin/mysqld_safe) の中で /usr/local/mysql というパスをハードコードしているため、インストール先をそちらに合わせます。
$ tar zxf mariadb-X.X.X-solaris11-x86_64.tar.bz $ sudo chown -R mysql:mysql mariadb-X.X.X-solaris11-x86_64 $ mv mariadb-X.X.X-solaris11-x86_64 /usr/local/mysql $ cd /usr/local/mysql && sudo scripts/mysql_install_db --user=mysql $ sudo chown -R root . $ sudo chown -R mysql data
次に SMF へMariaDBを登録します。手順は https://blogs.oracle.com/ritu/entry/how_to_configure_mysql_to を参照。
ただし,現在では manifest の先頭にDTDの宣言が必要です。右ページを参考にして修正が必要です : http://findasolution.forums-free.com/svccfg-document-has-no-dtd-t39.html
参考ページのとおりに mysql.xml と mysql スクリプトが書き上がったら、以下のように投入 :
$ sudo mkdir /var/svc/manifest/application/database $ sudo chgrp sys /var/svc/manifest/application/database $ sudo vi /var/svc/manifest/application/database/mysql.xml # mysql.xmlを投入して $ sudo vi /lib/svc/method/mysql # scriptを投入して $ sudo chmod 555 /lib/svc/method/mysql $ sudo chgrp bin /lib/svc/method/mysql $ sudo /usr/sbin/svccfg import mysql.xml
これで SMF の管理下になりました :
$ svcs mysql STATE STIME FMRI disabled svc:/application/database/mysql:mariadb_version55 $ sudo /usr/sbin/svcadm mysql enable $ svcs mysql STATE STIME FMRI online 11:26:14 svc:/application/database/mysql:mariadb_version55