免责声明:
这确实不是对我的系统稳定运行至关重要的主要问题,但我问这个问题是因为我根本无法理解它,我真的很想知道这里发生了什么。
我正在运行一个
arch linux
盒子,刚刚做了yaourt -Syua
。一切都很顺利。我重新启动并检查systemctl list-units --state failed
结果ntpd.service
。我journalctl -r -u ntpd
找到了该条目
Apr 24 19:54:33 htpc ntpd[1850]: /usr/bin/ntpd: error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory
运行ldconfig -v | grep libcrypto
产生
libcrypto.so.1.1 -> libcrypto.so.1.1
又属于openssl
# yaourt -Ql | grep libcrypto
openssl /usr/lib/libcrypto.so
openssl /usr/lib/libcrypto.so.1.1
然后我想也许我第一次运行时有些东西没有升级,yaourt -Syua
所以我第二次尝试,没有升级候选者。ntp
无论如何,最有可能的候选者是openssl
升级成功的
# yaourt -Si openssl | grep Version && yaourt -Qi openssl | grep Version
Version : 1.1.0.e-1
Version : 1.1.0.e-1
检查ntp
版本
# yaourt -Si ntp | grep Version && yaourt -Qi ntp | grep Version
Version : 4.2.8.p9-2 // in the offical `Extra` repo
Version : 4.2.8.p10-1 // installed on my system??
只是为了看看会发生什么,我尝试(重新)安装ntp
# yaourt -Sy ntp
:: Synchronising package databases...
core is up to date
extra is up to date
archlinuxfr is up to date
community is up to date
multilib is up to date
warning: downgrading package ntp (4.2.8.p10-1 => 4.2.8.p9-2)
Packages (1) ntp-4.2.8.p9-2
Total Download Size: 1.71 MiB
Total Installed Size: 4.09 MiB
Net Upgrade Size: -0.10 MiB
:: Proceed with installation? [Y/n]
这让我彻底慌了。它要我ntp
在我刚刚升级时降级openssl
以便使用正确的libcrypto.so
?
# cat /var/log/pacman.log | grep openssl
[2017-04-24 19:23] [ALPM] upgraded openssl (1.0.2.k-1 -> 1.1.0.e-1)
# cat /var/log/pacman.log | grep ntp
[2017-04-13 18:08] [ALPM] upgraded ntp (4.2.8.p9-1 -> 4.2.8.p10-1)
另外,在查看 Arch Linux 官方网站时,它说该ntp
软件包的ntp 4.2.8.p9-2
当前版本已过时。
我的问题
- 我怎么可能拥有
ntp
比官方Extra
存储库中规定的版本更新的版本,而我只有一个[archlinuxfr]
不包含的其他自定义存储库(-for yaourt)ntp
?我检查了。 - 为什么
yaourt/pacman
建议我降级我的套餐? - 降级我的软件包是否真的可以解决我的
ntp
问题,或者我是否应该在openssl
假设有正确libcrypto.so
版本的情况下降级?
编辑1
我有第二个 arch linux 盒子,今天我也升级了,但没有出现问题。这是两者pacman.log
的比较。也可能对此有所启发:
BoxRunningFine# cat /var/log/pacman.log | grep -e "upgraded openssl" -e "upgraded ntp"
[2017-01-04 21:26] [ALPM] upgraded ntp (4.2.8.p8-1 -> 4.2.8.p9-1)
[2017-02-28 19:05] [ALPM] upgraded openssl (1.0.2.j-1 -> 1.0.2.k-1)
[2017-04-24 18:48] [ALPM] upgraded openssl (1.0.2.k-1 -> 1.1.0.e-1)
[2017-04-24 18:49] [ALPM] upgraded ntp (4.2.8.p9-1 -> 4.2.8.p9-2)
BoxWithIssue# cat /var/log/pacman.log | grep -e "upgraded ntp" -e "upgraded openssl"
[2016-06-05 03:18] [ALPM] upgraded ntp (4.2.8.p7-1 -> 4.2.8.p8-1)
[2016-10-21 18:17] [ALPM] upgraded openssl (1.0.2.h-1 -> 1.0.2.j-1)
[2017-01-06 14:18] [ALPM] upgraded ntp (4.2.8.p8-1 -> 4.2.8.p9-1)
[2017-02-08 22:54] [ALPM] upgraded openssl (1.0.2.j-1 -> 1.0.2.k-1)
[2017-04-13 18:08] [ALPM] upgraded ntp (4.2.8.p9-1 -> 4.2.8.p10-1)
[2017-04-24 19:23] [ALPM] upgraded openssl (1.0.2.k-1 -> 1.1.0.e-1)
从表面上看,出现问题的盒子的升级时机很糟糕。我猜这将是一个典型的厄运案例。那么我就降级到,4.2.8.p9-2
我想应该没问题吧?
编辑2
# yaourt -Sy ntp
warning: downgrading package ntp (4.2.8.p10-1 => 4.2.8.p9-2)
Packages (1) ntp-4.2.8.p9-2
:: Proceed with installation? [Y/n]
:: Retrieving packages...
ntp-4.2.8.p9-2-x86_64
(1/1) downgrading ntp
# systemctl start ntpd && systemctl status ntpd
● ntpd.service - Network Time Service
Loaded: loaded (/usr/lib/systemd/system/ntpd.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2017-04-24 21:14:41 CEST; 5s ago
# yaourt -Qi ntp
Name : ntp
Version : 4.2.8.p9-2
# systemctl status | grep -m1 State:
State: running
问题解决了。降级至ntp-4.2.8.p9-2就是解决方案。感谢您的帮助并提供相应的资源。
答案1
这看起来像这个错误内容如下:
4.2.8.p10-1 显然已被 openssl 重建替换为 4.2.8.p9-2。
我假设OpenSSL 更新的重建已经上演了足够长的时间,可以同时被取代新上游版本的更新,但是当 OpenSSL 重建从暂存阶段转移到社区时,版本号较低的软件包替换为版本号较高的软件包。
编辑:看起来像4.2.8.p10-2已上传以纠正这种情况。