September 26, 2005

[備忘] OpenVPN on CentOS 4 (part 2)

時光飛逝,上次寫[備忘] OpenVPN on CentOS 4已經是兩個月前的事了。"OpenVPN on CentOS 4"這件事終於又推進了一步。底下的紀錄,包含失敗的部份以及成功的紀錄。即便是成功的紀錄,也忠實的留下了跌跌撞撞的過程,希望讓大家感受一下,在CentOS 4的最小安裝上面再安裝套件的難度/容易度。至於到底是難是易,這就看妳對系統的熟悉度囉。

[嘗試以Binary RPM安裝的失敗紀錄]
OpenVPN官方網站並不提供RPM binary,它建議妳可以去Dag Wieers維護的站台下載。底下有 # 開頭的表示是以 root 權限執行的指令,括號則是自己加的說明。

(如果妳的環境不需要proxy,底下這行可以免了)
# export http_proxy=http://proxy.my.company:3128/
(我用 wget 這個指令來下載檔案,因為RHEL/CentOS沒有提供lzo套件,所以一併下載)
# wget http://dag.wieers.com/packages/lzo/lzo-2.00-1.2.el4.test.i386.rpm
# wget http://dag.wieers.com/packages/openvpn/openvpn-2.0.2-1.2.el4.rf.i386.rpm
(用rpm -ivh來安裝套件, lzo順利裝好)
# rpm -ivh lzo-2.00-1.2.el4.test.i386.rpm
(但是要裝openvpn的時候就...)
# rpm -ivh openvpn-2.0.2-1.2.el4.rf.i386.rpm
(遇上了相依性的問題:failed dependency: need liblzo.so.1)
(看了一下,lzo安裝套件提供的是liblzo.so.2.0.0,做個symbolic link試試看能不能騙過系統)
# cd /usr/lib
# ln -s liblzo.so.2.0.0 liblzo.so.1
# rpm -ivh openvpn-2.0.2-1.2.el4.rf.i386.rpm
(還是不行,決定放棄這條路,移掉lzo rpm binary)
# rpm -e lzo
(寫了個email給Dag,向他反應他包的lzo和openvpn這個相依性問題)

[從原始碼編譯RPM的成功紀錄]
根據官網http://openvpn.net/faq.html#rpmbuild,它說要自行編譯的話,需要有下列四個套件:
* openssl
* openssl-devel
* lzo
* lzo-devel
因為我當初在安裝CentOS 4的時候選的是最小安裝,系統裡面只有openssl,因此接下來要準備上述相依性套件。後來發現我至少還需要另外三個套件,在這邊賣個關子,往下看就有答案啦。
(先來安裝openssl-devel)
# yum -y install openssl-devel
(由於我用了 -y 這個參數,所以系統不會問我問題,會自動把相依性套件--對,為了裝openssl-devel還要先裝其他的套件--都下載並安裝)
(妳會看到類似這樣的訊息
Installed: openssl-devel.i386 0:0.9.7a-43.2
Dependency Installed: e2fsprogs-devel.i386 0:1.35-12.1.EL4 krb5-devel.i386 0:1.3.4-17 zlib-devel.i386 0:1.2.1.2-1.2)
(下載lzo-devel套件)
# wget http://dag.wieers.com/packages/lzo/lzo-devel-2.00-1.2.el4.test.i386.rpm
(安裝lzo, lzo-devel)
# rpm -ivh lzo-2.00-1.2.el4.test.i386.rpm
# rpm -ivh lzo-devel-2.00-1.2.el4.test.i386.rpm
接下來參考官網Download下載原始碼,目前是2.0.2
# wget http://openvpn.net/release/openvpn-2.0.2.tar.gz
(接下來我花了一點時間,研究為什麼我的系統沒有rpmbuild,也許是問Google的關鍵字下的不好,最後是用底下這個指令去查詢,有哪些套件是rpm開頭的)
# yum list rpm*
(原來這個套件名稱叫做rpm-build)
# yum -y install rpm-build
(好,相依套件應該到齊了,使用rpmbuild來編譯吧)
# rpmbuild -tb openvpn-2.0.2.tar.gz
(還是失敗,需要pam-devel,那就裝吧)
# yum -y install pam-devel
(再來一次)
# rpmbuild -tb openvpn-2.0.2.tar.gz
(又失敗,這次告訴我"no acceptable C compiler found in $PATH",原來CentOS 4最小安裝連gcc都沒包含啊,那就裝吧!)
# yum -y install gcc
(嗯,為了裝gcc,還幫我裝了一堆
Installed: gcc.i386 0:3.4.3-22.1
Dependency Installed: cpp.i386 0:3.4.3-22.1 glibc-devel.i386 0:2.3.4-2.9 glibc-headers.i386 0:2.3.4-2.9 glibc-kernheaders.i386 0:2.4-9.1.87)
(再試一次!)
# rpmbuild -tb openvpn-2.0.2.tar.gz
(成功了,一堆編譯的訊息,最後幾行應該會有一行類似底下的,也就是編譯出來的RPM binary)
Wrote: /usr/src/redhat/RPMS/i386/openvpn-2.0.2-1.i386.rpm
(好啦,終於可以安裝openvpn了)
# rpm -ivh /usr/src/redhat/RPMS/i386/openvpn-2.0.2-1.i386.rpm

所以,謎底揭曉,除了官網提到的,我還需要這些套件,才能編譯OpenVPN:
* pam-devel
* rpm-build
* gcc


就這樣!?
對啊,我只說要往前推進一步,這次弄好了「安裝」,下次再來弄「設定」囉!
^_^

想打我的人請不要打我,直接去看網中人的OpenVPN 建置方案,就是在CentOS 4上面裝OpenVPN 2.0.2,跟我的環境一模一樣 :p

Posted by ystuan at September 26, 2005 03:00 PM
Pings
Comments

設定也完成了!請參考
[備忘] OpenVPN on CentOS 4 (part 3)
http://blog.linux.org.tw/~ystuan/archives/001335.html

Posted by: PowerOp at October 18, 2005 02:53 PM