如何在 Debian 上升级 glibc?

问题描述 投票:0回答:4

我听说我可以使用

apt-get install libc6
来做到这一点,但我需要向
/etc/apt/sources.list
添加一些内容才能接收最新的 glibc 版本。

我该怎么办?

debian glibc
4个回答
93
投票

我可以通过编辑

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 的风险。


54
投票

警告!!! 此解决方案现已已过时尝试在列表中找到更新的解决方案!


事实上,你现在还不能轻易做到这一点(在我写这条消息的时候)。我会尝试解释原因。

首先,glibc 已经不存在了,它已被纳入eglibc 项目。并且,Debian 发行版不久前切换到了eglibc(参见herethere,甚至在glibc源码包页面)。所以,你应该考虑通过这种命令安装eglibc包

apt-get install libc6-amd64 libc6-dev libc6-dbg

amd64
替换为您想要的架构类型(查看软件包列表此处)。

不幸的是,

unstable
testing
中的eglibc软件包版本最高只有2.13。只有
experimental
提供了该库的 2.17 版本。因此,如果您确实想在 2.15 或更高版本中使用它,则需要从实验版本安装该软件包(不推荐)。以下是以 root 身份实现的步骤:

  1. 将以下行添加到文件中

    /etc/apt/sources.list

     deb http://ftp.debian.org/debian experimental main
    
  2. 更新您的包裹数据库:

     apt-get update
    
  3. 安装eglibc包:

     apt-get -t experimental install libc6-amd64 libc6-dev libc6-dbg
    
  4. 祈祷!

好吧,这就是大家。


29
投票

您的脚本也包含错误,例如,如果您安装了 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台机器上测试,没有错误。


6
投票

2022 年更新

如果您需要升级 glibc,最安全的解决方案可能是升级您的 Linux 发行版,因为大多数软件都依赖于 glibc。

检查您当前的 glibc 版本

ldd --version

与 Debian 发行版相关的 glibc 版本

看一下:tracker.debian.org/pkg/glibc

升级您的 Debian 发行版

摘自如何将 Debian 10 Buster 升级到 Debian 11 Bullseye

  1. 备份您的数据
  2. 更新当前安装的软件包
    • 标记为保留的软件包无法自动安装、升级或删除。这可能会在升级过程中导致问题。检查是否有包裹被扣:
      sudo apt-mark showhold
    • 如果有保留的软件包,您应该使用
      sudo apt-mark unhold package_name
      取消保留这些软件包,或者确保这些软件包不会干扰升级过程。
sudo apt update
sudo apt upgrade
sudo apt full-upgrade
sudo apt autoremove
  1. 升级 Debian 发行版
    • 编辑
      /etc/apt/sources.list
      sudo nano /etc/apt/sources.list
    • 更新发行版名称。请参阅 Debian SourcesList Wiki
    • 将终端输出设置为仅英语:
      export LC_ALL=C
sudo apt update
sudo apt upgrade
sudo apt full-upgrade
sudo apt autoremove
sudo systemctl reboot
© www.soinside.com 2019 - 2024. All rights reserved.