2008年2月27日水曜日

[Linux]Smartがいい感じ

Linuxは各ディストリビューションによってそれぞれのパッケージ管理システムを持っていることが多いです。RedHat/FedoraなどはYum、VineやDebian系はAPT、SUSEはYaSTといった具合ですね。これらパッケージ管理システムは微妙にコマンドが異なっていたりしてディストリビューションごとに使い方を調べる必要がありました。
が、それぞれの管理システムが実行できる内容はそれほど大差ないということで、複数のパッケージ管理システムの差異を吸収するアプリが開発されました。それがSmartです。HDDの情報通知を行うS.M.A.R.Tと名前が似ている(同じ?)であるため、検索する際にはちょっと注意が必要であります^^;
このSmart、なかなか優秀でございまして。パッケージのインストールやダウンロード、検索や削除といったコマンドが用意されており、smartが裏で勝手に自分の利用するディストリビューションのパッケージ管理システムを叩くというありそうでなかったパッケージです。
主だった管理システムには対応していますので、smartの扱いを覚えたら各パッケージ管理システムの主要な操作は可能となります。また、CLIでの操作が基本ですので、smartを叩くスクリプトを書けば、自動的に幅広いディストリビューションに対応したことになります。ステキ!
使った感じですが、yumより使い勝手がいいです。yumのパッケージ検索は随分時間がかかるんですが、smartで行うとキャッシュを更新しないためか高速です。yumだと問答無用でキャッシュを更新するため、確実に最新の情報ではありますが最近追加されたとか言うようなパッケージでもない限りは無駄になりがちです。
smartでキャッシュを更新しないで検索ができると言うことは、明示的にキャッシュを更新しないで検索ができるということなんでしょうか・・・。謎です。
また、パッケージの更新についてもyumより高速な気がしました。と言いますのも、yumではパッケージのDLの際は単一ダウンロードなのですが、smartでは複数ダウンロードでした。細々としたパッケージをDLする場合は複数一挙にDLする方が速いので嬉しいですね。大きなパッケージになるとうちのようなADSLでは時間がかかるため、単一で一挙にDLする方がいいかなと感じますが。
唯一面倒だと感じたのはチャンネルの追加ですね。こればっかりはなかなか自動化しにくいのかもしれません。
チャンネルというのはパッケージ管理システムのリポジトリのことで、これの追加は手動で行う必要がありました。欲を言えば、既にインストールされているリポジトリは自動で取り込んでほしかったな。
初回起動時に一応システム標準のリポジトリはチャンネルとして登録されました(Fedoraの場合)。ただ、fast-mirrorのようなyumの拡張は基本的に無視されるらしく、日本のミラーは自分で追加する必要がありました。
ここまでsmartを褒めるような文章ばかり書いてきましたが、実際に利用するのは併用という形になると思います。なんだかんだ言ってyumに随分慣れてしまいましたからね。不慣れな人(大学の友人)からすると、呪文にしか見えないと言われてしまいましたが^^;
ただ、今後はsmartで管理することが増えてきそうです。パッケージ管理システムに限らず、システムの根幹となる部分はどんなディストリビューションであっても一元的に扱えるようにする方向で進んでいますしね(ディストリビューション名の取得方法など)。
特に揃えて欲しいのはディレクトリ構成ですね。ディストリビューションによって微妙にぶれがあるので。特に64bitで顕著のようです。/usr/libというパスは、Fedoraの場合は32bitのライブラリを格納するんですが、Ubuntuなんかは64bitの場合は64bit用のライブラリを置くらしいです。32bitは/usr/lib32だそうで。ちなみにFedoraは/usr/lib64が64bitのライブラリ置き場です。これくらいは揃えてほしかった。
まぁそのうち揃ってくるとは思うんですけれどね。そいつがいつになるかは知れませんが、気長に待つといたしましょう^^