如何为同名自建deb包设置apt安装目标(-t)以区分版本
解决不同本地仓库同名Deb包的指定安装问题
方法一:通过-t选项结合仓库配置(推荐)
要让apt install -t <target> <packagename>生效,需先完成仓库的基础配置:
- 给两个仓库分别设置唯一的**发布版(Suite)**字段:
- Stable仓库配置文件(如
/etc/apt/sources.list.d/stable.list):deb [trusted=yes] file:///path/to/your/stable-repo stable main - Unstable仓库配置文件(如
/etc/apt/sources.list.d/unstable.list):deb [trusted=yes] file:///path/to/your/unstable-repo unstable main
- Stable仓库配置文件(如
- 执行
apt update刷新仓库缓存后,即可通过-t指定目标仓库安装:# 安装stable仓库的包 apt install -t stable packagename # 安装unstable仓库的包 apt install -t unstable packagename - 可选:若需控制默认安装优先级,创建
/etc/apt/preferences.d/99-local-repos文件自定义优先级(数值越高优先级越高,默认500):Package: * Pin: release a=stable Pin-Priority: 700 Package: * Pin: release a=unstable Pin-Priority: 500
方法二:指定包版本号安装
如果两个分支的包版本号有区分(比如main分支用正式版本号1.0.0,dev分支用带后缀的预发布版本1.0.1~dev),可以直接指定版本安装:
# 查看所有可用版本 apt list -a packagename # 安装stable分支的正式版本 apt install packagename=1.0.0 # 安装dev分支的预发布版本 apt install packagename=1.0.1~dev
方法三:直接从仓库路径安装
如果上述方法不适用,还可以直接指定deb包的本地路径安装:
# 安装stable仓库中的deb包 apt install file:///path/to/stable-repo/pool/main/p/packagename/packagename_1.0.0_amd64.deb # 安装unstable仓库中的deb包 apt install file:///path/to/unstable-repo/pool/main/p/packagename/packagename_1.0.1~dev_amd64.deb
内容的提问来源于stack exchange,提问作者João P.
相关产品推荐
相关产品推荐

