由于 libcrypto.so.1.0.0(已安装 1.1)依赖性,ntp-4.2.8.p10-1 升级后失败,并希望降级到 4.2.8.p9-2。这有什么意义呢?

由于 libcrypto.so.1.0.0(已安装 1.1)依赖性,ntp-4.2.8.p10-1 升级后失败,并希望降级到 4.2.8.p9-2。这有什么意义呢?

免责声明:

这确实不是对我的系统稳定运行至关重要的主要问题,但我问这个问题是因为我根本无法理解它,我真的很想知道这里发生了什么。


我正在运行一个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已上传以纠正这种情况。

相关内容