我添加了约巴巴以获取 Geary 的最新版本。现在,当我下次升级系统时,它也会尝试从其 PPA 中获取 Shotwell 的更高版本,但升级失败,因为它与 Ubuntu 安装 shotwell 的方式相冲突。
现在,我可以清除 shotwell* 软件包,然后再次安装,它会从 Yorba PPA 中提取,但我如何告诉 apt 只使用来自 Ubuntu 存储库的 shotwell,即使 Yorba PPA 有更高版本?
我正在使用 Ubuntu 14.04。
答案1
如果有多个版本的相同软件包可用,在这种情况下,您可以使用以下方式安装特定版本的软件包sudo apt-get install packagename=version
要查找 shotwell 的可用版本,请使用
apt-cache policy shotwell
在我的 Ubuntu 12.04 上
Installed: (none)
Candidate: 0.14.1-1~precise1
Version table:
0.14.1-1~precise1 0
500 http://ppa.launchpad.net/yorba/ppa/ubuntu/ precise/main i386 Packages
0.12.3-0ubuntu0.1 0
500 http://in.archive.ubuntu.com/ubuntu/ precise-updates/main i386 Packages
0.12.2-0ubuntu2 0
500 http://in.archive.ubuntu.com/ubuntu/ precise/main i386 Packages
所以我尝试了
sudo apt-get install shotwell=0.12.3-0ubuntu0.1
但是它给了我软件包错误 libgexiv2-1
。所以我申请了apt-cache policy libgexiv2-1
查找冲突,发现它也可以在 PPA 中使用。
shotwell
因此,要从 Ubuntu repo安装,我使用以下命令
sudo apt-get install shotwell=0.12.3-0ubuntu0.1 libgexiv2-1=0.4.1-1build1
它从官方 Ubuntu repo 成功安装了 shotwell。
shotwell --version
Shotwell 0.12.3
编辑
固定包
正如您所指定,您只想接收 Geary 的升级,而不是此 PPA 中的其他软件包的升级。为此,您可以使用固定。
使用以下方式创建固定配置文件
gksudo gedit /etc/apt/preferences.d/ubuntu-geary-pin-400
内容如下。
Package: * Pin: release o=LP-PPA-yorba Pin-Priority: 400 Package: *geary* Pin: release o=LP-PPA-yorba Pin-Priority: 500
(这里首先为 yorba ppa 中的每个包分配 400 优先级,然后为 geary 包分配 500 优先级(即正常优先级)。)
保存。
现在您将收到仅适用于 geary 的此 ppa 的升级。