如何在Debian上将glibc从2.13升级到2.15?

ant*_*r89 64 debian glibc

我听说我可以使用apt-get install libc6来完成它,但我需要在/etc/apt/sources.list中添加一些内容来接收最新的glibc版本.我该怎么办?

小智 87

我能够安装libc6 2.17Debian Wheezy通过编辑建议PERROR的回答:

重要事项
您需要按CTRL- ALT- 退出显示管理器F1.然后,你可以停止X( slim)与sudo /etc/init.d/slim stop

(替换为苗条mdmlightdm或其他)

将以下行添加到文件中/etc/apt/sources.list:

deb http://ftp.debian.org/debian实验主要

应改为:

deb http://ftp.debian.org/debian sid main

然后按照perror的其余帖子:

更新您的包数据库:

apt-get update

安装eglibc包:

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

重要事项
完成更新后libc6,重新启动计算机,您应该注释掉或删除刚添加的sid源(deb http://ftp.debian.org/debian sid main),否则您可能会冒险将整个发行版升级为sid.

希望这可以帮助.我花了一段时间才弄明白.

  • 您可以再次从/etc/apt/sources.list中删除sid源,而不是Apt-Pinning以确保没有其他任何内容被意外更新:http://jaqque.sbih.org/kplug/apt-pinning.html (10认同)
  • 请注意,我必须通过`apt-get -t sid install libc6 libc6-dev libc6-dbg`替换`apt-get -t sid install libc6-amd64 libc6-dev libc6-dbg`,但它被罚款,因为它是已安装的amd64版本 (9认同)
  • +1。另请参阅 https://wiki.debian.org/DebianExperimental 了解如何在保持“stable”分支的同时仅跟踪“sid”/“experimental”中的一个包。_+1 给@JürgLehni 评论._ (3认同)
  • 这篇文章应该得到更多的关注.它是对perror帖子的更新,它实际上解决了另一篇文章的问题 (2认同)

per*_*ror 46

事实上,你现在不能轻易做到(在我写这条消息的时候).我会尽力解释原因.

首先,glibc不复存在,它已被eglibc项目所包含.并且,Debian发行版切换到eglibc前一段时间(见这里那里,甚至在glibc源码包页).所以,你应该考虑通过这种命令安装eglibc包:

apt-get install libc6-amd64 libc6-dev libc6-dbg
Run Code Online (Sandbox Code Playgroud)

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

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

  1. 将以下行添加到文件中/etc/apt/sources.list:

    deb http://ftp.debian.org/debian experimental main
    
    Run Code Online (Sandbox Code Playgroud)
  2. 更新您的包数据库:

    apt-get update
    
    Run Code Online (Sandbox Code Playgroud)
  3. 安装eglibc包:

    apt-get -t experimental install libc6-amd64 libc6-dev libc6-dbg
    
    Run Code Online (Sandbox Code Playgroud)
  4. 祈祷...

嗯,这就是所有人.

  • 我喜欢"祈祷"部分. (37认同)
  • 仅上升到libc 2.24-11 (2认同)

小智 25

您的脚本也包含错误,例如,如果安装了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"
Run Code Online (Sandbox Code Playgroud)

此脚本已在3台计算机上测试过,没有错误.


Chr*_*ert 6

2022 年更新

\n

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

\n

检查你当前的 glibc 版本

\n
ldd --version\n
Run Code Online (Sandbox Code Playgroud)\n

与 Debian 发行版关联的 glibc 版本

\n

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

\n

升级您的 Debian 发行版

\n

摘自\xe2\x80\x8b如何将 Debian 10 Buster 升级到 Debian 11 Bullseye

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