我的办公室有两台Ubuntu 18.04服务器用于开发工作,我们安装了 GNU 调试器。所有这些软件包始终使用“sudo apt install”命令安装。不知何故,其中一台服务器的 gdb 版本比另一台服务器更新。
#DVLP1
# sudo apt list --installed |grep ^gdb/
gdb/bionic-updates,now 8.1.1-0ubuntu1 amd64 [installed]
# sudo apt-cache policy gdb
gdb:
Installed: 8.1.1-0ubuntu1
Candidate: 8.1.1-0ubuntu1
Version table:
*** 8.1.1-0ubuntu1 500
500 http://us.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
100 /var/lib/dpkg/status
8.1-0ubuntu3 500
500 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
#DVLP2
# sudo apt list --installed |grep ^gdb/
gdb/bionic,now 8.2-0ubuntu1~18.04 amd64 [installed]
# sudo apt-cache policy gdb
gdb:
Installed: 8.2-0ubuntu1~18.04
Candidate: 8.2-0ubuntu1~18.04
Version table:
*** 8.2-0ubuntu1~18.04 500
500 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 Packages
100 /var/lib/dpkg/status
8.1.1-0ubuntu1 500
500 http://us.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
8.1-0ubuntu3 500
500 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
我们在 DVLP1 上的一些开发人员抱怨他们收到以下警告,而他们在 DVLP2 上使用 gdb 时没有收到:
==28205==HINT: LeakSanitizer does not work under ptrace (strace, gdb, etc)
我能看到的唯一不同的是 gdb,所以我打算尝试在两者上将它升级到相同的版本。虽然 gdb 版本 8.2 列在第一个系统的存储库中,但它仍然仅将版本 8.1.1 显示为第二个系统上的最新副本。
我猜这与我们从中下载的选定存储库有关。我注意到一个盒子使用“archive.ubuntu.com”和另一个“us.archive.ubuntu.com”作为仿生主。但是,即使在我将 sources.list 更改为具有相同的 deb 条目(并进行了 apt 更新)之后,它也没有显示高于 gdb 8.1.1 的版本
在这一点上,我是否有一种简单的方法可以安装一个在 DVLP2 的 apt-cache 中列出但不在 DVLP1 中的包?看起来 8.2 版本来自 ppa.launchpad.net,但我不记得有这个作为 deb 条目。如果我想尝试该副本(并且我可以信任它的内容),我将如何将其添加到 sources.list ?
谢谢史蒂夫
ppa.launchpad.net
表示此软件包是从PPA安装的。运行答案中的第一个脚本 ,然后在第二台机器上运行提供的命令
编辑:我能够使用 版本表中的链接http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu来挖掘 PPA
这是一个官方的工具链测试/预发布repo,所以是的,可以安全使用
您可以添加使用
这将输出:
在 an 之后,
sudo apt update
您将能够使用 v。8.2