relocation error: /lib64/libacl.so.1: symbol getxattr, version ATTR_1.0 not defined in file libattr.so.1 with link time reference

如题。有段时间没滚,然后我从通知里更新了一下,就开始报这么个错。相关日志(pk_backend_zypp):

2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp] PackageProvider.cc (providePackage):296 provide Package (378341) libacl1-2.2.53-3.6.x86_64 (download.opensuse.org-oss)
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [packagekit] pk-backend-zypp.cpp (start):371 (378341) libacl1-2.2.53-3.6.x86_64 (download.opensuse.org-oss) https://mirrors.ustc.edu.cn/opensuse/tumbleweed/repo/oss/
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp++] DeltaCandidates.cc (deltaRpms):82 package: (378341) libacl1-2.2.53-3.6.x86_64 (download.opensuse.org-oss)
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp] RepoProvideFile.cc (provideFile):254 [1]./x86_64/libacl1-2.2.53-3.6.x86_64.rpm{26.1 KiB|sha256-d02455b63f13518c646478be60698c14fa0aa9ac466f6c4e134403a32a8f3424}
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp:fetcher++] Fetcher.cc (addCachePath):319 Adding fetcher cache: '/var/cache/zypp/packages/download.opensuse.org-oss'.
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp] RepoProvideFile.cc (provideFile):273 Added cache path /var/cache/zypp/packages/download.opensuse.org-oss
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp] RepoProvideFile.cc (provideFile):307 Providing file of repo 'download.opensuse.org-oss' from https://mirrors.ustc.edu.cn/opensuse/tumbleweed/repo/oss/
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp:fetcher] Fetcher.cc (downloadAndReadIndexList):723 No indexes to read.
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp:fetcher] Fetcher.cc (provideFromCache):350 start fetcher with 1 cache directories.
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp:fetcher] Fetcher.cc (provideToDest):547 Not found in cache, downloading
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp++] MediaSetAccess.cc (provide):217 Going to try to provide  file ./x86_64/libacl1-2.2.53-3.6.x86_64.rpm from media number 1
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp++] MediaManager.cc (checkDesired):101 checkDesired (26): desired (cached)
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp++] MediaManager.cc (checkDesired):101 checkDesired (26): desired (cached)
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp++] MediaMultiCurl.cc (doGetFileCopy):1320 dest: /var/adm/mount/AP_0xjxmHCP/x86_64/libacl1-2.2.53-3.6.x86_64.rpm
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp++] MediaMultiCurl.cc (doGetFileCopy):1321 temp: /var/adm/mount/AP_0xjxmHCP/x86_64/libacl1-2.2.53-3.6.x86_64.rpm.new.zypp.xmRq01
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp++] MediaCurl.cc (doGetFileCopyFile):1489 ./x86_64/libacl1-2.2.53-3.6.x86_64.rpm
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp++] MediaCurl.cc (doGetFileCopyFile):1499 URL: https://mirrors.ustc.edu.cn/opensuse/tumbleweed/repo/oss/x86_64/libacl1-2.2.53-3.6.x86_64.rpm
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp++] MediaMultiCurl.cc (progressCallback):1273 looks_like_metalink_fd: 0
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp++] MediaMultiCurl.cc (doGetFileCopy):1361 HTTP response: 200
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp++] MediaMultiCurl.cc (looks_like_metalink):1234 looks_like_metalink (/var/adm/mount/AP_0xjxmHCP/x86_64/libacl1-2.2.53-3.6.x86_64.rpm.new.zypp.xmRq01): 0
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp] PathInfo.cc (rename):701 rename /var/adm/mount/AP_0xjxmHCP/x86_64/libacl1-2.2.53-3.6.x86_64.rpm.new.zypp.xmRq01 -> /var/adm/mount/AP_0xjxmHCP/x86_64/libacl1-2.2.53-3.6.x86_64.rpm
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp++] MediaMultiCurl.cc (doGetFileCopy):1477 done: /var/adm/mount/AP_0xjxmHCP/x86_64/libacl1-2.2.53-3.6.x86_64.rpm{- 0644 0/0 size 26696}
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp++] MediaHandler.cc (provideFile):1015 provideFile (./x86_64/libacl1-2.2.53-3.6.x86_64.rpm)
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp++] MediaManager.cc (checkDesired):101 checkDesired (26): desired (cached)
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp] PathInfo.cc (hardlinkCopy):863 hardlinkCopy /var/adm/mount/AP_0xjxmHCP/x86_64/libacl1-2.2.53-3.6.x86_64.rpm -> /var/cache/zypp/packages/download.opensuse.org-oss/x86_64/libacl1-2.2.53-3.6.x86_64.rpm => copy
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp::exec++] ExternalProgram.cc (start_program):252 Executing '/bin/cp' '--remove-destination' '--' '/var/adm/mount/AP_0xjxmHCP/x86_64/libacl1-2.2.53-3.6.x86_64.rpm' '/var/cache/zypp/packages/download.opensuse.org-oss/x86_64/libacl1-2.2.53-3.6.x86_64.rpm'
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp::exec++] ExternalProgram.cc (start_program):415 pid 6646 launched
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp::exec++] ExternalProgram.cc (checkStatus):516 Pid 6646 successfully completed
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp] PathInfo.cc (copy):800 copy /var/adm/mount/AP_0xjxmHCP/x86_64/libacl1-2.2.53-3.6.x86_64.rpm -> /var/cache/zypp/packages/download.opensuse.org-oss/x86_64/libacl1-2.2.53-3.6.x86_64.rpm 
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp++] MediaSetAccess.cc (releaseFile):85 Going to release file ./x86_64/libacl1-2.2.53-3.6.x86_64.rpm from media number 1
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp] PathInfo.cc (unlink):659 unlink /var/adm/mount/AP_0xjxmHCP/x86_64/libacl1-2.2.53-3.6.x86_64.rpm
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp:fetcher] Fetcher.cc (validate):392 Checking job [/var/cache/zypp/packages/download.opensuse.org-oss/x86_64/libacl1-2.2.53-3.6.x86_64.rpm] (1 checkers )
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [Progress++] ProgressData.cc (report):88 {#393|}END
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp] RepoProvideFile.cc (provideFile):320 provideFile at /var/cache/zypp/packages/download.opensuse.org-oss/x86_64/libacl1-2.2.53-3.6.x86_64.rpm
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [packagekit] pk-backend-zypp.cpp (finish):401 (378341) libacl1-2.2.53-3.6.x86_64 (download.opensuse.org-oss) 0 libacl1;2.2.53-3.6;x86_64;download.opensuse.org-oss
2020-02-02 16:25:15 <1> localhost.localdomain (2633) [zypp] PackageProvider.cc (providePackage):446 provided Package (378341) libacl1-2.2.53-3.6.x86_64 (download.opensuse.org-oss) at /var/cache/zypp/packages/download.opensuse.org-oss/x86_64/libacl1-2.2.53-3.6.x86_64.rpm
...
2020-02-02 16:47:14 <1> localhost.localdomain (2633) [zypp] RpmHeader.cc (readPackage):252 ReferenceCounted (@0x7f472800f160<=1){0x7f472838fb60}{libattr1-2.4.48-3.3} from /var/cache/zypp/packages/download.opensuse.org-oss/x86_64/libattr1-2.4.48-3.3.x86_64.rpm
2020-02-02 16:47:14 <1> localhost.localdomain (2633) [packagekit] pk-backend-zypp.cpp (start):259 (378674) libattr1-2.4.48-3.3.x86_64 (download.opensuse.org-oss) libattr1;2.4.48-3.3;x86_64;download.opensuse.org-oss
2020-02-02 16:47:14 <1> localhost.localdomain (2633) [zypp] RpmDb.cc (doInstallPackage):1976 RpmDb::installPackage (/var/cache/zypp/packages/download.opensuse.org-oss/x86_64/libattr1-2.4.48-3.3.x86_64.rpm,0x0000000c)
2020-02-02 16:47:14 <1> localhost.localdomain (2633) [zypp::exec++] ExternalProgram.cc (start_program):252 Executing 'rpm' '--root' '/' '--dbpath' '/var/lib/rpm' '-U' '--percent' '--noglob' '--force' '--nodeps' '--' '/var/cache/zypp/packages/download.opensuse.org-oss/x86_64/libattr1-2.4.48-3.3.x86_64.rpm'
2020-02-02 16:47:14 <1> localhost.localdomain (2633) [zypp::exec++] ExternalProgram.cc (start_program):415 pid 14232 launched
2020-02-02 16:47:15 <1> localhost.localdomain (2633) [zypp::exec++] ExternalProgram.cc (checkStatus):516 Pid 14232 successfully completed
2020-02-02 16:47:15 <1> localhost.localdomain (2633) [packagekit] pk-backend-zypp.cpp (finish):283  libattr1;2.4.48-3.3;x86_64;download.opensuse.org-oss (378674) libattr1-2.4.48-3.3.x86_64 (download.opensuse.org-oss)
2020-02-02 16:47:15 <1> localhost.localdomain (2633) [zypp] PathInfo.cc (unlink):659 unlink /var/cache/zypp/packages/download.opensuse.org-oss/x86_64/libattr1-2.4.48-3.3.x86_64.rpm
2020-02-02 16:47:15 <1> localhost.localdomain (2633) [zypp] RpmHeader.cc (readPackage):252 ReferenceCounted (@0x7f472833d740<=1){0x7f472822d3d0}{libavahi-common3-0.7-11.1} from /var/cache/zypp/packages/download.opensuse.org-oss/x86_64/libavahi-common3-0.7-11.1.x86_64.rpm
2020-02-02 16:47:15 <1> localhost.localdomain (2633) [packagekit] pk-backend-zypp.cpp (start):259 (378715) libavahi-common3-0.7-11.1.x86_64 (download.opensuse.org-oss) libavahi-common3;0.7-11.1;x86_64;download.opensuse.org-oss
2020-02-02 16:47:15 <1> localhost.localdomain (2633) [zypp] RpmDb.cc (doInstallPackage):1976 RpmDb::installPackage (/var/cache/zypp/packages/download.opensuse.org-oss/x86_64/libavahi-common3-0.7-11.1.x86_64.rpm,0x0000000c)
2020-02-02 16:47:15 <1> localhost.localdomain (2633) [zypp::exec++] ExternalProgram.cc (start_program):252 Executing 'rpm' '--root' '/' '--dbpath' '/var/lib/rpm' '-U' '--percent' '--noglob' '--force' '--nodeps' '--' '/var/cache/zypp/packages/download.opensuse.org-oss/x86_64/libavahi-common3-0.7-11.1.x86_64.rpm'
2020-02-02 16:47:15 <1> localhost.localdomain (2633) [zypp::exec++] ExternalProgram.cc (start_program):415 pid 14235 launched
2020-02-02 16:47:15 <1> localhost.localdomain (2633) [zypp::exec++] ExternalProgram.cc (checkStatus):509 Pid 14235 exited with status 127
2020-02-02 16:47:15 <5> localhost.localdomain (2633) [zypp] Exception.cc (log):166 RpmDb.cc (doInstallPackage):2090 THROW:    Subprocess failed. Error: RPM failed: rpm: relocation error: /lib64/libacl.so.1: symbol getxattr, version ATTR_1.0 not defined in file libattr.so.1 with link time reference

后边就坏掉了。

这系统还有救么?

pk-update 从不信任,第一时间卸载

是说那个会给我发通知让我升级的那个东西吗?

@lilydjwg 直接下载那个 libacl1 强制安装一次呢(rpm -i --force)?这个包上次更新时间是 11 个月前。我刚才试验了一下单独更新这个包没有发现问题。 要再有问题就把 /var/log/zypp/history 发过来吧,好排查一下一起更新了哪些包,我的系统正好没更新,可以测试一下。

rpm 和很多工具一样已经不能用了。

我重新解包了 libacl1-2.2.53-3.6.x86_64.rpm 并没有用。我发现 libattr1-2.4.48-2.5.x86_64.rpm 是个空文件(但 /usr/lib64/libattr.so.1.1.2448 并不是)。

history (374.2 KB)

嗯,包缓存里有不少空文件,时间戳是去年五月,版本号也对不上,大概无关此次问题。

更新 libattr1 之后就坏掉了,我是不是应该找个之前版本的 libattr1 装上?可那之后呢?你们(好的系统)的 libattr1 和 libacl1 是什么版本呢?

tw 还是 leap?
rpm 不能用了的话,就 rescue 启动直接 rpm -r?

我猜是 tw。这个系统装了久不升级,一升级就成这样了……
装包我有办法,问题是我该装哪个包,然后再怎么升级呢?我都没搞明白这问题是怎么发生的……

啊,我瞎了,没看到仙子直接暴力解包了(
tw 就没办法了,我手上没在跑的 tw 系统