我听说我可以使用
apt-get install libc6
来做到这一点,但我需要向 /etc/apt/sources.list
添加一些内容才能接收最新的 glibc 版本。
我该怎么办?
我可以通过编辑
perror的答案中的建议来安装
libc6 2.17
在Debian Wheezy
中:
重要
您需要按 CTRL-ALT-F1 退出显示管理器。
然后你可以用
slim
停止 x (
sudo /etc/init.d/slim stop
)
(用
mdm
或 lightdm
或其他名称替换 slim)
将以下行添加到文件中
/etc/apt/sources.list
:
deb http://ftp.debian.org/debian 实验主
应改为:
deb http://ftp.debian.org/debian sid main
然后关注 perror 帖子的其余部分:
更新您的包裹数据库:
apt-get 更新
安装
glibc
软件包:
apt-get -t sid 安装 libc6-amd64 libc6-dev libc6-dbg
重要
完成更新
libc6
后,重新启动计算机,您应该注释掉或删除刚刚添加的 sid 源 (deb http://ftp.debian.org/debian sid main
),否则您将面临将整个发行版升级到 sid 的风险。
警告!!! 此解决方案现已已过时尝试在列表中找到更新的解决方案!
事实上,你现在还不能轻易做到这一点(在我写这条消息的时候)。我会尝试解释原因。
首先,glibc 已经不存在了,它已被纳入eglibc 项目。并且,Debian 发行版不久前切换到了eglibc(参见here和there,甚至在glibc源码包页面)。所以,你应该考虑通过这种命令安装eglibc包:
apt-get install libc6-amd64 libc6-dev libc6-dbg
将
amd64
替换为您想要的架构类型(查看软件包列表此处)。
不幸的是,
unstable
和testing
中的eglibc软件包版本最高只有2.13。只有 experimental
提供了该库的 2.17 版本。因此,如果您确实想在 2.15 或更高版本中使用它,则需要从实验版本安装该软件包(不推荐)。以下是以 root 身份实现的步骤:
将以下行添加到文件中
/etc/apt/sources.list
:
deb http://ftp.debian.org/debian experimental main
更新您的包裹数据库:
apt-get update
安装eglibc包:
apt-get -t experimental install libc6-amd64 libc6-dev libc6-dbg
祈祷!
好吧,这就是大家。
您的脚本也包含错误,例如,如果您安装了 dos2unix,您的安装可以工作,但如果您不喜欢我所做的那样,那么它将因依赖性问题而失败。
我偶然发现了这个,因为我正在制作一个脚本文件,送给我刚接触 Linux 的朋友,因为我在 Windows 上制作了脚本,所以我指示他安装它,当时我没有安装 dos2unix我有错误。
这是我为您的解决方案制作的脚本的副本,但安装了 dos2unix。
#!/bin/sh
echo "deb http://ftp.debian.org/debian sid main" >> /etc/apt/sources.list
apt-get update
apt-get -t sid install libc6 libc6-dev libc6-dbg
echo "Please remember to hash out sid main from your sources list. /etc/apt/sources.list"
此脚本已在3台机器上测试,没有错误。
如果您需要升级 glibc,最安全的解决方案可能是升级您的 Linux 发行版,因为大多数软件都依赖于 glibc。
ldd --version
看一下:tracker.debian.org/pkg/glibc
摘自如何将 Debian 10 Buster 升级到 Debian 11 Bullseye
sudo apt-mark showhold
sudo apt-mark unhold package_name
取消保留这些软件包,或者确保这些软件包不会干扰升级过程。sudo apt update
sudo apt upgrade
sudo apt full-upgrade
sudo apt autoremove
/etc/apt/sources.list
:sudo nano /etc/apt/sources.list
export LC_ALL=C
sudo apt update
sudo apt upgrade
sudo apt full-upgrade
sudo apt autoremove
sudo systemctl reboot