SDB:製造元を変更する更新

移動先: 案内, 検索


この記事では、製造元を維持する理由とその考え方、そして製造元を維持する動作の変更方法について説明しています。

概要

バージョン: 11.2+この記事は、 openSUSE 11.2 以降に適用可能な内容です。

パッケージマネージャである Zypp では、 製造元を維持する 考え方を採用しています。これにより、新しいバージョンを異なる製造元が提供していても、お使いのシステムの更新時に、勝手にバージョンを変更したりしないようにしています。

製造元を維持する利点:

  • 安定したバージョンのパッケージをインストールしている環境で、更新の際に他のリポジトリが提供する不安定な (実験的な) バージョンに置き換えられてしまう問題を防ぐことができます。
  • 2 つ (もしくはそれ以上) のリポジトリで同じパッケージを提供している場合、更新のたびに製造元をいったりきたりしてしまう ピンポン現象 を防ぐことができます。

製造元を維持する欠点:

  • 製造元をまたぐ変更は通常、 YaST では表示されません。
  • 製造元を変更した場合にのみ、新しい機能が利用できるようになる場合があります。
  • パッケージマネージャは、製造元を変更するタイプの更新が存在すると、問い合わせメッセージを表示します。場合によってはこれらのメッセージが混乱を引き起こしてしまいます。

製造元を変更して更新を適用する方法

製造元を変更して更新を適用するには、いくつかの方法があります。

単一のパッケージのみの製造元変更

YaST を使用する方法

更新したいパッケージを検索してから バージョン タブを開き、インストールしたいバージョンを選択します。

Yast-vendor-package.png

zypper を使用する方法

zypper でバージョン番号を直接指定してインストールします。たとえば下記のように指定します:

zypper install 'amarok=2.3.1'

もしくは、リポジトリを直接指定してもかまいません:

zypper install --from [リポジトリ] [パッケージ]

リポジトリ全体に対する製造元の変更

YaST を使用する方法

インストール済みのパッケージを、特定のリポジトリが提供するものにすべて入れ替えたい場合は、 リポジトリ タブを開いてから、 システムパッケージを、このリポジトリ (XX) 内にあるバージョンに切り替える を選択します。

Yast-vendor-repo.png

zypper を使用する方法

zypper でもすべてのパッケージの製造元を変更することができます:

zypper dup --from [リポジトリ]

製造元の変更を許可する方法

選択したリポジトリに対して製造元の変更を許可する方法

/etc/zypp/vendors.d/ ディレクトリ内に下記のようなファイルを作成することで、指定した "製造元" を等価なものとして扱わせることができます:

[main]

vendors = suse,opensuse,obs://build.suse.de,Packman,http://packman.links2linux.de
製造元の名称は YaST ("バージョン" タブ) で確認できるほか、コマンドラインの "zypper if <パッケージ名>" でも確認することができます。
  • ファイル名は任意の名前でかまいませんが、等価なものみなす製造元ごとに 1 つのファイルを作成してください。
  • libzypp では、文字列の比較で大文字と小文字を区別せず、文字列の冒頭部のみを比較します。たとえば製造元 "opensuse11.0" は、 "openSUSE" と互換性があるものとみなされます。

製造元の維持を外す方法

必要であれば、製造元の維持を完全に外してしまうこともできます。この場合、パッケージマネージャや製造元の変更に関して問い合わせメッセージを表示しなくなるほか、更新の際も製造元に関係なく、単純にもっとも大きなバージョン番号を持つパッケージがインストールされるようになります。

/etc/zypp/zypp.conf ファイルを開いて、下記の値を設定してください:

solver.allowVendorChange = true

上記を設定したら、あとは zypper up を実行すると、製造元に関係なくもっとも新しいバージョンをインストールするようになります。もちろん YaST でも、製造元に関係なく、最も新しいバージョンのものが青色で表示されるようになります。