我正在尝试用这个替换标准 SSH 客户端:
https://launchpad.net/~yoda-jazz-kc/+archive/ubuntu/hpn-ssh
我如何让 Ubuntu 16.04 用这个替换标准 openssh-client 并始终从这个存储库更新?
我已经添加了 PPA,并且能够通过 指定确切版本来安装它apt-get install openssh-client=vvvvvv
。但是,当系统更新时,它会被标准版本替换。
我尝试过配置/etc/apt/preferences
并将 PPA 放在 sources.list 列表的顶部,但没有什么区别。
我已阅读了数十篇关于如何配置 apt 来执行此操作的文章,但它们大多令人困惑或完全错误。
我需要关于如何做到这一点的具体建议,而不是假设对 apt 的变化有详细了解的通用说明。
答案1
首先创建一个 pin 文件并随意
/etc/apt/preferences.d
命名。pin-openssh-client
将这些行放入文件中
Package: openssh-client Pin: origin ppa.launchpad.net Pin-Priority: 1001
保存文件并通过 检查包的优先级
apt-cache policy openssh-client
。
我添加了 PPA。添加引脚后的命令输出为
openssh-client:
Installed: 1:7.2p2-4ubuntu1
Candidate: 1:7.1p2-hpn14v9-2~ubuntu16.04.1
Version table:
1:7.2p2-4ubuntu2.1 500
500 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages
*** 1:7.2p2-4ubuntu1 500
100 /var/lib/dpkg/status
1:7.2p2-4 500
500 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
1:7.1p2-hpn14v9-2~ubuntu16.04.1 1001
500 http://ppa.launchpad.net/yoda-jazz-kc/hpn-ssh/ubuntu xenial/main amd64 Packages
从输出中可以看出,来自 PPA 的包优先于存储库提供的包(检查行Candidate
)。
如果你已经安装了该软件包,请将其删除。然后重新安装以从 PPA 获取该软件包。
希望有效!