新しいパッケージ管理

パッケージ管理はpkgコマンドを使うIPS(Image Packaging System)という方式に変わっています。ただし、従来のpkgadd/pkgrm/pkginfoなどのコマンドも残っています。パッケージ名ごとに作られる管理ディレクトリは、従来の/var/sadm/pkgを残したまま、新しく/var/pkg/pkgにも存在します。一部パッケージの統合が行われているようで、たとえば、従来SUNWcsr(Core Solaris Root)とSUNWcsu(Core Solaris Usr)とに分けて管理されていたパッケージが、IPSではまとめてSUNWcs(Core Solaris)というパッケージとして管理されています。

gccを追加インストール

OpenSolarisのCDに含まれていないパッケージは、pkgコマンドを使ってインターネットから追加インストールすることができます。追加パッケージの情報は、こちらのサイトで参照できます。

ここでは、gccをインストールしてみることにします。gccはSUNWgccのパッケージに含まれているため、rootで「pkg install SUNWgcc」とコマンド実行すればOKです。このとき、パッケージの依存関係は自動的に解決され、SUNWhea(/usr/include以下のヘッダファイル)などの依存パッケージも併せてインストールされます。

ただし、gccの場合は、gcc-devというクラスタパッケージが用意されており、「pkg install gcc-dev」と実行すれば、gcc関連だけでなく、GNU makeやgdbなどのツールがまとめてインストールされるため、こちらを利用してもよいでしょう。

なお、gcc関連の実行ファイルは、おもに/usr/sfw/bin以下にインストールされますが、これらは/usr/binまたは/usr/gnu/bin以下から個別にシンボリックリンクされるため、/usr/sfw/binにPATHを通す必要はありません。

viエディタはvim

インストールしたgccを試すため、簡単なC言語のソースをviエディタで入力しようとして気づいたのですが、/usr/bin/viはvimにシンボリックリンクされており、vimが起動されるようになっています。vimはviを改良したエディタですが、uコマンド(undo)の動作が従来のviとは異なっています。しかし、このvimはデフォルトで互換モード(vimの中で「:set compatible」コマンドで指定可能)に設定されており、従来のviのつもりで使っても違和感なく使えます。これまでに、システム設定ファイルの修正のためにvi(vim)を起動しているのに、互換モードのおかげで今まで気づかなかったというわけです。

ただし、このvimは日本語編集に不具合があるようで、LANG=ja_JP.UTF-8の状態でも、日本語を入力すると文字化けしたり、全角文字幅分のカーソル移動が正常にできなかったりして正しく動作しません。これは、ホームディレクトリに.vimrcを作成し、「set encoding=utf-8」と記述すれば解決します。

ところで、/usr/binディレクトリをよく見ると、従来のviのバイナリファイルが、vedit(editとハードリンク)の状態で残っていました。もともとvi、ex、view、veditとeditはすべてがハードリンクされた同一のバイナリファイルで、argv[0]で動作を切替えて動作するコマンドです。

このveditを起動すると、従来のviとして動作します。ただし、あくまでveditのため、初心者向けのオプションが設定された状態になります。veditを、たとえば/tmp/viにシンボリックリンクしてから、コマンド名「/tmp/vi」で起動すると、完全に従来のviが起動します。このviでは日本語編集の不具合はありません。ちなみに、viの中の「:version」コマンドでのバージョン表示は「Version SVR4.0, Solaris 2.5.0」です。なお、従来のviおよびview、exコマンドは/usr/has/bin以下にインストールされています。veditをシンボリックリンクしなくても、「/usr/has/bin/vi」で従来のviが起動します。

/usr/ucbについて

BSD互換コマンドの置き場所である/usr/ucbについては、OpenSolarisの初期インストール状態では、lprなどのわずかなコマンド(/usr/bin以下を指した個別のシンボリックリンク)があるのみで、ほとんど何もインストールされていません。今では/usr/ucbを使う必要はほとんどなくなっていますが、たとえば/usr/ucb/psだけは使いたい(ps -efではなくてps auxと入力したい)という場合もあるでしょう。/usr/ucbのコマンド群は、「pkg install SUNWscp」でインストールできます。