openSUSE:Libzypp locks file
本文将更详细地介绍使用 zypper 可以对锁/锁文件进行的操作。
使用 zypper addlock 或 zypper removelock 可以简单地操作锁。 另请参阅 man zypper。
位置
锁文件的默认位置是/etc/zypp/locks。这可以在 /etc/zypp/zypp.conf 中使用 locksfile.path 设置进行更改。
锁的格式
格式为 attribute:value。属性可以是通用属性或可解析属性。所有属性都可以多次使用。锁用空行分隔。
通用属性列表
| 名称 | description | 默认值 |
|---|---|---|
| repo | 仓库限制。仅接受别名。 | 所有仓库 |
| 类型 | 类型限制 - 类型可以是 package、patch、pattern、product 和 srcpackage。 | 所有类型 |
| 区分大小写 | 如果匹配区分大小写。 | 不区分大小写 |
| 安装状态 | 对象的状态。可能的状态是 installed、not-installed 和 all。如果指定了多个安装状态,则使用最后一个。 | 全部 |
| 匹配类型 | 值中字符串的类型。不影响必须精确指定的类型和仓库。可能的值:exact、substring、regex、glob 和 word。regex 是 (POSIX 扩展正则表达式) | 默认值为 substring |
| 查询字符串 | 所有属性的字符串。可以通过空值可解析属性进行限制(推荐,因为没有限制性能很差)。(TODO jano 确切含义) | 无 |
| 版本 | 仅限制某些版本。它包含两部分,第一部分是运算符,第二部分是版本。运算符是 ==、!=、<、>、<=、>=。如果未指定运算符,则使用 ==。版本格式为 epoch:version-release。仅版本是必需的。 | 无限制 |
可解析属性
应与指定的查询字符串匹配的属性。如果没有定义带有该属性的查询字符串,则全局查询字符串将使用代替。
如果在多个属性中搜索,则在一个属性中匹配就足以匹配查询(或者-语义)。
版本:libzypp-7.1.1 从这个版本开始,支持与 solvable_name 或依赖属性一起指定版本范围。这样就可以锁定特定版本或版本范围内的软件包。有关详细信息,请参阅示例部分。
通用属性
这些属性每个类型的对象都有
| 名称 | description | 示例值 |
|---|---|---|
| solvable_name | 对象名称 | OpenOffice_org-kde |
| solvable_summary | 对象摘要 | OpenOffice.org 的 KDE 扩展 |
| solvable_arch | 对象的架构 | i586 |
| solvable_description | 对象描述 | 此软件包包含 OpenOffice.org 的一些 KDE 扩展。 |
| solvable_messageins | 软件包安装后的消息 | 在使用此软件包之前,您必须以 root 用户身份运行 `faxsetup`。 |
| solvable_messagedel | 软件包卸载后的消息 | 此软件包是 lpdfilter 所必需的。 |
| solvable_eula | 许可证文本(仅当需要明确同意,如 flash-player、java 等时) | 许可证的详细文本 |
| 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 | 依赖项 |
软件包属性
这些属性仅适用于软件包
| 名称 | description | 示例值 |
|---|---|---|
| solvable_checksum | rpm 校验和(sha1) | c89f7ea38f04e447b0323d64875a51bd0db91654 |
| solvable_medianr | 介质编号(例如,对于多 CD 或双层 DVD) | 1 |
| solvable_mediafile | ???(看起来未使用) | ??? |
| solvable_mediadir | ???(看起来未使用) | ??? |
| solvable_license | 对象的许可证 | X11/MIT |
| solvable_group | 软件包组 | 开发/工具/版本控制 |
| solvable_keywords | 关键字(TODO 需要更好地指定) | x11 |
| solvable_authors | 对象的作者 | Michael Andres 电子邮件地址 |
| solvable_filelist | 文件列表(看起来不是全部,只有可执行文件和配置文件) | /usr/bin/package-manager |
| solvable_sourcearch | ??? | ??? |
| solvable_sourcename | ??? | ??? |
| solvable_sourceevr | ??? | ??? |
| headerend | ??? | ??? |
补丁属性
这些属性仅适用于补丁
| 名称 | description | 示例值 | |
|---|---|---|---|
| solvable_patchcategory | 补丁类别 - 应该是 security、optional 和 recommended | 推荐 | |
| update_reboot | 更新需要重启 | ???(找到如何使用它) | |
| update_restart | 更新需要重新启动 | ???(找到如何使用它) | |
| update_collection_name | 更新名称 | clamav | |
| update_collection_evr | epoch、version 和 release 格式(仅版本是必需的)epoch:version-release | 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 | href | https://bugzilla.opensuse.org/show_bug.cgi?id=64937 | |
| update_reference_id | 更新 ID | 64937 | |
| update_reference_title | 路径标题 | bug 编号 64937 |
模式属性
这些属性仅适用于模式
| 名称 | description | 示例值 |
|---|---|---|
| solvable_isvisible | ??? | ??? |
| solvable_icon | ??? | ??? |
| solvable_order | ??? | ??? |
| solvable_category | ??? | ??? |
| 脚本 | ??? | ??? |
| solvable_includes | ??? | ??? |
| solvable_extends | ??? | ??? |
示例
所有 kde
锁定包含 kde 的所有内容
solvable_name: kde
与
query_string: kde solvable_name:
锁定来自 non-oss 或 factory 仓库的每个 shareware 软件包
solvable_license: shareware repo: non-oss repo: factory
所有补丁
锁定所有补丁
type:patch
两个锁
所有在名称或描述中包含字符串“kde”(小写)的对象。以及第二个锁,用于所有在关键字中包含“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
: