我在服务器环境中运行 Ubuntu 16.04 LTS,备份软件提示“在 Linux 上,需要 glibc 2.5 或更高版本。”我已运行 ldd --version 并返回
ldd (Ubuntu GLIBC 2.23-0ubuntu10) 2.23
,因此目前它不起作用。
我正在运行一个mysqldump
脚本来将它们备份为文件,但喜欢运行 SQL 备份。
我认为包名称是libc6
这样的,运行如下:
apt-cache depends libc6
libc6
Depends: libgcc1
Breaks: <hurd>
Breaks: libtirpc1
Breaks: locales
Breaks: locales-all
Breaks: lsb-core
Breaks: nscd
Suggests: glibc-doc
|Suggests: debconf
Suggests: <debconf-2.0>
cdebconf
debconf
Suggests: locales
locales-all:i386
locales-all
Replaces: <libc6-amd64>
我知道我可以使用其他存储库或编译版本来升级版本,但我担心这可能会破坏 ubuntu,以及是否推荐这样做?有没有安全的方法来安装它?
答案1
“Ubuntu 的较新版本有较新版本的 glibc。”
Ubuntu 的最新版本(发布时)是 18.04 Bionic Beaver,其中包含 glibc 版本 2.27(版本号比 2.5 高得多)。因此,升级到最新版本的 Ubuntu 并不能解决问题。事实上,16.04 Xenial Xeris 2.23 上的 glibc 版本号比 2.5 高得多,而 2.5 的版本号实际上应该是 2.05。
访问页面
https://sourceware.org/glibc/wiki/Glibc%20Timeline
揭示
glibc 2.5 于 2006-09-29 发布
glibc 2.23 于 2016-02-19 发布
glibc 2.27 于 2018-02-01 发布
上面的最后一个(2.27)是最新版本,存在于 18.04 Bionic Beaver 中。
正如 Knud Larsen 指出的那样,glibc-2.5 是一个非常旧的版本,因此在 16.04 上将其作为默认版本安装会导致系统完全崩溃。
“一个备份软件说它需要“在 Linux 上,需要 glibc 2.5 或更高版本。”
我怀疑您正在尝试运行二进制可执行文件(而不是实际从源代码构建),并且备份软件是为 Red Hat(和基于 RPM)系统设计和发布的。这个备份软件不会是 BRU [家庭版] 吧?
因此第一个教训是,不要尝试在 Debian/Ubuntu/Mint 和其他衍生系统上混合使用为 RPM 和不同 libc 构建的软件。
如果您真的、真的想尝试一些东西,而这只有在您以非 root 身份运行错误的 libc 程序时才会起作用,您可以尝试从 GNU 源代码存储库中的存档中构建 libc 源代码,安装到 /opt/something 中,然后使用 LD_LIBRARY_PATH 指向那里,然后再尝试启动备份软件。当然,如果它有一个 GUI,很可能是 GTK(版本 1 而不是 GTK-2),它永远不会起作用,因为如果您能找到源代码,尝试构建 GTK(版本 1)库在现代系统上几乎是不可能的。
让古老的备份软件正常工作的最可能的解决方案是获取 2005/2006 年的 Red Hat Linux 桌面版、Centos、Mandriva 或其他版本,例如
安装到虚拟机中,然后在其设计的老式操作系统中运行古老的备份软件。
一个更好的替代方案是查看 GPL 开源最新备份软件服务器(可能是 amanda 或 cinder),或者如果您有钱,我看到 Tolis Group(BRU 的当前所有者)现在对 Linux 工作站版本收取 400 美元。当然还有其他商业替代方案,但最好的选择当然是 GPL 开源且不需要现金支付的东西。
补充想法——
你 100% 确定它说的是“glibC需要 2.5 或更高版本。”而不是“需要 glib 2.50 或更高版本”?Ubuntu 16.04 有 glib 2.48 而 Ubuntu 18.04 有 2.56。
如果它确实说的是 glibc,那么你的程序无论如何都是坏的,因为它不接受 glibc 2.27 是一个比 glibc 2.5 更高的版本,因此满足“2.5 或更高版本”的测试。