SPARC/Solaris 探検隊
第15回:Solarisを使ってみよう(後編) ~パッケージのインストールをなかったことに~
2017年4月18日
第14回では、Solarisのパッケージの仕組みとインストールについてお伝えしました。
今回は、少し応用的なお話として「パッケージをインストールしたけれど元の環境に戻したい」といったときに役立つ機能について、ご紹介したいと思います。
インストールだけでなく、元に戻すことも簡単!
アンインストールするだけでは環境が元には戻らないことも!?
パッケージをインストールしたあとで、「パッケージをインストールする前の環境に戻したい」となることはよくあります。これは、
- 誤ったパッケージをインストールしてしまった
- OSやパッケージの設定を最初からやり直したい
などの理由によるものですが、OSの環境を元に戻すことはそう簡単なことではありません。パッケージのアンインストールをしても、一部のファイルは残っていたり、OSの設定が変わっていたりと、環境が完全に元に戻らないこともあります。
OSの環境を完全に元に戻すには、OSそのもののバックアップをあらかじめ取っておく必要がありますが、バックアップを取るのもバックアップからOSを復旧するのもとても手間がかかります。
ですが、SolarisにはOSの環境を簡単に元に戻せる、Boot Environment(以下、BE)と呼ばれる非常に便利な機能があります!
Boot Environment(BE)を使えば、異なるOS環境を保存できる!
BEは、パッケージや様々な設定などが異なるOS環境をまとめて保存しておける非常に画期的な機能です。
異なるOS環境を保存しておくには、通常、環境ごとのバックアップが必要です。BEを使うと、バックアップをせずに短時間でこれを実現できます。
BE(Boot Environment)のイメージ
BEの主な機能は以下の2つです。
- OS環境のコピー
- OS環境の切り替え
BEの操作は非常に簡単なので、少し実行してみたいと思います。
Boot Environment(BE)でOS環境を簡単にコピー
はじめに、OS環境のコピーをしてみましょう。
パッケージの操作はpkgコマンドで実行しますが、BEの操作は「beadm」というコマンドとサブコマンドで実行します。
まず、現在保存されているOS環境の一覧を、beadm listコマンドで表示させます。
# beadm list
BE Flags Mountpoint Space Policy Created
-- ----- ---------- ----- ------ -------
solaris NR / 7.80G static 2016-08-16 13:57
solaris-backup - - 829.14M static 2016-08-16 14:26
コマンド実行結果の一番左の「BE」の列に着目しましょう。現在は、「solaris」と「solaris-backup」という名前のBE(OS環境)が保存されていることが分かります。
次に、「Flags」の列を確認します。このFlagsが、
「N」になっているBEが現在起動中のOS環境、
「R」になっているBEが再起動後に有効になるOS環境を指します。
つまり、現在起動中のBEは「solaris」という名前のBEであり、OSを再起動しても同じ環境が起動するということになります。
では、現在の環境をコピーして新たにBEを作成してみましょう。BEの作成には、beadm createコマンドを実行します。
# beadm create be01
# beadm list
BE Flags Mountpoint Space Policy Created
-- ----- ---------- ----- ------ -------
be01 - - 98.32M static 2016-08-18 14:44
solaris NR / 7.80G static 2016-08-16 13:57
solaris-backup - - 829.14M static 2016-08-16 14:26
これで、現在のOS環境をそのまま保存した、「be01」という名前のBEができました。
このように、BEの作成は非常に簡単で、一瞬で完了します。
Boot Environment(BE)でOS環境を切り替え
次に、OS環境の切り替えを実行してみます。今回のテーマである「インストールしたパッケージを元に戻す」のは、これで実現できます。
OSの環境を戻せることを試すために、あらかじめ適当なパッケージをインストールしてみましょう。
C言語のコンパイラのパッケージgcc-cをインストールしてみます。
# pkg install -v gcc-c
インストールするパッケージ: 8
変更するメディエータ: 1
~(省略)~
# pkg info -r gcc-c
名前: developer/gcc/gcc-c
サマリー: GCC - C Compiler
カテゴリ: Development/C (org.opensolaris.category.2008)
Development/GNU (org.opensolaris.category.2008)
状態: インストール済み
~(省略)~
起動中のOS環境に、パッケージgcc-cをインストールしました。
これから、BEを利用してインストール前の状態に戻してみます。BEによってOS環境を元に戻すには、beadm activateコマンドを使います。
# beadm list
BE Flags Mountpoint Space Policy Created
-- ----- ---------- ----- ------ -------
be01 - - 98.32M static 2016-08-18 14:44
solaris NR / 8.12G static 2016-08-16 13:57
solaris-backup - - 829.14M static 2016-08-16 14:26
# beadm activate be01
# beadm list
BE Flags Mountpoint Space Policy Created
-- ----- ---------- ----- ------ -------
be01 R - 7.90G static 2016-08-18 14:44
solaris N / 264.12M static 2016-08-16 13:57
solaris-backup - - 829.14M static 2016-08-16 14:26
これで、パッケージをインストールする前に取っておいたOS環境「be01」を選択しました。
OS環境の切り替えはOSの再起動後に完了するので、次にOSを再起動させます。
# shutdown -y -g0 -i6
OSを再起動させたら、もう一度BEの状態を確認してみましょう。
# beadm list
BE Flags Mountpoint Space Policy Created
-- ----- ---------- ----- ------ -------
be01 NR / 7.95G static 2016-08-18 14:44
solaris - - 290.06M static 2016-08-16 13:57
solaris-backup - - 829.14M static 2016-08-16 14:26
BE「be01」のFlagsが「NR」になっています。これでBEの切り替えが終わりました。
先ほどインストールしたパッケージの状態を確認してみましょう。
# pkg info -r gcc-c
名前: developer/gcc/gcc-c
サマリー: GCC - C Compiler
カテゴリ: Development/C (org.opensolaris.category.2008)
Development/GNU (org.opensolaris.category.2008)
状態: インストール済みでない
パブリッシャー: solaris
パッケージがインストールされていないことが分かります。これで、OSの環境が元に戻ったことを確認できました。
このように、BEを使ってOS環境を保存しておけば簡単に環境を元に戻すことができます。
今回は、「インストールしたパッケージを元に戻す」という観点でBEの機能を紹介しましたが、BEは以下のようなシーンをはじめ、様々なシーンで活用できるとても便利な機能です。
- パッチ適用など、OSの環境を大幅に変更する際のテスト環境の作成
- OSの操作・設定ミスによって環境の不具合が生じたときの復旧
BEの詳しい機能やオペレーションについて知りたい方は、以下の資料も参考にしてみてください。
応援メッセージはtwitterにて、ハッシュタグ #fjsparc までお願いします。