openSUSE:Libzypp ロックファイル

移動先: 案内, 検索
この記事では、 zypper で利用できるロック (施錠) と、ロックファイルに関する概要を説明しています。

ロックは zypper addlockzypper removelock のコマンドで簡単に扱うことができます。コマンドについて、詳しくは man zypper をお読みください。

場所

ロックファイルは、既定で /etc/zypp/locks 内に配置されます。このディレクトリは、 /etc/zypp/zypp.conf 内の locksfile.path 設定で変更することができます。

ロックファイルの書式

ロックは 属性: の形式で指定します。属性には一般的な属性のほか、解決型の属性と呼ばれるものがあります。 すべての属性は複数回使用することができます。 複数のロックは空行で区切って指定します。

グローバル属性の一覧

名前説明既定値
repo リポジトリを限定してロックをかける指定です。リポジトリの別名のみを指定することができます。 すべてのリポジトリ
type 種類を限定してロックをかける指定です。 package (パッケージ), patch (修正),pattern (パターン), product (製品), srcpackage (ソースパッケージ) のいずれかを指定します。 すべての種類
case_sensitive 大文字と小文字を区別してロックをかける指定です。 大文字と小文字を 区別しません
install_status オブジェクトの状態を限定してロックをかける指定です。 installed (インストール済みのもの), not-installed (インストールしていないもの), all (両方) のいずれかを指定します。複数の状態を指定した場合は、最後に指定したものを使用します。 all (両方)
match_type 文字列の合致条件を指定します。 type と repo の属性については、ここでの指定に関わらず完全一致で行われます。指定可能な値は、 exact (完全一致), substring (部分文字列), regex (正規表現), glob (グロブ), word (単語) のいずれかです。正規表現では、 POSIX 拡張正規表現 を使用することができます。 substring (部分文字列)
query_string すべての属性に対する文字列を指定します。 solvable 属性を空の値で指定することで、制限を行うことができます (何も制限をかけないと、非常に時間のかかる処理になってしまうためです) (TODO jano what exact) nothing
version バージョンを限定してロックをかける指定です。ここでの値は 2 つのパートに分かれていて、 1 つは演算子、もう 1 つは番号です。演算子には ==, !=, <, >, <=, >= のいずれかを指定することができます。演算子を指定しない場合は、 == とみなされます。番号は 世代:バージョン番号-リリース の形式で指定しますが、バージョン番号以外は指定しなくてもかまいません。 バージョンを限定しない

解決型属性

これらの属性はいずれも、パッケージやパターンなど (以下 オブジェクト) のどの場所を検索して判断するのかを指定します。検索文字列を指定したい場合は、グローバル属性の query_string に書かれた文字列を使用します。

複数の場所を検索するように指定した場合は、いずれかの項目が該当すれば条件に合致したことになります (OR 条件として処理されます) 。

バージョン: libzypp-7.1.1このバージョン以降では、 solvable_name や依存関係の属性で、エディションの範囲を指定することができます。詳しくは下記の例をお読みください。

全体属性

下記の属性は、すべてのオブジェクトに対して適用されます。

名前説明値の例
solvable_name オブジェクトの名前 OpenOffice_org-kde
solvable_summary オブジェクトの概要 KDE Extensions for OpenOffice.org
solvable_arch オブジェクトのアーキテクチャ i586
solvable_description オブジェクトの説明 This package contains some KDE extensions for OpenOffice.org.
solvable_messageins パッケージインストール後のメッセージ Before you can use this package you have to run `faxsetup` as root.
solvable_messagedel パッケージをアンインストールした後のメッセージ This package is required by lpdfilter.
solvable_eula ライセンス文 (flash-player, java など、明示的な合意が必要なものでのみ定義されています) long text of license
solvable_installtime ??? ???
solvable_buildtime パッケージが構築された時刻 (1970年1月1日からの経過秒数) 1210698121
solvable_installsize インストール後のサイズ (KB 単位) 15485
solvable_downloadsize RPM のサイズ (KB 単位) 12674
solvable_diskusage ディレクトリ内のディスク使用サイズ (ディレクトリ, サイズ (KB 単位), ファイル数 をそれぞれ指定) /usr/lib64/anjuta 5351 91
solvable_provides依存関係
solvable_requires依存関係
solvable_recommends依存関係
solvable_obsoletes依存関係
solvable_conflicts依存関係
solvable_suggests依存関係
solvable_supplements依存関係

パッケージの属性

下記の属性は、パッケージに対してのみ適用されます。

名前説明値の例
solvable_checksum RPM のチェックサム (SHA1) c89f7ea38f04e447b0323d64875a51bd0db91654
solvable_medianr メディア番号 (複数枚の CD や 2 層 DVD で提供されている場合) 1
solvable_mediafile ??? (未使用?) ???
solvable_mediadir ??? (未使用?) ???
solvable_license オブジェクトのライセンス X11/MIT
solvable_group パッケージのグループ Development/Tools/Version Control
solvable_keywords キーワード x11
solvable_authors オブジェクトの作者 Michael Andres (メールアドレス)
solvable_filelist ファイルの一覧 (実行ファイルと設定ファイルのみ) /usr/bin/package-manager
solvable_sourcearch??????
solvable_sourcename??????
solvable_sourceevr??????
headerend??????

修正の属性

下記の属性は、修正に対してのみ適用されます。

名前説明値の例
solvable_patchcategory 修正の分類 - security (セキュリティ), optional (任意指定), recommended (推奨) のいずれか。 recommended
update_reboot 適用時にシステムの再起動が必要かどうか ???
update_restart 適用時にソフトウェアの再起動が必要かどうか ???(find how use it)
update_collection_name 更新名 clamav
update_collection_evr 世代,バージョン,リリースによる指定 (バージョン番号のみ必須) 世代:バージョン番号-リリース 0.93-2
update_collection_arch アーキテクチャ x86_64
update_collection_filename RPM の名前 clamav-0.93-2.x86_64.rpm
update_collection_flags ??? ???
update_reference_type 更新の参考情報 (Bugzilla や cve 番号) bugzilla
update_reference_href その他参考情報 https://bugzilla.novell.com/show_bug.cgi?id=64937
update_reference_id 更新 ID 64937
update_reference_title 修正のタイトル bug number 64937

パターンの属性

下記の属性は、パターンに対してのみ適用されます。

名前説明値の例
solvable_isvisible ??? ???
solvable_icon ??? ???
solvable_order ??? ???
solvable_category ??? ???
script ??? ???
solvable_includes ??? ???
solvable_extends ??? ???

KDE のすべてを指定したい場合の例

"kde" を含むすべてのものをロックする場合の例です。

solvable_name: kde

下記でも同じ意味になります。

query_string: kde
solvable_name:

non-oss や Factory 内にあるすべてのシェアウェアを指定したい場合の例

non-oss や Factory 内にあるすべてのシェアウェア (shareware) をロックする場合の例です。

solvable_license: shareware
repo: non-oss
repo: factory

すべての修正を指定したい場合の例

すべての修正 (patch) をロックします。

type:patch

2 つのロック

文字列 'kde' (ただし小文字) を名前または説明に含むすべてのオブジェクトをロックします。 2 番目のロックでは、キーワード内に 'x11' を含むものすべてをロックします。

query_string: kde
solvable_name:
solvable_description:
case_sensitive: on

solvable_keywords: x11

明示的なパッケージ指定

k3b をロック (つまり更新しない) します。
zypper addlock コマンドを使用する方法をお勧めします。

solvable_name: k3b
match_type: exact

特定のバージョンへのパッケージの固定

バージョン: libzypp-7.1.1本章は、古いバージョンでは動作しません。

gnome-screensaver の特定のバージョンをロックします:

type: package
match_type: exact
case_sensitive: on
solvable_name: gnome-screensaver == 2.24.0

バージョン 4.0 未満のすべての 'kde' パッケージをロックします:

type: package
match_type: glob
case_sensitive: off
solvable_name: kde* < 4.0
間違えやすい例: 下記の例は上記の例とは 異なります 。異なる属性間は 'OR' で合成されるため、下記の例はすべての 'kde' パッケージと、バージョン 4.0 未満のすべてのパッケージがロックされます。おそらくこれは、臨んだ結果ではないでしょう。
type: package
match_type: glob
case_sensitive: off
solvable_name: kde*
solvable_edition: < 4.0