提示 base-files 无法升级
apt-listchanges: Reading changelogs...
Extracting templates from packages: 100% O Preconfiguring packages ...
(Reading database ... 117496 files and directories currently installed.)
Preparing to unpack .../base-files_13.8_amd64.deb ...
******************************************************************************
*
* The base-files package cannot be installed because
* /lib64 is a symbolic link and not pointing at usr/lib64 exactly.
*
* This is an unexpected situation. Cannot proceed with the upgrade.
*
* For more information please read https://wiki.debian.org/UsrMerge.
*
******************************************************************************
dpkg: error processing archive /var/cache/apt/archives/base-files_13.8_amd64.deb (--unpack):
new base-files package pre-installation script subprocess returned error exit status 1
Errors were encountered while processing:
/var/cache/apt/archives/base-files_13.8_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
找了一下相关帖子,有人提示可以把/lib64 软链接删除,这一删任何命令都执行不了:
ls
这大热天的,实在不想把放在弱电箱里的机器拿出来接键盘接电视,于是又研究了一番,可以如此恢复:
cd /
/usr/lib64/ld-linux-x86-64.so.2 /usr/bin/ln -s usr/lib64 lib64
再次执行 apt dist-upgrade --autoremove -y 居然莫名其妙又可以升级的,真奇怪,不知道哪里出的问题。
1
aresyang 24 天前
sudo apt install usrmerge
sudo /usr/lib/usrmerge/convert-usrmerge |
![]() |
2
HenryHe613 24 天前
吓得我都不敢把 debian12.11 升级的 debian13
|
![]() |
3
moefishtang 24 天前
我昨天晚上也升级挂了,升级完有几个包没给我更新.
然后我用 apt full-upgrade 强制更新,结果重启一下系统起不来了 还好我有快照,回滚了 昨晚更新了四台,就那一台出了问题 ~~不是说 Debian 稳如老狗嘛~~ |
![]() |
4
1217950746 24 天前 via iPhone
我升级了,没问题,有可能是我主机上没东西都在 Docker 里
|
5
zed1018 24 天前
@moefishtang 起不来是不是卡 grub ,如果是的话是不是升级过程中 grub 让选分区选错了。要不还有一种,如果和你以为的起不来是 ssh 连不上也可能是网卡名字变了导致没有网。
|
![]() |
6
SayHelloHi 24 天前
借楼问下老铁们
Debian 系统 如何只升级补丁包和安全更新包 不升级系统 😁 |
![]() |
7
ihipop 24 天前
你原来的 /lib64 没有指向 usr/lib64 , 新建的是
|
8
hefish 24 天前
@SayHelloHi 不执行 apt dist-upgrade 即可。 只执行 apt update && apt upgrade
|
![]() |
9
darrh00 OP |
![]() |
10
cnt2ex 24 天前
刚刚升级完,没有遇到任何问题。
|
![]() |
11
mikewang 24 天前 ![]() #3 @moefishtang
Debian 稳就稳在不怎么升级 ;) 升级大概就是会经历的最不稳的时候了。 --- #9 @darrh00 直接删除软连接会出大问题,因为默认的 ELF 解释器是绝对路径 /lib64/ld-linux-x86-64.so.2 ,删了就找不到了,所有基于 libc 的软件都将无法运行。 正确的修复方法是一步到位: sudo ln -Tfs usr/lib64 /lib64 解释:-T 是将 /lib64 看作普通文件而不是目录,-f 是强制覆盖,-s 是软连接。 造成软连接不符合预期的情况可能是安装了 debian 官方源之外的包导致冲突了,或者可能是 systemd 干了坏事。 可以看一下之前是不是指向 usr/lib 或者绝对路径 /usr/lib64 了,他们都与 usr/lib64 不匹配,虽然最终目标都是同一个目录。 |
12
idssc 24 天前 via Android
已经用了半个月
|
13
w568w 24 天前
不能 usrmerge 多半是因为自己手动装了非官方源的软件,覆盖了一些 usr/lib64/ 下的目录
|
![]() |
14
msg7086 24 天前
谁出的馊主意删/lib64 的(笑
|
![]() |
15
moefishtang 24 天前
@zed1018 没看,我直接回滚快照了
开机进到 BIOS 里了,应该是 grub 引导出了问题 |
![]() |
16
moefishtang 24 天前
@mikewang 确实,那台机器都快 6 个月没关机了,而且还配置了自动更新,没崩过
不升级确实稳如老狗 |
![]() |
17
darrh00 OP @mikewang #11 学习了
因为之前我的系统一直可以运行运行的,刚才终端历史没保留,已经没法确认之前到底是什么状态了,从错误信息看估计九成应该是链接成绝对路径导致的, debian 安装的检查脚本 https://salsa.debian.org/sanvila/base-files/-/blob/master/debian/preinst?ref_type=heads ```bash target=$(readlink "$DPKG_ROOT/$d") if [ "$target" != "usr/$d" ]; then if [ "$d" = lib64 ] && [ "$target" = "usr/lib/#DEB_HOST_MULTIARCH#" ]; then # Work around https://github.com/systemd/systemd/issues/33919 echo "Fixing bad /$d symbolic link created by systemd-nspawn." if [ -d "$DPKG_ROOT/usr/$d" ]; then ln -sf "usr/$d" "$DPKG_ROOT/$d" else rm "$DPKG_ROOT/$d" fi else msg="/$d is a symbolic link and not pointing at usr/$d exactly" fi elif [ ! -d "$DPKG_ROOT/usr/$d" ]; then msg="/$d is a dangling symbolic link" fi ``` |
![]() |
18
BZGOGO 24 天前
13?
debian12 有些脚本都跑不起来,一直在用 debian11 |
![]() |
19
HarveyLiu 24 天前
amd cpu 不管家用系列,还是服务器系列,都提升 13%
|
![]() |
20
Cu635 24 天前
原因还是在这里:“/lib64 is a symbolic link and not pointing at usr/lib64 exactly.”
这个是 op 你自己配置过么? debian 12 里面应该是默认的了,作为符号链接指向 usr/lib64 这种。 |
21
jocover 24 天前
我 debian 升级后 php 变 8.4 了,要自己开启 a2enmod php8.4
|
22
DefoliationM 24 天前
一直 testing ,随便升
|
23
ranaanna 24 天前
@jocover 我的 apache 用的是 mpm-event ,所以是 a2enconf php8.4-fpm 。另外我有用 vnc ,升级后 kde plasma 6 默认用 wayland ,因此导致黑屏,切换回 x11 恢复
|
24
cat55 24 天前
升 pve9 我都用备用机演练了好几遍,现在主力机都还没升,等多两个小版本再升
|
![]() |
25
SayHelloHi 24 天前
|
![]() |
26
darrh00 OP |
![]() |
27
freaks 23 天前 via iPhone
自己环境随便升,生产可不敢这样升
|
![]() |
28
Radiation 23 天前
@moefishtang #15 我 pve 的 debian 从 12 升到 13 时也是这问题,直接进 bios ,最后直接重装了。
|
29
laminux29 23 天前
生产服务器,应该使用上一个大版本的最后一个小版本。另外如果系统长期稳定运行,除非遇到致命 Bug 或安全漏洞,否则不应该冒进升级。
自己玩的话,才会选择最新版本,因为吃螃蟹可能会翻车。 |
32
bthulu 22 天前
不升级, 我那 18 年的 windows server 也稳如老狗, 至今连一件事故都没出现过
|
![]() |
33
Cu635 22 天前
@darrh00 #26
九成就是了。 这种情况,不如趁着这次“升级”就干脆重装,配置文件备份一下,apt 安装的包列表有备份恢复的办法: https://unix.stackexchange.com/questions/190853/backup-and-restore-list-of-installed-packages-and-apt-sources (这个是可以用的当作保底,不过还是要注意一下回答时间,现在的新版本 debian 可能有更好的方法)。 这样得到一个保证没有问题的系统。 |