OSC 2012.Cloud / zypper が遅い…そんなときは?
16日に日本 Microsoft で行われたオープンソースカンファレンス.Cloud に参加してきました。当日は衆議院選挙の日でしたが、OSC 会場ではクラウドインフラ用(ゲスト)OS 総選挙を行いました。
この総選挙ではクラウドインフラ(EC2, Azure, VPS, …)のゲストに導入している OS と、その OS の理想とするサポート年数(パッチ提供期間)を投票してもらいました。使用用途での分類もしました。
「お仕事・本格的」カテゴリでは、事前の予想通り CentOS がトップとなり、RedHat Enterprise を使っている方もいるようです。興味深いのはサポート期間で、
- クラウドでも長ければ長い方が良い
- 仮想化するとハードウェアが壊れても使い続けられるので長くなりそう
- Web フレームワークのサポート期間が3年くらいなので、OSもそれくらいで十分
- ハードウェアの減価償却で5年+α 欲しい
などの意見があり、3年以内と、5年、それ以上に分かれるようです。5年以上となると、やはり Enterprise 版の出番かと思いますが、3年であれば、コミュニティサポートのディストリビューションでも考えても良いのでは無いかと思います。(openSUSE には Evergreen と呼ばれる LTS サポートチームもあります)
個人的な用途や研究開発ではサポート期間は特に関係ないという意見が占めました。openSUSE 表が7票入っていますが、そのうち4票はユーザ会関係者以外により投じられています。また Ubuntu の割合も多くなっています。
最新号の Geeko Magazine では SUSE Studio を使ってカスタマイズ済の openSUSE のディスクイメージを作り、VPS と Azure 上に簡単に仮想マシンを構築する方法を紹介しました。後日公開予定です。
Tips: Zypper が遅い…そんなときは?
zypper コマンドで search や install をするのに、実行後出力が出るまで待たされることは無いでしょうか?
Zypper が裏で何をしているか、何に時間がかかっているかを知るには、-v オプションを使います。
$ zypper -v search ibus
冗長性: 1
オプション以外のプログラム引数: ‘ibus’
ターゲットを初期化しています
取得しています: repomd.xml ………………………………..[完了 (548 B/s)]
取得しています: content ……………………………………………[完了]
取得しています: media ……………………………………………..[完了]
取得しています: content ……………………………………………[完了]
取得しています: media ……………………………………………..[完了]
取得しています: repomd.xml …………………………………………[完了]
取得しています: repomd.xml …………………………………………[完了]
リポジトリのデータを読み込んでいます…
インストール済みのパッケージを読み込んでいます…
強制的な解決: いいえ (N)S | 名前 | 概要 | 種類
–+————————————–+———————+—————–
i | ibus | Linux OS 向けイン-> | パッケージ
遅くなる大きな原因はリポジトリの自動更新です。リポジトリの自動更新を有効にすると、上記の例の場合は、検索をする前に、リポジトリの内容が変更されているかをサーバーに問い合わせ、変更されていればリポジトリの情報を取得し直します。 software.opensuse.org の 1-click インストールで、たくさんのリポジトリを登録している場合、これらのリポジトリを1つ1つ調べに行くので、時間がかかります。
手っ取り早い解決策は自動更新を無効にすることです。zypper コマンドからであれば
$ zypper mr –no-refresh リポジトリ番号or名前
で指定したリポジトリの自動更新を無効にできます。リポジトリ番号は
$ zypper repos
で確認できます。もちろん YaST からも変更できます。
自動更新を無効にすると、適当なタイミングでリポジトリの情報を取得しなければいけません。サーバーなどであれば
$ zypper refresh
を、検索やインストールする前に1回だけ実行して下さい。デスクトップであれば Packagekit が定期的にリポジトリの更新を行っていますので、上記のコマンドはあまり必要ありません。