Oracle Solaris 11を利用した最初のステップ

Glynn Foster著

新規ソフトウェアのインストール手順とその他のシステム構成の管理を含む、Oracle Solaris 11のインストール方法を紹介します。


2012年10月公開

Oracle Solaris 11はいくつかの異なるインストール・オプションとともに配布されます。手入力を必要としないサーバーベースの自動インストール、同様にサーバーでの使用に適したインタラクティブなテキストベースのインストール、また、完全なデスクトップ環境が含まれるインタラクティブなグラフィカル・インストーラからのインストールなど、選ぶことができます。

OTNは、情報に裏付けられた意思決定の一助となるよう、オラクルが提供するテクノロジーを十分に理解するためのさまざまなヘルプを提供します。 技術記事、ソフトウェアのダウンロード、ドキュメントなどの内容が含まれます。 業務に必要な技術リソースを入手するために、メンバーシップに参加してください

この記事では、インタラクティブなグラフィカル・インストーラに重点を置いていますが、この記事で説明されている概念の多くは、その他のOracle Solaris 11インストール・オプションにも適用されます。 Oracle Solaris 10を使用していたユーザーは、Oracle Solaris 10からOracle Solaris 11への移行ガイドを必ず参照してください。

グラフィカル・インストーラの正式名称は「Live Media」として知られています。 これは、Oracle SolarisはRAMにブート可能で、既存のOSに対して影響することなく実行できることを意味します。 読込みが終了すれば、Oracle Solarisを自分のシステムにインストールすべきかどうかを判断するために自由に試してみることができます。

約800 MBのイメージ・ファイルであるOracle Solaris 11 Live Media(x86版)をダウンロードし、DVDバーナーを使用してディスクを作成するか、仮想マシン内あるいはILOM(Oracle Integrated Lights Out Manager)リモート・コンソールを介して、直接ISOイメージを使用することができます。

Live Mediaは長時間の使用に適していません。 たとえば、システムに変更を加えたとしても、システムがシャットダウンしてしまった場合にそれらの情報は失われます。 このため、次の論理的なステップとしてはOracle Solarisをシステム上にインストールするということになりますが、Live Mediaによりデスクトップ上にOracle Solarisインストール・アイコンが配置されることで、インストールは容易になります。 その手順に進む前に少し話を戻して、インストール・オプションについて説明します。

インストール・オプション

Oracle Solaris 11をインストールする場所については、次に示すような選択肢があります。

仮想マシンの内部にインストールする

Oracle Solaris 11をすぐに使い始めるための最も簡単な方法は、現在使用しているOS上の仮想マシンにインストールすることで実現できます。 図1は、Oracle VM VirtualBoxを使用して、Oracle Solaris 11がApple OS X上にインストールされている様子を示します。

図1

図1. Apple OS X上のOracle Solaris

Oracle Solaris 11は、仮想マシンが提供する仮想化されたデバイスを認識することを保証しています。 Oracle Solaris 11をフルスクリーン・モードで実行していると、ほかのOSがその下にあることを忘れてしまうほどです。

このアプローチでの問題は、同時に2つのOSを稼働するだけの十分なメモリが必要になることです。最適なパフォーマンスを得るために必要なメモリは、最小で2 GBが推奨されます。 また、OSをインストールするために、少なくとも7 GBのディスク領域が必要です。

Oracle VM VirtualBoxは、Microsoft Windows、Apple OS X、Linux、ホスト・プラットフォームとしてのOracle Solaris、もちろんOracle Solarisにも対応した、無料ダウンロード可能なハイパーバイザです。 オラクルは、Oracle VM VirtualBoxにプリインストールされた仮想マシンを多数提供することで、このアプローチを試みやすくしています。プリインストールされた仮想マシンとは、たとえばOracle Solaris 11上の開発者ツールを評価するためなどといった特定の用途を目的としたもののことを指します。

Live Media起動後のインストール・プロセスは簡単です。 デスクトップ上のOracle Solarisのインストール・アイコンをクリックするだけで、図2に示すとおりグラフィカル・インストーラが起動します。

図2

図2. Oracle Solarisグラフィカル・インストーラ

図2に示すように、インストール・プロセスは、固定のパッケージ・セットを配置する前にいくつかの基本的な質問に答えるだけのシンプルなものです。 Oracle Solarisが正常にインストールされた後に、Package Managerを使用してインストールの内容を簡単にカスタマイズすることができます。

インストール・プロセスが完了したら、再起動するだけで新しいOracle Solaris環境を有効にすることができます。また、図3に示すようなOracle Solarisインストール・ログをレビューすることができます。

図3

図3. インストール・ログのレビュー

スタンドアロン・システムとしてベアメタル上にインストールする

x86システムをOracle Solaris 11専用に使用可能な場合、このインストール・プロセスは仮想マシンにOSをインストールするのとほとんど同じです。 Live Mediaを単に起動し、グラフィカル・インストーラを開始してください。

このアプローチでの懸案事項は、Oracle Solaris 11が、ご使用のハードウェア・デバイスに適したドライバに対応しているかどうかです。 Live Mediaを実行している場合、ご自分のデバイスが対応されているのかどうかを簡単に確認することができます。 図4に示すように、Live Mediaのデスクトップ上にデバイス・ドライバ・ユーティリティのアイコンがあります。 アイコンをダブルクリックし、スキャンが完了するのを待ちます。

Live Media起動中は、デフォルト・ユーザーのログインとパスワードはjackです。 ルート・ユーザーになる必要がある場合は、パスワードsolarisを使用できます。 Oracle Solarisインストール中の初期ユーザーの設定方法の詳細については後述します。

図4

図4. Oracle Solarisデバイス・ドライバ・ユーティリティ

ドライバが見つからない場合、ユーティリティは検索する場所のポインタを提供します。 Googleも利用することができますが、実際にそれ以上の結果が得られない場合、必要なドライバが有効になるまで、またはドライバの問題を解決するために必要となる新しいシステムやコンポーネントを購入するまでは、Oracle VM VirtualBoxの利用が最も適切なソリューションかもしれません。

Oracle Solaris 11をSPARCベースのシステムにインストールする場合、インタラクティブなテキスト・インストーラを使用する必要があります。 Live Mediaとは異なり、このインストールではサーバー指向環境に合ったソフトウェアを選択してインストールします。 デスクトップ環境は含みません。 初期インストールが完了すれば、Package Managerを使用してsolaris-desktopパッケージをインストールすることで、完全なデスクトップ環境をインストールできます。

マルチブート環境でのベアメタル上へのインストール・シナリオ

マルチブート環境の場合、Oracle Solaris 11を既存のオペレーティング・システムに並列に、ベアメタル上に(ハードウェアに直接)インストールします。 このシナリオは最も作業が複雑なため、いくつかの準備が必要です。

Oracle Solaris 11 Live Mediaには、ハード・ディスクのパーティションを作成することができるGParted(GNOME Partition Editor)が含まれています。 Oracle Solarisインストーラが認識することのできるLinux swapタイプのパーティションを作成してください。

Windowsをお使いであれば、Oracle Solarisブート・ローダーは問題なく認識します。 Linuxをお使いの場合、GRUB構成ファイルのバックアップを作成することを忘れないようにしてください。このファイルのエントリーをOracle Solaris GRUBメニューに追加する必要があるからです。 これらの手順に関する情報はOracle Solaris 11製品のドキュメントを参照してください。

ユーザー

以上の手順でOracle Solaris 11がインストールされました。システムを管理するためにインストール中に作成したユーザーIDにアサインした特権について説明します。

インストール中に、図5に示すようなユーザー・アカウントを作成しました。

図5

図5. Oracle Solarisグラフィカル・インストーラ - ユーザーの設定

インストーラは、rootアカウント、初期ユーザー・アカウントの両方で使用されるパスワードの入力を1つだけ求めます。 ただし、rootパスワードはただちに期限切れになります。rootになろうとすると次のように表示されます。

larry@solaris:~$ su
Password:
su: Password for user 'root' has expired
New Password:
Re-enter new Password:
su: password successfully changed for root

管理者権限を必要とするGUIツールでも、最初の起動時にrootパスワードの入力を求められます。ルート・ユーザーが期限切れであることが表示され、新しいパスワードの入力が必要であることが図6のように示されます。

図6

図6. 新しいrootパスワードの入力を求めるプロンプト

rootの役割

/etc/passwdファイルを見ると、rootが定義されていることがわかります。

larry@solaris:~$ cat /etc/passwd 
root:x:0:0:Super-User:/root:/usr/bin/bash
daemon:x:1:1::/:
bin:x:2:2::/usr/bin:
sys:x:3:3::/:
adm:x:4:4:Admin:/var/adm:
lp:x:71:8:Line Printer Admin:/:
...

ただし、rootとしてログインすることは苛立たしく感じるかもしれません。 セキュリティの理由から、Oracle Solaris 11ではrootを従来のユーザー・アカウントとして定義していないためです。 /etc/user_attrファイルを見ると、リスト1に示すように、rootが役割として定義されていることがわかります。

larry@solaris:~$ cat /etc/user_attr
#
# The system provided entries are stored in different files
# under "/etc/user_attr.d".  They should not be copied to this file.
#
# Only local changes should be stored in this file.
# This line should be kept in this file or it will be overwritten.
#
root::::type=role
larry::::lock_after_retries=no;profiles=System Administrator;roles=root

リスト1. rootが役割として定義されていることの確認

インストーラで作成されたユーザーIDも、デフォルトでroot役割が割当てられていることが確認できます。 このため、rootとしてログインできなくても、root役割に切り替えることが可能で、その場合rootのパスワードの入力が求められます。

注: suを使用する場合、デフォルト・ユーザー名はrootで、先の例でデフォルト・パスワードを変更したような要求はされません。

larry@solaris:~$ su root
Password:
root@solaris:~#

sudoコマンド

root役割の割当てに加えて、インストール時に作成されたユーザーは/etc/sudoersファイルに追加されます。 /etc/sudoersは十分実証済みのファイルであり、特定のユーザーに何をする権限を与えるかといった規則をきめ細かく定義することが可能です。 インストール時に作成されたユーザーの場合、rootと同様に、すべてを実行することが許されています。 インストール時に作成されたユーザーのエントリーは次のようになっています。

larry ALL=(ALL) ALL

上記の例では、ユーザーlarryはすべてのユーザーとして、どのホスト上でもすべてのコマンドを実行することが可能です。 ユーザーの権限をさらに詳細に調整する方法については、sudoersのマニュアル・ページを参照してください。

このように、理論的には権限を必要とするオペレーションを実行するためにroot役割に切り替える必要はありません。たとえばファイルをファイル・システムのルートに書き込むとします。

larry@solaris:~$ touch /file1
touch: cannot touch `/file1': Permission denied

ただし、sudoを前に付けて同じコマンドを実行すると、オペレーションを完了するために必要な正しい権限が与えられます。

larry@solaris:~$ sudo touch /file1
Password:

sudoに必要なパスワードはrootパスワードではなく、ご自身のユーザー・アカウント・パスワードであることに注意してください。

つまり、Oracle Solaris 11のデフォルト・インストールで、すぐに使えるようにすべてが設定されているということです。 インストール時に作成されたユーザーIDで、システムを完全に管理することが可能です。 正しい権限を持つことで、システム・サービスの管理といったシステム管理を適切に実行することができます。次の項で、システム・サービスの管理について説明します。

サービス管理機能(SMF)

Oracle Solaris 11では、サービス管理機能(SMF)を使ってシステム・サービスを管理します。 GUIを利用できますが、サービス管理にはコマンドラインのコマンドを使用する方がより一般的でパワフルな方法です。サービスの状態をレポートするsvcsコマンド、サービス・インスタンスを操作するsvcadmコマンドなどがあります。 たとえば、リスト2に示すようにsvcsを実行して現在実行中のサービスの一覧を取得することができます。

larry@solaris:~$ svcs |more
STATE          STIME    FMRI
legacy_run     19:20:46 lrc:/etc/rc2_d/S47pppd
legacy_run     19:20:46 lrc:/etc/rc2_d/S89PRESERVE
disabled       19:21:28 svc:/system/ocm:default
online         19:12:50 svc:/system/early-manifest-import:default
online         19:12:50 svc:/system/svc/restarter:default
online         19:13:00 svc:/network/tcp/congestion-control:vegas
online         19:13:01 svc:/network/sctp/congestion-control:cubic
online         19:13:01 svc:/network/sctp/congestion-control:newreno
online         19:13:01 svc:/network/sctp/congestion-control:vegas
...
online         19:25:48 svc:/network/smtp:sendmail
online         19:25:51 svc:/network/location:default
online         19:25:52 svc:/system/filesystem/autofs:default
online         19:25:53 svc:/system/name-service/cache:default

リスト2. 現在実行中のサービスの一覧を取得する

SMFには、起動スクリプトを通じたUNIXサービスを使用する古い手法に比べるとたくさんの利点があります。 おもな利点は、マニフェスト・ファイル内の各サービスに関するメタデータの仕様を持つことです。 これにより、サービス間の依存関係を指定することが可能になり、さらに非依存サービスを並列で開始することができるようになるため、システムのブート時間を短縮することができます。 また、サービスが失敗しても、それぞれの関連性に基づく正しい順序で再始動できます。 たとえば、sendmailサービスに-lオプションを使用すると、リスト3に示すように利用可能な情報がすべて表示されます。

larry@solaris:~$ svcs -l sendmail
fmri         svc:/network/smtp:sendmail
name         sendmail SMTP mail transfer agent
enabled      true
state        online
next_state   none
state_time   September 11, 2012 07:25:48 PM UTC
logfile      /var/svc/log/network-smtp:sendmail.log
restarter    svc:/system/svc/restarter:default
contract_id  289
manifest     /lib/svc/manifest/network/smtp-sendmail.xml
manifest     /etc/svc/profile/generic.xml
dependency   require_all/refresh file://localhost/etc/mail/sendmail.cf (online)
dependency   require_all/refresh file://localhost/etc/nsswitch.conf (online)
dependency   optional_all/none svc:/system/filesystem/autofs (online)
dependency   require_all/none svc:/system/filesystem/local (online)
dependency   require_all/none svc:/network/service (online)
dependency   require_all/refresh svc:/milestone/name-services (online)
dependency   optional_all/refresh svc:/system/identity:domain (online)
dependency   optional_all/none svc:/system/system-log (online)

リスト3. サービスに関する情報の表示

リスト3の下の行で、sendmailが依存するサービスを確認することができます。 sendmailが依存するサービスの1つが何らかの理由で開始しなかった場合、sendmailは起動を試みることすらありません。

また、svcadmコマンドを使用して、サービスを使用不可にしたり、使用可能にしたり、再起動するといったことが簡単に設定できます。 たとえば、このコマンドでsendmailサービスを使用不可にするには次のように入力します。

larry@solaris:~$ sudo svcadm disable sendmail

larry@solaris:~$ svcs -x sendmail
svc:/network/smtp:sendmail (sendmail SMTP mail transfer agent)
 State: disabled since September 11, 2012 08:32:29 PM UTC
Reason: Disabled by an administrator.
   See: http://support.oracle.com/msg/SMF-8000-05
   See: sendmail(1M)
   See: /var/svc/log/network-smtp:sendmail.log
Impact: This service is not running.

-xオプションをsvcsコマンドに使用すると、サービスの状態を説明する内容が表示されます。

larry@solaris:~$ svcs -x sendmail
svc:/network/smtp:sendmail (sendmail SMTP mail transfer agent)
 State: disabled since October  5, 2011 01:52:39 AM NZDT
Reason: Disabled by an administrator.
   See: http://sun.com/msg/SMF-8000-05
   See: sendmail(1M)
   See: /var/svc/log/network-smtp:sendmail.log
Impact: This service is not running.

この出力はまた、サービスの状態についての詳細情報のリンク(http://sun.com/msg/SMF-8000-05)と、サービス・ログ・ファイル(/var/svc/log/network-smtp:sendmail.log)も提供します。これらはどちらも、サービスが失敗した場合の原因を追跡する際に非常に有効です。

同様に、デスクトップ・パネルの管理メニューからSMFサービスのグラフィカル・インタフェースを使用することもできます。 図7に示すとおり、このインタフェースでは、システム・サービスの使用不可、リフレッシュ、再起動や、各サービス・インスタンスのログの参照など、コマンドラインと同じ機能をいくつか実行することができます。

図7

図7. Oracle Solaris SMFサービス・インスペクタ

Oracle Solaris 11は、デフォルトでセキュアに設計されています。 つまり、必要のないすべてのネットワーク・サービスは使用不可能にしてあるか、またはローカル・システム自身からの接続は待機のみに設定されるため、ネットワークからの攻撃に対する危険性を減らすことができます。 実際、リモート・ログインが許可されているSSHサービスのみが有効になっています。

ネットワークの管理

管理する必要のある最初のサービスの1つがネットワークです。 Oracle Solaris 11では、システムにネットワーク構成を適用するためにNCP(Network Configuration Profiles)を使用します。 Live Mediaを使用している場合、デフォルトでは、システムはDHCPを使用してネットワーク接続を自動的に試みるAutomatic NCPを使用します。 ケーブル接続されたネットワークが利用可能な場合、常にこの接続が実行され、利用可能でない場合は、ワイヤレス・ネットワークへの接続を試みます。

まず、デスクトップ上のパネルのトップにある、ネットワークの状態アイコンについて説明します。 このアイコンは、図8に示すように、ネットワーク接続がケーブルかワイヤレスか、あるいはオフラインかを表示します。

図8a:Oracle Solarisのネットワークの状態:ケーブル接続 図8b:Oracle Solarisのネットワークの状態:ワイヤレス接続 図8c:Oracle Solarisのネットワークの状態:接続なし
図8. ネットワークの状態アイコンの3つの状態

アイコンをクリックすると、「ネットワーク設定」ダイアログ・ボックスが図9のように表示されます。

図9

図9. Oracle Solarisの「ネットワーク設定」ダイアログ・ボックス

「ネットワーク設定」ダイアログ・ボックスには、IPバージョン4とバージョン6アドレスの両方が表示され、構成されたネットワーク・リンク(この場合ケーブル接続インタフェース)のネットワーク速度も表示されます。 Oracle Solaris 11のすべてのネットワーク・インタフェースは、抽象化された別名識別子(vanity identifiers)が割り当てられていて、このケースではnet0ですが、その下で使用されているネットワーク・ドライバは反映されていません。 これは従来のリリースと比較してOracle Solaris 11で新しくなった点です。

ラップトップ上にインストールして、ワイヤレス・ネットワーク接続が使用可能な場合、状態アイコンを右クリックすると、図10のように利用できるワイヤレス・ネットワークのリストを表示することができます。

図10

図10. Oracle Solarisのワイヤレス・ネットワーク・オプション

ネットワーク構成はSMFサービスのsvc:/network/physical:defaultを使用して管理され、リスト4に示すように、ほかのSMFサービスと同様にコマンドラインからもサービスの状態を表示することができます。

larry@solaris:~$ svcs -l network/physical:default
fmri         svc:/network/physical:default
name         physical network interface configuration
enabled      true
state        online
next_state   none
state_time   September 11, 2012 07:17:34 PM UTC
logfile      /var/svc/log/network-physical:default.log
restarter    svc:/system/svc/restarter:default
contract_id  69
manifest     /lib/svc/manifest/milestone/config.xml
manifest     /lib/svc/manifest/network/dlmgmt.xml
manifest     /lib/svc/manifest/network/network-physical.xml
manifest     /lib/svc/manifest/network/network-ipmp.xml
manifest     /lib/svc/manifest/network/network-install.xml
manifest     /lib/svc/manifest/network/network-ipmgmt.xml
manifest     /lib/svc/manifest/system/name-service/upgrade.xml
manifest     /etc/svc/profile/site/sc_profile.xml
dependency   optional_all/none svc:/milestone/config (online)
dependency   require_all/none svc:/network/datalink-management:default (online)
dependency   require_all/none svc:/network/loopback (online)
dependency   require_all/none svc:/network/physical:upgrade (online)
dependency   require_all/none svc:/network/location:upgrade (online)
dependency   optional_all/none svc:/network/ipmp (online)
dependency   optional_all/none svc:/network/install (disabled)
dependency   require_all/none svc:/network/ip-interface-management:default (online)
dependency   require_all/none svc:/system/name-service/upgrade (online)
dependency   require_all/none svc:/network/netcfg:default (online)
dependency   optional_all/none svc:/system/manifest-import (online)

リスト4. SMFサービスの状態を表示する

ネットワークを手動で管理したい場合は、次のようにネットワーク構成プロファイルのDefaultFixedを使用可能にする必要があります。

larry@solaris:~$ sudo netadm enable -p ncp DefaultFixed
Password:
Enabling ncp 'DefaultFixed'

これにより、ネットワーク構成を完全に手動で制御できるようになり、管理コマンドであるdladmipadmを使用して、リスト5に示すようにネットワークを構成することができるようになります。

larry@solaris:~$ dladm show-phys
LINK              MEDIA                STATE      SPEED  DUPLEX    DEVICE
net0              Ethernet             unknown    1000   full      e1000g0
larry@solaris:~$ ipadm show-if
IFNAME     CLASS    STATE    ACTIVE OVER
lo0        loopback ok       yes    --
larry@solaris:~$ sudo ipadm create-ip net0
larry@solaris:~$ ipadm show-if
IFNAME     CLASS    STATE    ACTIVE OVER
lo0        loopback ok       yes    --
net0       ip       down     no     --
larry@solaris:~$ sudo ipadm create-addr -T static -a 10.0.2.18/24 net0/v4static
larry@solaris:~$ sudo ipadm show-if
IFNAME     CLASS    STATE    ACTIVE OVER
lo0        loopback ok       yes    --
net0       ip       ok       yes    --
larry@solaris:~$ ipadm show-addr
ADDROBJ        TYPE     STATE    ADDR
lo0/v4         static   ok       127.0.0.1/8
net0/v4static  static   ok       10.0.2.18/24
lo0/v6         static   ok       ::1/128

リスト5. 手動によるネットワークの管理

手動によるネットワーク構成、ネットワーク構成プロファイル、あるいはネーミング・サービスの管理についてはこの記事では解説していません。 手動によるネットワーク構成についての詳細は、Oracle Solaris 11製品のドキュメントを参照してください。

Oracle Solarisが格納されている場所

Oracle Solaris 11が格納されている場所について説明します。 Windows OSに親しんでいる人にとっては、ルート・ディレクトリ(/)の概念を理解することはさほど難しくないと思います。 ドライブの上位レベル・ディレクトリ(C:\\)のようなものです。 Oracle Solarisにおけるおもな違いは、/で始まる単一のディレクトリ階層が提供されているということです。 ファイル名を指定する際に、Windowsのように、C:\\D:\\といったデバイスを指定する必要はありません。

Oracle Solarisはデフォルトのルート・ファイル・システムとしてZFSを使用します。 ZFSはハイレベルなデータの完全性を提供するとともに、データのバックアップやデータの暗号化といった管理者がさまざまなタスクを実行するためのたくさんのユーティリティが含まれています。

表1に、Oracle Solarisで実行可能なさまざまなコマンドが保存されているいくつかのディレクトリを一覧します。 これらの場所は、環境変数$PATHの値として指定されます。

表1. 格納場所と内容
格納場所 内容 デフォルト・パス
/usr/bin すべてのユーザー向けの必須ではないコマンド・バイナリ(シングル・ユーザー・モードでは必要なし)。 ある
/usr/gnu/bin よく使われるコマンドのGNUバージョン。 競合がなければ、コマンドは/usr/binに含まれています。 Linuxユーザーは/usr/gnu/bin$PATHの先頭に設定しておくことで、より使い慣れたコマンドを優先的に使用するようにできます。 ない
/usr/sbin さまざまなネットワーク・サービスのデーモンのような、必須ではないシステム・バイナリ。 ある

表2にOracle Solaris 11のその他のファイルの格納場所を示します。

表2. Oracle Solaris 11のその他のファイルの格納場所と内容
格納場所 内容
/opt オプションのアプリケーション・ソフトウェア・パッケージ。
/usr/local このホストに固有の、ローカル・データを保存するための第3の階層。 /usr/local/bin//usr/local/lib//usr/local/share/のようにサブディレクトリがその下に続くのが一般的です。
/etc 静的なシステム構成データ。
/var ログ、スプール・ファイル、一時的な電子メール・ファイルなど、システムの通常運用中に内容が絶えず変化することが予測される変数ファイル。
/home ユーザーのホーム・ディレクトリ。保存されたファイルや個人設定などが含まれます。

ホーム・ディレクトリは、実際には/export/homeから自動的にマウントされます。 詳細については、ホーム・ディレクトリの自動マウント・ブログを参照してください。

Image Packaging System(IPS)

Oracle Solaris 11はCD 1枚に収まるようにデザインされているため、追加のソフトウェアをインストールする必要が出てくるかもしれません。 Oracle Solaris 10と比較すると、Oracle Solaris 11では新しくIPS(Image Packaging System)が導入されているところに違いがあります。 IPSのおもな目的の1つは、アプリケーション・ストアのような、ネットワーク・リポジトリベースの配信メカニズムを提供することです。 Oracle Solarisには事前構成されたリポジトリが1つ提供されますが、簡単に追加することができます。 GUIかコマンドラインを使用したクライアントであるかにかかわらず、デフォルト・インストールに含まれないその他の多くのソフトウェア・コンポーネントを非常に簡単にインストールすることができます。

IPSの重要な機能として、ソフトウェアの依存性の自動チェックがあります。 インストールするパッケージを選択すると、IPSはそのほかに必要になるすべてのパッケージを確認して、それらが同時にインストールされるようにします。 共通のソフトウェア選択としてインストールできるグループ・パッケージも多数あります。たとえばデスクトップ環境やWeb AMPスタックなどです。

パッケージの検索とインストール

パッケージを管理するには、図11に示すようにPackage Manager GUI(「システム」>「管理」メニューから選択可能)を使用するか、コマンドラインから実行できます。

図11

図11. Oracle Solaris Package Manager

コマンドラインから実行する場合、主コマンドはpkgです。 pkgコマンドは、listsearchinfoinstallなど、常にサブコマンドとともに実行します。

たとえば、現在システムにインストールされているパッケージを一覧したい場合はpkg listコマンドを使用すると、リスト6に示すようにIFOの最初の列にiと表示されます。 パッケージが凍結されていると2番目の列にfが表示され、パッケージの名前が変更された場合はr、廃止された場合はoが3番目の列に表示されます。

larry@solaris:~$ pkg list
NAME (PUBLISHER)                                  VERSION                    IFO
archiver/gnu-tar                                  1.26-0.175.1.0.0.24.0      i--
audio/audio-utilities                             0.5.11-0.175.1.0.0.24.0    i--
codec/flac                                        1.2.1-0.175.0.0.0.0.0      i--
codec/libtheora                                   1.1.1-0.175.1.0.0.15.0     i--
codec/ogg-vorbis                                  2.30.0-0.175.1.0.0.12.0    i--
codec/speex                                       1.2-0.175.1.0.0.15.0       i--
communication/im/pidgin                           2.10.5-0.175.1.0.0.24.0    i--
compress/bzip2                                    1.0.6-0.175.1.0.0.24.0     i--
compress/gzip                                     1.4-0.175.1.0.0.24.0       i--
compress/p7zip                                    9.20.1-0.175.1.0.0.24.0    i--
compress/unzip                                    6.0-0.175.1.0.0.24.0       i--
compress/xz                                       5.0.1-0.175.1.0.0.24.0     i--
...
x11/xkill                                         1.0.3-0.175.1.0.0.24.1317  i--
x11/xlock                                         0.5.11-0.175.1.0.0.24.1317 i--
x11/xmag                                          1.0.4-0.175.1.0.0.24.1317  i--
x11/xvidtune                                      1.0.2-0.175.1.0.0.24.1317  i--

リスト6. インストールされているパッケージの確認

パッケージを検索するにはsearchサブコマンドを使用します。 たとえばグラフィカル・ネットワーク・プロトコル・アナライザwiresharkというパッケージを検索する場合、pkg searchと入力します。 -pフラグによって、結果をパッケージ名のみに限定することができます。指定しないと、出力される一覧には検索文字列を含むパッケージ内のすべての項目、たとえばファイル、ディレクトリ、リンクなども含まれてしまいます。

larry@solaris:~$ pkg search -p wireshark
PACKAGE                                                           PUBLISHER
pkg:/diagnostic/wireshark/wireshark-common@1.8.2-0.175.1.0.0.24.0 solaris
pkg:/diagnostic/wireshark@1.8.2-0.175.1.0.0.24.0                  solaris

次に、pkg infoを使って特定のパッケージに関する情報を表示します。 ローカル・ファイル・システムにインストールされていないパッケージの問合せをする場合は、リスト7に示すとおり-r(リモート)フラグが必要です。

larry@solaris:~$ pkg info -r wireshark
          Name: diagnostic/wireshark
       Summary: Graphical network protocol analyzer
      Category: Applications/Internet
         State: Not installed
     Publisher: solaris
       Version: 1.8.2
 Build Release: 5.11
        Branch: 0.175.1.0.0.24.0
Packaging Date: September  4, 2012 05:18:59 PM
          Size: 3.33 MB
          FMRI: pkg://solaris/diagnostic/wireshark@1.8.2,5.11-0.175.1.0.0.24.0:20120904T171859Z

リスト7. パッケージの詳細情報を取得する

wiresharkパッケージの内容を確認する場合は、リスト8で示すようにpkg contentsコマンドを使用します。 このコマンドはパッケージの内容がどこにインストールされているか確認したい場合に便利です。

larry@solaris:~$ pkg contents -r wireshark
PATH
etc
etc/security
etc/security/exec_attr.d
etc/security/exec_attr.d/diagnostic:wireshark
usr
usr/sbin
usr/sbin/wireshark
usr/share
usr/share/applications
usr/share/applications/wireshark.desktop
usr/share/man
usr/share/man/man1
usr/share/man/man1/wireshark.1
usr/share/pixmaps
usr/share/pixmaps/wireshark.png

リスト8. パッケージの内容を表示する

パッケージの依存関係を確かめるためには、リスト9に示すような少し複雑なコマンドを実行する必要があります。

larry@solaris:~$ pkg contents -r -o fmri -t depend wireshark
FMRI
pkg:/diagnostic/wireshark/wireshark-common@1.8.2-0.175.1.0.0.24.0
pkg:/library/desktop/cairo@1.8.10-0.175.0.0.0.0.0
pkg:/library/desktop/gtk2@2.20.1-0.175.1.0.0.19.0
pkg:/library/desktop/pango@1.28.3-0.175.0.0.0.0.0
pkg:/library/glib2@2.28.6-0.175.1.0.0.19.0
pkg:/library/zlib@1.2.3-0.175.1.0.0.23.0
pkg:/system/library/libpcap@1.1.1-0.175.1.0.0.23.0
pkg:/system/library/math@0.5.11-0.175.1.0.0.19.0
pkg:/system/library@0.5.11-0.175.1.0.0.23.0
pkg:/x11/library/libx11@1.5.0-0.175.1.0.0.23.1314
pkg:/x11/library/libxcursor@1.1.13-0.175.1.0.0.23.1314

リスト9. パッケージの依存関係を確認する

このケースでは、パッケージFMRI(Fault Management Resource Indicator)を出力しています。これは、特定のバージョンのパッケージを描写する正式な方法です。さらにdependというタイプのパッケージの依存関係を探すために-tオプションを使用しています。

これは、IPSがwiresharkが依存するパッケージを特定し、まだインストールされていない場合はインストールすることを意味します。

最後に、パッケージをインストールする準備ができたら、リスト10に示すようにpkg installコマンドを使用します。

larry@solaris:~$ sudo pkg install wireshark
           Packages to install:  3
       Create boot environment: No
Create backup boot environment: No
            Services to change:  2

DOWNLOAD                                PKGS         FILES    XFER (MB)   SPEED
Completed                                3/3       294/294    17.5/17.5  228k/s

PHASE                                          ITEMS
Installing new actions                       389/389
Updating package state database                 Done
Updating image state                            Done
Creating fast lookup database                   Done

リスト10. パッケージのインストール

注: システムにパッケージをインストールできるのは承認されたユーザーだけです。そのためpkg installコマンドの前にsudoを使用する必要があります。 詳細はユーザーの項を参照してください。

パッケージ・リポジトリ

Oracle Solaris 11は、単一のソフトウェア・リポジトリ(http://pkg.oracle.com/solaris/release)で事前構成されています。 オラクルはソフトウェア・リポジトリ全体をダウンロード可能にしているため、ネットワークの利用に厳しい制限があるような環境の内部ネットワークでのセットアップが可能であり、また、単にパフォーマンスを改善するためにローカルでソフトウェア・パッケージを持っていたいという場合にも有効です。 さらに、追加のソフトウェア・リポジトリを構成することも可能です。 これまでは、サード・パーティのソフトウェア・プロバイダが、メインのOracle Solarisリポジトリに追加する形で独自のリポジトリを作成し、配布することが期待されてきました。

pkg.oracle.comのデフォルトのreleaseリポジトリのほかにも、オラクルはサポート契約を購入したお客様向けにsupportリポジトリを提供しています。 supportリポジトリは平均して月に一度の割合で更新され、Oracle Solaris 11のバグ修正やセキュリティ・パッチなどが反映されます。 サポートに関する詳細については、Oracle Premier Support for Operating Systemsを参照してください。

ワンクリック・インストール

リポジトリの内容を参照する際に、インストール・リンクに気が付かれたかもしれません。 図12に、Oracle Solaris 11で利用可能なすべてのパッケージを一覧したパッケージ・カタログを示します。

図12

図12. Webブラウザで参照するOracle Solarisリポジトリの一覧

インストール・リンクをクリックすると、Package Managerが起動してインストールを開始します。 システム上にリポジトリが構成されていない場合は、パッケージがインストールされる前に必要な構成が追加されます。 誰でもパッケージの拡張が可能になる便利な機能です。 たとえば、このリンクからwiresharkをインストールすることができます(注:Oracle Solarisシステムからこの内容を参照していなければ、お使いのWebブラウザではこのリンクの処理はできません)。

ブート環境

ブート環境(BE)は、Oracle Solarisのオペレーションのために必要不可欠なファイルとファイル・システムのコピーです。 インストール終了後、単一のブート環境だけが存在しますが、手動で作成するかPackage Managerによって自動的に作成されるかの違いはありますが、多くの場合その後で新しいブート環境が作成されます。

ブート環境は、基本的に、現在のブート環境に何か不具合が起こった際にOracle Solaris 11の以前のスナップショットをロールバックできるようにします。 ブート環境は通常ルート・データセットによって構成されますが、オプションで別のデータセットが含まれている場合もあります。 データセットには、/exportのようなマルチ・ブート環境に渡って共有されているものもあります。 図13に、Package Managerによって表示される「ブート環境の管理」ダイアログ・ボックスを示します。

図13

図13. 「ブート環境の管理」ダイアログ・ボックス

システム構成ファイルを変更するといったようなシステムに大きな影響を与える作業をする前に、不足の事態に備えてシステムを保護できるように、新しいブート環境を作成しておくことをお勧めします。 新しいブート環境はbeadmユーティリティで作成することができます。 be-prior-to-changesという名前の新しいブート環境を作成している例を以下に示します。

larry@solaris:~$ sudo beadm create be-prior-to-changes

このシンプルなコマンドの使い方を覚えておくだけで、変更を復旧するために数時間のダウン時間を費やすことなく、直前のブート環境に素早く戻るために数秒かかるだけで済ませることができるという大きな違いが出てきます。 管理者は、Oracle Solaris 11システムを管理するための最良の方法の1つとしてブート環境を利用することをお勧めします。

Update Manager

IPSパッケージへの更新が利用可能な場合、Oracle Solarisは、図14に示すようなトップ・パネルのアイコンによって通知します。

図14

図14. Oracle Solaris Update Managerの通知アイコン

アイコンをクリックするとUpdate Managerが起動して新しいブート環境を作成し、図15に示すように更新をインストールします。 更新されたシステムは次回の起動時に有効になります。 システムの更新中に予期しない問題が発生した場合は、システムを復旧させるために古いブート環境に安全に戻ることができます。

図15

図15. Oracle Solaris Update Manager

Solaris旧バージョンのPackage Manager

Oracle Solaris OSは、UNIX System V, Release 4バージョンの一部という意味でSVR4パッケージング・システムという名前を長年にわたって使用してきました。 Oracle Solaris 11はSVR4パッケージのインストールに対応しており、パッケージのインストールや削除に必要となるコマンドも含まれています。 システムには互換性が追加されたため、SVR4パッケージとして宣言されたいずれのパッケージの依存関係にも対応します。

SVR4パッケージをインストールする場合は、パッケージの内容がIPSを使用してインストールされている既存のファイルやディレクトリと矛盾することがないように、コンソールに出力されるどのような警告にも十分な注意を払ってください。 この問題を回避するには、レガシー・アプリケーションも実行できる互換性のある仮想環境であるOracle Solaris 10ゾーンを利用することをお勧めします。

最後に

Oracle Solaris 11への移行は魅力的であると同時に、使い方の違いにフラストレーションを感じることもあるかもしれません。 この記事で紹介した内容が製品を使用する際に必要となる情報を提供し、Oracle Solaris 11への移行がスムーズに行われることを願っています。

システムを稼働し、使用していくうちに、さらにさまざまな疑問がでてくることと思います。 そのような場合は、経験豊かなOracle Solarisコミュニティがいつでもヘルプしてくれます。 ぜひ、OTNディスカッション・フォーラム:Oracle Solaris 11 for SysAdminsに参加してください。 通常、回答は数時間のうちに返信されます。 また、OS上にアプリケーションを展開する際に直面するより一般的な管理タスクについて書かれたOracle Solaris 11 技術資料も参考になります。

Oracle Solaris 11を活用していただけることを期待します。

その他の情報

リビジョン1.1、2011/10/22

Facebookのバナー Twitterのバナー