用于安装 libgdbm5 或 libgdbm6 的 apt-get 命令

用于安装 libgdbm5 或 libgdbm6 的 apt-get 命令

我写了一些涉及命令的安装说明

apt-get install libgdbm5

...但较新的 ubuntu 版本只有libgdbm6(我认为是 focus 以上版本)

显然,我可以为不同的版本写出不同的指令,但是有没有简单的方法来编写此命令,以便它可以在任一 ubuntu 版本上运行并安装可用的两个包中的哪一个?

我想知道是否apt-get install libgdbm可以提供某种有用的别名,但是没有。不存在。

我想知道这是否apt-get install libgdbm*会起到一些有用的作用。这种方法可行,但会安装具有相同前缀的其他各种软件包。

我看见这个问题但这并不是询问名称中带有数字后缀的包。

答案1

...但较新的 Ubuntu 版本只有libgdbm6

确实:根据https://packages.ubuntu.com/search?keywords=libgdbm5libgdm5仅适用于 Bionic (18.04LTS),而libgdm6(参见https://packages.ubuntu.com/search?keywords=libgdbm6) 适用于 Focal (20.04LTS)、Groovy (20.10) 和 Hirsuite (21.04)。

因此,Focal/Groovy/Hirsuite 包存储库不应有任何依赖于libgdbm5(或依赖于任何不可用的包)的包。

如果您的 APT 实例中没有配置 Bionic 存储库,则无法安装libgdm5,无论是包别名还是虚拟(提供的)包。

一种方法是将 Bionic 存储库添加到您的 APT 配置中。我建议您通过创建一个/etc/apt/sources.list.d/bionic.list文件并在其中配置相关的deb存储库配置来做到这一点。实现此目的的一行代码是

sudo echo "deb http://in.archive.ubuntu.com/ubuntu/ bionic main restricted universe" > /etc/apt/sources.list.d/bionic.list

...接着是apt-get updateapt-get install libgdbm6

还请记住,默认情况下,您发布的存储库应优先于 中定义的任何其他存储库/etc/apt/sources.list.d。请阅读https://wiki.debian.org/AptConfiguration更好地了解存储库优先级的工作原理。

答案2

有没有简单的方法来编写此命令,以便它可以在任一 ubuntu 版本上运行并安装可用的两个包中的任一个?

无论如何,您都不应该明确安装库。您应该安装应用程序,然后让 apt 找出依赖项。这就是 apt 的用途。

NO:  sudo apt install python3-gdbm libgdbm6
YES: sudo apt install python3-gdbm
  • 指定库将会将它们标记为“手动”,这可能会破坏未来的版本升级……或者让旧的、未使用的库不必要地悬在您的系统上。

如果您仍然确实想要指定库,则必须首先在脚本中测试可用的版本。

$ apt list libgdbm6
Listing... Done
libgdbm6/hirsute,now 1.19-2 amd64 [installed,automatic]

$ dpkg -l | grep libgdbm6
ii  libgdbm6:amd64                             1.19-2                                                              
amd64        GNU dbm database routines (runtime version) 

$ apt list libgdbm5
Listing... Done
$ 

$ dpkg -l | grep libgdbm5
$ 

相关内容