Arch-Linux

ntp-4.2.8.p10-1 在升級後由於 libcrypto.so.1.0.0(安裝 1.1)依賴而失敗,並希望降級到 4.2.8.p9-2。這有什麼意義?

  • April 24, 2017

免責聲明:

這確實不是我係統穩定執行的關鍵問題,但我問這個問題是因為我根本無法理解它,我真的很想知道這裡發生了什麼。


我正在執行一個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是解決方案。感謝您的幫助並提供相應的資源。

這看起來像這個錯誤,內容如下:

4.2.8.p10-1 顯然已被 openssl 重建替換為 4.2.8.p9-2。

我假設OpenSSL 更新的重建在暫存的時間足夠長,可以同時被新上游版本的更新所取代,但是當 OpenSSL 重建從暫存轉移到社區時,版本號較低的包被替換具有較高的那個。

編輯:看起來4.2.8.p10-2已經上傳以糾正這種情況。

引用自:https://unix.stackexchange.com/questions/361028