Linux 升級遇到 libc6 問題

本文详细介绍了在Debian系统中解决libc6安装冲突的方法,包括清理源、升级内核、安装内核头文件等步骤,适用于内核版本过旧导致的升级问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

平板kali 升级,内核太老,源比较杂

参考:

https://blog.longwin.com.tw/2009/03/debian-linux-libc6-bug-can-not-upgrade-2009/amp/?shared=email&msg=fail

解决:

只留下一个老的源,apt 纯净一下,更新一些,remove 一些,然后安装kernel,最后估计你就可以安装 libc6了

copy

Debian 升級都很習慣直接打: apt-get update; apt-get upgrade; apt-get dist-upgrade, 通常都可以正常升級完成, 但是今天升級時遇到不少阻礙… ?

錯誤訊息
下列的額外套件將被安裝:
libc6
建議套件:
glibc-doc libc6-i686
下列套件將會被升級:
libc6
升級 1 個,新安裝 0 個,移除 0 個,有 10 個未被升級。
2 個沒有完整得安裝或移除。
需要下載 0B/4548kB 的套件檔。
此操作完成之後,會多佔用 340kB 的磁碟空間。
是否繼續進行 [Y/n]?
正在預先設定套件 …
(正在讀取資料庫 … 系統目前共安裝了 57784 個檔案和目錄。)
正準備替換 libc6 2.7-18(使用 …/archives/libc6_2.9-4_i386.deb)…
Checking for services that may need to be restarted…
Checking init scripts…
WARNING: this version of the GNU libc requires kernel version
2.6.18 or later. Please upgrade your kernel before installing
glibc.

The installation of a 2.6 kernel could ask you to install a new libc
first, this is NOT a bug, and should NOT be reported. In that case,
please add lenny sources to your /etc/apt/sources.list and run:
apt-get install -t lenny linux-image-2.6
Then reboot into this new kernel, and proceed with your upgrade
dpkg:在處理 /var/cache/apt/archives/libc6_2.9-4_i386.deb (–unpack) 時發生錯誤:
子程序 pre-installation script 傳回了錯誤退出狀態 1
在處理時有錯誤發生:
/var/cache/apt/archives/libc6_2.9-4_i386.deb

問題
上面寫說要我先把版本降回 lenny, 先升級 kernel 後, 才可以安裝 libc6(不安裝新版的 libc6, 就會有數不清的版本衝突), 試了各種方法, 不降 lenny 就是不行. XD

發生原因 libc6 需要 kernel 2.6.18 以上的版本, 所以造成一堆的版本衝突(主要原因就是: Kernel 太舊), 我 kernel 是 2.6.11-1-686, 差太遠了… 原來這麼久沒升級了.

解法
vim /etc/apt/sources.list # 加入下述兩行, 其它的都移掉
deb http://ftp.tw.debian.org/debian/ lenny main
deb-src http://ftp.tw.debian.org/debian/ lenny main

apt-get update
apt-get autoremove
apt-get upgrade; apt-get dist-upgrade # upgrade 還是隨手跑一跑


下述這些是我出現被移掉的東西, 順便清清系統也好.
default-jdk g++ g+±3.3 g+±4.0 g+±4.1 g+±4.3 gcj-4.3 java-gcj-compat-dev language-env libc6-dev libgcj9-dev libgcj9-src libmudflap0-dev libssl-dev libstdc++5-3.3-dev libstdc++6-4.0-dev libstdc++6-4.1-dev libstdc++6-4.3-dev libtool locales localization-config php5-dev zlib1g-dev
apt-get -f install linux-image-2.6.26-1-686 # 安裝 2.6.26 的 kernel
reboot # 重新開機
換回 squeeze / testing 版
vim /etc/apt/sources.list


把之前加的那兩行拿掉
deb http://ftp.tw.debian.org/debian/ squeeze main
deb-src http://ftp.tw.debian.org/debian/ squeeze main
deb http://security.debian.org/ squeeze/updates main

apt-get update
apt-get upgrade # libc6 就可以正常安裝, 所以就一帆風順了~
apt-get dist-upgrade
apt-get install locales # 因為剛剛被移除掉, 所以再重新裝回來.
這樣子就完成升級囉~

my exp

在这里插入图片描述

在这里插入图片描述

安装内核头文件

方法1:输入命令:apt-get install linux-headers-$(uname -r)或者直接敲apt-get install linux-headers-在这时候你按键盘上的tab键,找你本系统的头文件安装即可

如果找不到对应的内核头文件或者出现以下错误则进入方法2

E: Unable to locate package linux-headers-4.6.0-kali1-amd64
E: Couldn’t find any package by glob 'linux-headers-4.6.0-kali1-amd64
E: Couldn’t find any package by regex 'linux-headers-4.6.0-kali1-amd64

后记,内核还是3.0

没有升级到4.0 , 我不知道为什么,没有加 f 选项?

但是 一切都正常了,我能安装上zsh 了

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值