你驚訝嗎?我也很驚訝,撰文時間 2023 年我還需要用到 RHEL4?反正既然都遇到了,那就順便紀錄紀錄,不過倒底什麼時候會用到呢?搞不好寫這篇文章其實就是在浪費我時間吧。
總之,這篇沒有什麼重點,主要就是紀錄我在 RHEL4 要執行 Rsyslog 但 Repo 早就關光光,只能從 SourceCode 自己編譯的過程。
一層一層解開相依關係,最後完成安裝,折騰自己的紀錄。
前情提要
因為工作需要(沒錯,老公司老機器老系統死不更新),所以要在 RHEL4 上安裝 Rsyslog,也就因為出現了這篇文。不過在這篇文章我採用比較比我當時處理還要再完整一點的作法去處理,畢竟我也不敢動系統東西太多,保守一點。
後來自己弄了一個虛擬機環境出來,用 RHEL4 全新安裝,一些 devel package,應該會是符合當時的環境,於是就開始囉。
必要的套件包
如圖片所示,需要的套件包有以下:
都下載完成後,我將他們解壓縮到另一個資料unpack
中。
Rsyslog 第一次見面
編譯步驟
OK,進到這部份,最簡單的部份結束了(笑),接下來才是困難的地方。
首先要先進入到rsyslog
的資料夾內,然後編譯步驟基本上大同小異:
./configure
make
make install
That’s ALL.
於是乎,開始進行第一步驟吧!
configure 失敗?
沒想到第一個難題馬上就遇到了,事情總是沒想像中順利,不過,這都不是大問題,它很明確跟你說哪裡有問題對吧?我們再看一次圖片:
Package requirements (libestr >= 0.1.9) were not met:
No package 'libestr' found
聰明的各位應該知道問題在哪吧?沒錯,把libestr
安裝進去就可以囉。不過事情總不是想像中那麼順利,是吧?
因為 RHEL4 是一個上古版本,你在網路上都沒有辦法找到還有在維護的 repo,所以你只剩下手動編譯一途,讓我們繼續吧!
解決相依問題
沒有特別的步驟,就參照上述編譯步驟對以下每一個進行編譯安裝。
libestr
一樣進入到libestr
資料夾中編譯安裝它。
rsyslog
去 configure 它:
OK,這次換成了 libfastjson
,那一樣繼續下去囉!
libfastjson
進入到libfastjson
資料夾中編譯安裝它。
rsyslog
去 configure 它:
這次是 uuid
,有在往前推進度呢!持續下去!
libuuid
因為libuuid
是util-linux
中的一部分,所以這是進去的資料夾不一樣。
進入到util-linux
資料夾中編譯安裝它。
不過因為util-linux
裡面有很多東西,我只要libuud
,所以 configure 參數要改一下:
./configure --disable-all-programs --enable-libuuid
rsyslog
去 configure 它:
訊息好像不一樣?不過沒關係,還是可以看出端倪,去找libgcrypt
玩吧!
libgcrypt
進入到libgcrypt
資料夾中編譯安裝它。
make
只有跟你說他需要libgpg-error
而已,先是試看吧!
案外案 libgpg-error
進入到libgpg-error
資料夾中編譯安裝它。
libgcrypt
吧。OK 收工,大家可以下班了(誤)。
還記得剛剛卡在缺少
libgcrypt
的話,那繼續編譯 rsyslog 吧。
是是是,
libcurl
是吧,我知道了知道了。
libcurl
依照慣例去找curl
然後完成你知道該做的事情。
不過這裡要注意一下,因為CURL
跟 TLS 連線有關,所以你要手動跟他說你要找誰的 SSL 套件參照,這裡用最方便系統有的openssl
處理,所以 configure 指令會變成:
./configure --with-openssl
回到編譯rsyslog
編譯,如果你直接下./confiugre
的話應該還是會出現錯誤:
/lib
中有找到,就不會去找我們自己編譯的/usr/local/lib
,也就是這樣。因此我們要手動跟他說「誒!CURL在這裡,去這裡找!」
把./configure
參數前面增加變數,變成:
CURL_LIBS=/usr/local/lib/ CURL_CFLAGS="-I/usr/local/lib/" ./configure
這樣就會成功了。
Rsyslog 終局
真高興看到他可以噴版本給我,堂堂正正
Rsyslog 8.2304.0
在 RHEL4 上的 i686 架構。辛苦各位了。(鞠躬)
錯誤訊息?
上途中第一行還是有錯誤,那個沒問題嗎?
恩…那是因為在/lib/tls/
中放著 RHEL4 自己的 lib,優先順序似乎高於所有,暫時我也沒有找到解決方法,不過手動ln
過去的話就會正常,會不會影響到整個系統我就不確定了(逃)。
結語
其實我這篇超級亂寫,很多東西略過,像是看到 Rsyslog 裡面的很多功能支援,如果要啟用應該要編很多東西,所以最後我就只是給一個很基本可以用的 Rsyslog 出來,反正就交差了事(攤手)。
剩下有興趣就請各位自己弄啦,大致上都大同小異就是了。
下台一鞠躬。
文章於 2023-06-04 01:45 更新