移至主內容
DarkRanger's Secret Area

主導覽

  • 首頁
  • 關於本站
  • Linux
  • 程式開發
  • N900
  • 譯文
  • 資訊技術辭典

文章分類

  • 影劇
  • 遊戲
  • 筆記
  • 雜文
  • 資訊技術
  • 站務訊息

最新內容

  • Fedora 42 安裝 OpenSSL 1.1
  • 關於本站改版的其它替代方案
  • 半途而廢的未破台單機遊戲列表
  • The Big Picture (1997)
  • How-To:Linux 安裝 DevilutionX
  • 於 2012 年建立的一份音樂播放清單
  • How-To:Linux 安裝 Medal of Honor: Allied Assault
  • Fallout 4 (2015)
  • How-To:Linux 安裝 Blood
  • 《終極動員令》系列早期作品原始碼釋出

Fedora 42 安裝 OpenSSL 1.1

發表日期:星期四, 06/05/2025 - 22:20

每到報稅季就要在電腦上插健保卡來驗證身份及報稅,這已經是每年固定會做的事。然而由於 DR 在家裡最主要使用的桌機系統,大概也是每年都會換裝一個 Fedora 發行版。所以 Linux 版本的健保卡驗證程式(mLNHIICC)及其依賴套件都得再重裝一次(相關文章見此)。於是在今年安裝了 Fedora 42 後,其實又是再一次面臨了 mLNHIICC 程式相依性無法直接滿足的情形。因為即便是 mLNHIICC 的 20240710.1 版本,也仍然依賴於已經停止維護的 OpenSSL 函式庫 1.x 版。在 mLNHIICC 安裝完畢後,可使用以下指令的輸出結果來確認此情形,若缺少該函式庫也就實際上無法執行起來:

  • ldd /usr/local/share/NHIICC/mLNHIICC

 

已知 openssl1.1 套件自 Fedora 40 起便已停止供應,Fedora 39 是最後一個存在此套件的 Fedora 發行版。不過以整個 Red Hat 生態體系來說,提供相對長期維護支援的 RHEL 發行版(及其複製品),則是直至 RHEL 9 為止都依然有提供此套件版本(套件名稱為 compat-openssl11),是到了最近發佈的 RHEL 10 才就此移除。

 

由於台灣的 Linux 桌面系統使用者,比例上而言估計是一個小眾到不行的族群,而且當中多數人口應該也並不排斥在一旦需要時,使用其它如 Windows、macOS 這類更加主流的桌面作業系統。因此 DR 個人對於健保卡驗證程式有支援 Linux 平台已是覺得慶幸,並不太要求對於各 Linux 發行版的特性必須有更加敏銳的應對及支援。

 

所以缺了什麼就自行把它裝起來吧,而這回 DR 覺得應該要再留下一點個人筆記,於是會陳述以下的操作流程。下列步驟並非是意圖追求所謂的最佳實踐,就只是眾多可行性的其中一種方式:

  • sudo dnf install rpm-build make gcc zlib-devel lksctp-tools-devel
  • wget https://download.fedoraproject.org/pub/fedora/linux/releases/39/Everything/source/tree/Packages/o/openssl1.1-1.1.1q-5.fc39.src.rpm
  • rpm -ivh openssl1.1-1.1.1q-5.fc39.src.rpm
  • sed -i -e "s/%patch/%patch /g" rpmbuild/SPECS/openssl1.1.spec
  • rpmbuild -ba rpmbuild/SPECS/openssl1.1.spec
  • sudo dnf install ./rpmbuild/RPMS/x86_64/openssl1.1-1.1.1q-5.fc42.x86_64.rpm

 

倘若前述步驟皆執行無誤,應能夠成功編譯出 openssl1.1 套件並安裝起來。其中的 sed 指令,就是在 openssl1.1.spec 裡的每個 %patch 後面統一多加一個空格,以避免後續執行 rpmbuild 指令時出現「%patchN is obsolete, use %patch N (or %patch -P N): %patch1 -p1 -b .build」錯誤。那麼其實以桌面系統來說,用任一圖形介面的文字編輯器做全域搜尋、取代,也有相同的效果,因此對這項步驟做指令化的操作並不是必要的。

 

筆記