Smart:システムをスマートにアップデートする

 各種Linuxディストリビューションには共通点が多い。しかし、ソフトウェアのインストールとアップデートのためのツールはバラバラだ。Gentoo LinuxはPortage、SUSEはYaST、Red HatとFedoraはyum、LinspireはCNRといった具合。おまけにパッケージの形式もさまざまだ。RPM、Debian、ソースの他、聞いたこともないようなものまでいろいろある。Smart Package Managerは、そうした多様なツールとパッケージ・タイプに代わって、すべての主要ディストリビューションに対応するインストールとアップデートのためのツールだ。

 openSUSEユーザーとして、筆者は、YaST、Zen、zypper、apt-get、Synapticを使ってきたが、最終的にSmartに落ち着いた。今では、Linuxをインストールしたりアップデートしたりすると、まず、Smartをインストールし、それ以外のツールをすべて削除することにしている。

 Smartのバージョンは、現在、0.52。General Public License(GPL)で配布されている。

Smartはスマート

 Smartという名称は「依存性の泥沼」問題を解決するアルゴリズムから来ている。あるパッケージをインストールしようと思ったら、そのパッケージは別のパッケージを必要とし、その別のパッケージはまた別のパッケージを必要とし……。このような依存性を確かめながらインストールしようとすれば依存性を辿るだけでも厖大な時間が必要になる。Smartはこの問題を自動的に解決してくれるのだ。しかも、システムの変更が最も少ない方法を探す。たとえば、パッケージのアップグレードでは、システムにインストールされている種々のパッケージを確認し、旧版の方が適切であればその版をインストールする。

smart_thumb.png
Smart Package Manger

 Smartはミラーもサポートしているが、この機能も柔軟だ。ミラーというのは、オリジナル・ノードと同じコンテンツを持っているインターネット上のノードのことだ。ミラーが複数ある場合、Smartは過去のダウンロード履歴を参照し、最速かつエラーや問題が最も少なかったミラーを選ぶ。複数のダウンロードを並列実行したり、1つのサイトに複数の接続を確立して利用したりすることができる。タイムスタンプの確認、ダウンロードの中断と再開、ファイルのキャッシュもサポート。FTP、FTPS、HTTP、HTTPS、SCP、Telnet、LDAPなど、通常のプロトコルにはすべて対応している。

使い方

 Smartは多様な利用者を想定し、複数のインタフェースを備えている。すなわち、コマンドライン・インタフェースとシェル・インタフェース(複数の操作を行うのに便利)とPythonベースのグラフィカル・インタフェースの3つだ。最初に使うインタフェースは経験に応じて異なるだろうが、最終的にはシェルに行き着くに違いない。KDEの利用者なら、ksmarttrayアプレットをインストールして利用可能なアップデートを知ることもできる。

 Smartのインストールで最も簡単なのは、各ディストリビューションの標準リポジトリーとツールを使う方法だ。たとえば、openSUSEの場合、Smartはsuser-guruリポジトリーに登録されているのでYaSTでインストールできる。登録されていなかったら、SmartのWebサイトで該当するディストリビューション用のダウンロード・ファイルを探して、これを利用する。それもなかったら、同サイトにあるソースコードをダウンロードし、自分でmakeしインストールする。

チャネル

 Smartのインストールが終われば、そのほかのアプリケーションはSmartを使ってインストールできる。Smartではソフトウェア・リポジトリーのことをチャネルと呼んでおり、利用可能なチャネルはコマンド「smart channel --help」で確認できる。次に示すのはその一例(括弧内は該当する形式を使うディストリビューションの例)。

apt-deb APT-DEBリポジトリー
apt-rpm APT-RPMリポジトリー
deb-dir DEBリポジトリー(当然Debian、ほかにUbuntuも)
red-carpet Red Carpetチャンネル
rpm-dir RPMディレクトリー(Fedora)
rpm-hdl RPMヘッダー・リスト
rpm-md RPMメタデータ
slack-site Slackwareリポジトリー(当然Slackware)
urpmi urpmiリポジトリー(Mandriva)
yast2 YaSTリポジトリー(openSUSE)

 チャネルを変更する場合は、グラフィカル・インタフェースでは次のようにする。メニューからEdit→Channelsを選択すると、ウィンドウが現れ、設定済みのチャネルが表示される。このウィンドウでチャネルの追加・削除・変更を行う。追加にはメニューからNew→Provide Channel→Informationと選択するのが最短だ。ここでチャネル・タイプを選び、エイリアス(短い名前)と長い名前と優先度とリポジトリーのURLを指定する。Manual Updatesは、そのチャネルでは自動ではなく手作業でアップデートすることを指定する。Disabledはそのチャンネルの利用の可否、RemovableはそのリポジトリーがCDやDVDなど取り外しのできるメディアかどうかを指定する。

 チャネルを作成し設定が終わったら、左上のUpdateアイコンをクリックする。あるいは、メニューからFile→Update Channelsを選択する。このとき利用可能なチャンネルが一つもないと警告ウィンドウが表示されるので、このウィンドウを閉じて先に進む。シェルを使っている場合は、次のチャネルに進む。

 チャネルの追加などは、コマンドライン・インタフェースでも行うことができる。コマンドは「smart channel --add mychannel type=theChannelType name="theRepositoryName" baseurl=theChannelURL 」や「smart update」など。詳細は、「smart --help」または「man smart」コマンドを参照のこと。

 どのチャネルを使うべきかわからないときは、インターネットで各ディストリビューションの標準リポジトリーを検索する。標準リポジトリーならいずれも使えるからだ。もちろん、異なるディストリビューションのリポジトリーを使うこともできるが、危険を冒す必要はない。

 openSUSE最新版(10.3)の場合は、公式SUSEサイトの情報を確認すること。リポジトリーは急速に増えている。また、旧バージョンの情報もある。

ソフトウェアのインストールとアップグレード

 ソフトウェアのインストールやアップグレードは、きわめて容易だ。インストールするパッケージはグラフィカル・インタフェースで検索するか(虫眼鏡アイコンをクリックし検索条件を入力する)、種類ごとに分類されたプログラムの一覧から探す。パッケージが見つかったら、それをクリックする。ギアアイコンをクリック(あるいは、メニューからFile→Execute Changesを選択)すると、指定したソフトウェアがダウンロードされインストールされる。

 ViewメニューにはアップグレードのオプションとしてHide Non-upgradesとHide Oldがある。両方ともオンにすると、インストール済みのソフトウェアに対する最新アップデートだけが表示されるので便利だ。冒険をしてみたければ、メニューからEdit→Upgrade allを選択する、あるいはいくつかのパッケージを選択してみよう。依存性を考える必要はない。Smartが処理してくれる。処理が本当に止まってしまわない限りお任せだ。止まってしまったら、おそらく、そのまま放置しておくのが最も安全だ。

 GUIバージョンを使いたくない場合は、コマンドラインからコマンド「smart install thePackageYouWant 」または「smart upgrade all」を実行する。もっとよい方法は、コマンド「smart --shell」を実行し、search、install、upgrade、commitといったコマンドを使う方法だ。各コマンドの詳細は、ヘルプを参照のこと。

 パッケージの検索や依存性の解決に手間取る、あるいはアップデートに時間がかかるという人には、Smartをお勧めする。簡単に、コンピューターを最新状態に保ち、新しいソフトウェアをインストールすることができる。各種ディストリビューションに対応しているためパッケージを統一的に扱うことができ、パッケージ・マネージャーごとに使い方を覚える必要がない。

Federico Kerekiは、ウルグアイのシステム・エンジニア。20年以上にわたって、システム開発やコンサルティング業務に携わり、大学で講義を担当してきた。

Linux.com 原文