2023年8月14日 星期一

build apache http server 2.4.x rpm package on centos 7

目前系統上跑的是httpd-2.4.52,但在codeit上並沒有提供httpd-2.4.57讓我升版。

之前依習慣就自己下載tarball來編譯安裝,但這一次在做OpenSSH升版時想到可以用rpmbuild做rpm檔來裝。所以就想在httpd上也如法泡製。

1、下載檔案至rpmbuild的SOURCE目錄,我的目錄本來就有..可能之前就有玩過了..

為了保險,還是先做目錄:(先yum install rpm-build 然後還是要自己建目錄)

mkdir -p /root/rpmbuild/SOURCES

cd /root/rpmbuild/SOURCES

接著把檔案下載回來:

wget https://dlcdn.apache.org/httpd/httpd-2.4.57.tar.bz2

2、把apr及apr-util的rpm裝起來

3、把該裝的東西補一補:
yum install autoconf libuuid-devel lua-devel libxml2-devel wget rpm-build autoconf zlib-devel libselinux-devel libuuid-devel pcre-devel openldap-devel lua-devel libxml2-devel  openssl-devel apr-devel postgresql-devel mysql-devel sqlite-devel  unixODBC-devel nss-devel expat-devel mailcap libtool gcc-toolset-11-gcc
4、來做RPM檔,如果過程中有錯誤訊息,應該就是有東西沒有裝到。
像我在nm卡了一下,才發現是gcc-toolset-11-gcc沒有裝。
rpmbuild -tb httpd-2.4.57.tar.bz2
5、把rpm檔裝起來:
cd /root/rpmbuild/RPMS/x86_64
dnf localinstall httpd-2.4.57-1.x86_64.rpm httpd-devel-2.4.57-1.x86_64.rpm httpd-manual-2.4.57-1.x86_64.rpm
這樣就好了。

其實他也是用tarball幫你編譯安裝,但好處是你不用再考慮路徑的問題。
例如我在用tarball安裝時,bin檔如果沒有指定目錄,會裝在/usr/local/bin,但用rpm安裝,就會在/usr/bin 這樣日後要移除或升版的話,在管理時會輕鬆很多。






沒有留言:

張貼留言