高级用法
降级
XBPS 允许你将一个软件包降级到一个特定的软件包版本。
通过 xdowngrade
最简单的降级方法是使用 xtools
软件包中的 xdowngrade
,指定你想降级的软件包版本:
# xdowngrade /var/cache/xbps/pkg-1.0_1.xbps
通过 XBPS
XBPS 可用于降级到不再可用的软件包版本 在存储库索引中。
如果该软件包的版本以前已经安装过,它将在 /var/cache/xbps/
中可用。如果没有,它将需要从其他地方获得;在这个例子中,将假定软件包的版本已经被添加到 /var/cache/xbps/
。
首先将包版本添加到本地存储库:
# xbps-rindex -a /var/cache/xbps/pkg-1.0_1.xbps
然后降级 xbps-install
:
# xbps-install -R /var/cache/xbps/ -f pkg-1.0_1
为了强制降级/重新安装一个已经安装的软件包,-f
标志是必要的。
保留当前的软件包
要防止软件包在系统更新时被更新, 请使用 xbps-pkgdb(1):
# xbps-pkgdb -m hold <package>
可以通过以下方式删除保留:
# xbps-pkgdb -m unhold <package>
储存库锁定的软件包
如果你使用 xbps-src
从一个定制的模板或定制的构建选项来构建和安装一个软件包,你可能希望防止系统更新用一个非定制的版本来替换该软件包。为了确保一个软件包只从安装它的同一个仓库更新,你可以通过 xbps-pkgdb(1) 重新锁定它:
# xbps-pkgdb -m repolock <package>
撤销锁定:
# xbps-pkgdb -m repounlock <package>
忽略软件包
有时,你可能希望删除一个由另一个软件包提供功能的软件包,但由于依赖关系的问题,你将无法这样做。例如, 你可能希望使用 doas(1) 而不是 sudo(8), 但由于 sudo
软件包是对 base-system
软件包的依赖, 因此无法删除它。要删除它,你需要忽略 sudo
包。
要忽略一个软件包, 请在 xbps.d(5) 配置文件中添加一个适当的 ignorepkg 项。例如:
ignorepkg=sudo
然后你将能够使用 xbps-remove(1) 删除 sudo
软件包。
虚拟软件包
虚拟包可以通过 xbps.d(5) virtualpkg
项来创建。任何对虚拟包的请求都会被解析为真实的包。例如,要创建一个 linux
虚拟包,它将被解析为 linux5.6
包,创建一个 xbps.d
配置文件,其内容如下:
virtualpkg=linux:linux5.6