Budowa i instalacja pakietów Apache 2.4.2 na CentOS 6.2
Napisał: Patryk Krawaczyński
08/06/2012 w Administracja Brak komentarzy. (artykuł nr 353, ilość słów: 405)
B
udowa i instalacja pakietów RPM serwera Apache z rodziny 2.4 na darmowej wersji systemu RedHat – CentOS oprócz wydania kilku poleceń wymaga jeszcze spełnienia wielu zależności, które w standardowej wersji systemu są niestety nieosiągalne. Pierwszym krokiem jest stworzenie środowiska do budowy pakietów RPM:
yum install rpm-build yum install redhat-rpm-config mkdir -p /usr/src/redhat/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS} cd /root ln -s /usr/src/redhat/rpmbuild rpmbuild
Ze względu na wymaganie przez serwer Apache – APR (ang. The Apache Portable Runtime) w wersji wyższej niż 1.4 – drugim krokiem będzie włączenie repozytorium EPEL (ang. Extra Packages for Enterprise Linux) w celu zapewnienia pakietów z zależnościami dla nowszych wersji APR:
wget http://ftp.ps.pl/pub/Linux/fedora-epel/6/i386/epel-release-6-6.noarch.rpm rpm -ivh epel-release-6-6.noarch.rpm yum makecache
Kolejnym krokiem jest ściągnięcie źródeł APR oraz APR-util i instalacja dla nich zależności:
yum install freetds-devel autoconf libtool doxygen
Po instalacji zależności mamy możliwość budowy i instalacji pakietu APR:
cd rpmbuild/SOURCES wget http://www.idg.pl/mirrors/apache/apr/apr-1.4.6.tar.bz2 rpmbuild -tb apr-1.4.6.tar.bz2 cd ../RPMS/i686 rpm -ivh apr-1.4.6-1.i686.rpm rpm -ivh apr-debuginfo-1.4.6-1.i686.rpm rpm -ivh apr-devel-1.4.6-1.i686.rpm
Powyższe kroki powtarzamy dla APR-util, czyli instalacja zależności:
yum install expat-devel libuuid-devel db4-devel postgresql-devel mysql-devel \ sqlite-devel unixODBC-devel openldap-devel openssl-devel nss-devel
Budowa i instalacja pakietu:
cd rpmbuild/SOURCES wget http://www.idg.pl/mirrors/apache/apr/apr-util-1.4.1.tar.bz2 rpmbuild -tb apr-util-1.4.1.tar.bz2 cd ../RPMS/i686 rpm -ivh apr-util\*
W wersji 2.4 serwera Apache wymagany jest również program distcache, który wykorzystywany jest przez moduł mod_cache_socache. Problemem jest, że kompilacja tego programu z źródeł jest niemożliwa ze względu na brak aktualizacji tego projektu i powodowanie błędów podczas próby kompilacji (wcześniej wsparcie dla distcache zostało porzucone już w wersji 2.2.14 serwera Apache). Na szczęście możemy wykorzystać źródłowe pakiety RPM wraz z dodanymi poprawkami z dystrybucji Fedora 17:
wget http://mirror/linux/fedora/development/17/source/SRPMS/d/distcache-1.4.5-23.src.rpm rpm -ivh distcache-1.4.5-23.src.rpm cd rpmbuild/SPECS/ rpmbuild -bb distcache.spec cd ../RPMS/i686 rpm -ivh distcache-1.4.5-23.i686.rpm rpm -ivh distcache-debuginfo-1.4.5-23.i686.rpm rpm -ivh distcache-devel-1.4.5-23.i686.rpm
Ostatnim krokiem w procesie budowy pakietów jest instalacja zależności dla serwera Apache i kompilacja:
yum install pcre-devel lua-devel libxml2-devel rpmbuild -tb httpd-2.4.2.tar.bz2
Jeśli na końcu budowy otrzymamy komunikat błędu:
RPM build errors: Installed (but unpackaged) file(s) found: /usr/share/man/man8/fcgistarter.8.gz
Oznacza to, że plik fcgistarter.8.gz
nie został uwzględniony w pliku httpd.spec
i należy go dopisać – na przykład po pliku rotatelogs.8.gz
:
%{_mandir}/man8/rotatelogs.8* %{_mandir}/man8/fcgistarter.8*
Operacją kończącą cały proces jest instalacja zbudowanych pakietów:
rpm -ivh httpd-tools-2.4.2-1.i686.rpm rpm -ivh httpd-debuginfo-2.4.2-1.i686.rpm yum install mailcap rpm -ivh httpd-2.4.2-1.i686.rpm rpm -ivh httpd-devel-2.4.2-1.i686.rpm rpm -ivh mod_ssl-2.4.2-1.i686.rpm rpm -ivh ../noarch/httpd-manual-2.4.2-1.noarch.rpm
Innymi pakietami, które powstały podczas procesu budowy to:
mod_authnz_ldap-2.4.2-1.i686.rpm mod_lua-2.4.2-1.i686.rpm mod_proxy_html-2.4.2-1.i686.rpm mod_socache_dc-2.4.2-1.i686.rpm
Ich instalacja zależy od funkcjonalności, jakie chcemy uruchomić w naszym serwerze WWW – do podstawowego działania nie są one wymagane.
Więcej informacji: Using Apache With RPM Based Systems