- Entrou
- Set 19, 2006
- Mensagens
- 7,829
- Gostos Recebidos
- 67
Recentemente um cliente precisou realizar uma atualização no seu servidor para atender as exigências de um sistema novo. A princípio a tarefa parecia ser simples, atualizar o Mysql e PHP para a versão 5 de ambos no Fedora Core 4.
Depois de pesquisar no google percebi que eu precisaria de um pouco mais do que “yum update && yum install mysql” para fazer as coisas funcionarem.
O primeiro passo foi obviamente fazer um dump de todos os bancos da versão corrente de modo a recriar os bancos caso necessário. Logo após parei o mysql e o desinstalei.
# mysqldump -A > /tmp/dump.sql (use as opções -p para senha e -u para usuário)
# /etc/init.d/mysql stop
# yum remove mysql
O próximo passo é baixar e compilar o RPM.SRC (pacote que contém o source do programa). A versão que utilizei foi a MySQL-5.0.24a-0.
# cd /tmp
# wget http://mysql.mirrors.ilisys.com.au/Downloads/MySQL-5.0/MySQL-5.0.24a-0.src.rpm
# rpmbuild –rebuild MySQL-5.0.24a-0.src.rpm
Antes de instalar a nova versão do Mysql é necessário lidar com alguns pacotes incompatíveis. Eles são:
# rpm -e php-mysql perl-DBD-MySQL mod_auth_mysql MySQL-embedded
# cd /usr/src/redhat/RPMS/i386/
# rpm -Uvh MySQL-shared-5.0.24a-0.glibc23.i386.rpm
# rpm -ivh MySQL-server-5.0.24a-0.glibc23.i386.rpm
# rpm -Uvh MySQL-client-5.0.24a-0.glibc23.i386.rpm
# rpm -Uvh MySQL-bench-5.0.24a-0.glibc23.i386.rpm
Baixe e instale o source do php. Será necessário editar o arquivo .spec para alterar uma dependência.
# wget # ftp://rpmfind.net/linux/fedora/core/updates/4/SRPMS/php-5.0.4-10.5.src.rpm
# rpm –install php-5.0.4-10.5.src.rpm# vi /usr/src/redhat/SPECS/php.spec
mysql-devel >= 4.1.0
Ao tentar executar a compilação do php é possível perceber que algumas dependências devem ser resolvidas antes. Alguns pacotes podem ser instalados com o yum, outros precisam ser instalados via rpm pois o yum se recusa a encontrá-los.
O primeiro pacote que não foi possível instalar com o yum foi o httpd-devel. O pacote de desenvolvimento e também as suas dependências podem ser encontradas também no rpmfind.
# cd /tmp# wget ftp://rpmfind.net/linux/fedora/core/updates/4/i386/httpd-devel-2.0.54-10.4.i386.rpm
# wget ftp://rpmfind.net/linux/fedora/linux/core/updates/4/i386/pcre-devel-5.0-4.1.fc4.i386.rpm
# wget ftp://rpmfind.net/linux/pub/fedora/linux/core/updates/4/i386/apr-devel-0.9.6-3.5.i386.rpm
# wget ftp://rpmfind.net/linux/fedora/core/4/i386/os/Fedora/RPMS/apr-util-devel-0.9.6-2.i386.rpm
# rpm -ivh pcre-devel-5.0-4.1.fc4.i386.rpm
# rpm -ivh apr-devel-0.9.6-3.5.i386.rpm
# rpm -ivh apr-util-devel-0.9.6-2.i386.rpm
# rpm -ivh httpd-devel-2.0.54-10.4.i386.rpm
Outras dependências precisam ser resolvidas para compilar o PHP a menos que seu suporte seja removido no arquivo SPEC
# yum install postgresql
#wget ftp://rpmfind.net/linux/fedora/linux/core/updates/4/i386/postgresql-devel-8.0.8-1.FC4.1.i386.rpm
# rpm -ivh postgresql-devel-8.0.8-1.FC4.1.i386.rpm
# wget ftp://rpmfind.net/linux/fedora/linux/core/updates/4/i386/unixODBC-devel-2.2.11-3.FC4.1.i386.rpm
# wget ftp://rpmfind.net/linux/fedora/linux/core/updates/4/i386/unixODBC-2.2.11-3.FC4.1.i386.rpm
# rpm -ivh unixODBC-2.2.11-3.FC4.1.i386.rpm
# rpm -ivh unixODBC-devel-2.2.11-3.FC4.1.i386.rpm
# yum install net-snmp
# yum install net-snmp-devel
# rpm -ivh lm_sensors-2.9.1-3.FC4.2.i386.rpm
# wget ftp://rpmfind.net/linux/fedora/core/4/i386/os/Fedora/RPMS/dmidecode-2.6-1.14.i386.rpm
# wget ftp://rpmfind.net/linux/fedora/core/4/i386/os/Fedora/RPMS/beecrypt-devel-4.1.2-8.i386.rpm
# wget ftp://rpmfind.net/linux/fedora/core/4/i386/os/Fedora/RPMS/elfutils-devel-0.108-1.i386.rpm
# wget ftp://rpmfind.net/linux/fedora/core/4/i386/os/Fedora/RPMS/elfutils-libelf-devel-0.108-1.i386.rpm
# wget ftp://rpmfind.net/linux/fedora/core/4/i386/os/Fedora/RPMS/libxslt-devel-1.1.14-2.i386.rpm
# wget ftp://rpmfind.net/linux/fedora/core/4/i386/os/Fedora/RPMS/libgcrypt-devel-1.0-2.i386.rpm
# wget ftp://rpmfind.net/linux/fedora/core/4/i386/os/Fedora/RPMS/libgpg-error-devel-1.0-2.i386.rpm
# rpm -ivh dmidecode-2.6-1.14.i386.rpm
# rpm -ivh beecrypt-devel-4.1.2-8.i386.rpm
# rpm -ivh elfutils-devel-0.108-1.i386.rpm
# rpm -ivh elfutils-libelf-devel-0.108-1.i386.rpm
# rpm -ivh libxslt-devel-1.1.14-2.i386.rpm
# rpm -ivh libgcrypt-devel-1.0-2.i386.rpm
# rpm -ivh libgpg-error-devel-1.0-2.i386.rpm
Após instalar todos os pacotes necessários é possível compilar o PHP
# rpmbuild -bb /usr/src/redhat/SPECS/php.spec –nodeps
Após a compilação é possível instalar os pacotes do php gerados em /usr/src/redhat/RPMS/i386/ mas antes é necessário desinstalar os equivalentes da versão instalada.
# rpm -qa|grep -i php# rpm -e php-ldap
# rpm -e php-mysql# rpm -e php-pear –nodeps
# rpm -e php# rpm -ivh php-5.0.4-10.5.i386.rpm
# rpm -ivh php-pear-5.0.4-10.5.i386.rpm
# rpm -ivh php-mysql-5.0.4-10.5.i386.rpm
Fim das instalações. É possível que seja necessário editar o httpd.conf para alterar a referência da biblioteca do php, logo após reinicie o apache.
vi /etc/httpd/conf/httpd.conf
LoadModule php5_module modules/libphp5.soAddHandler php5-script .php
/etc/init.d/httpd restart
Depois de pesquisar no google percebi que eu precisaria de um pouco mais do que “yum update && yum install mysql” para fazer as coisas funcionarem.
O primeiro passo foi obviamente fazer um dump de todos os bancos da versão corrente de modo a recriar os bancos caso necessário. Logo após parei o mysql e o desinstalei.
# mysqldump -A > /tmp/dump.sql (use as opções -p para senha e -u para usuário)
# /etc/init.d/mysql stop
# yum remove mysql
O próximo passo é baixar e compilar o RPM.SRC (pacote que contém o source do programa). A versão que utilizei foi a MySQL-5.0.24a-0.
# cd /tmp
# wget http://mysql.mirrors.ilisys.com.au/Downloads/MySQL-5.0/MySQL-5.0.24a-0.src.rpm
# rpmbuild –rebuild MySQL-5.0.24a-0.src.rpm
Antes de instalar a nova versão do Mysql é necessário lidar com alguns pacotes incompatíveis. Eles são:
- php-mysql
- perl-DBD-MySQL
- mod_auth_mysql
- MySQL-embedded
# rpm -e php-mysql perl-DBD-MySQL mod_auth_mysql MySQL-embedded
Para listar os pacotes incompatíveis tente realizar a instalação com rpm -ivh MySQL-server-5.0.24a-0.glibc23.i386.rpm
# cd /usr/src/redhat/RPMS/i386/
# rpm -Uvh MySQL-shared-5.0.24a-0.glibc23.i386.rpm
# rpm -ivh MySQL-server-5.0.24a-0.glibc23.i386.rpm
# rpm -Uvh MySQL-client-5.0.24a-0.glibc23.i386.rpm
# rpm -Uvh MySQL-bench-5.0.24a-0.glibc23.i386.rpm
Baixe e instale o source do php. Será necessário editar o arquivo .spec para alterar uma dependência.
# wget # ftp://rpmfind.net/linux/fedora/core/updates/4/SRPMS/php-5.0.4-10.5.src.rpm
# rpm –install php-5.0.4-10.5.src.rpm# vi /usr/src/redhat/SPECS/php.spec
mysql-devel >= 4.1.0
Ao tentar executar a compilação do php é possível perceber que algumas dependências devem ser resolvidas antes. Alguns pacotes podem ser instalados com o yum, outros precisam ser instalados via rpm pois o yum se recusa a encontrá-los.
O primeiro pacote que não foi possível instalar com o yum foi o httpd-devel. O pacote de desenvolvimento e também as suas dependências podem ser encontradas também no rpmfind.
# cd /tmp# wget ftp://rpmfind.net/linux/fedora/core/updates/4/i386/httpd-devel-2.0.54-10.4.i386.rpm
# wget ftp://rpmfind.net/linux/fedora/linux/core/updates/4/i386/pcre-devel-5.0-4.1.fc4.i386.rpm
# wget ftp://rpmfind.net/linux/pub/fedora/linux/core/updates/4/i386/apr-devel-0.9.6-3.5.i386.rpm
# wget ftp://rpmfind.net/linux/fedora/core/4/i386/os/Fedora/RPMS/apr-util-devel-0.9.6-2.i386.rpm
# rpm -ivh pcre-devel-5.0-4.1.fc4.i386.rpm
# rpm -ivh apr-devel-0.9.6-3.5.i386.rpm
# rpm -ivh apr-util-devel-0.9.6-2.i386.rpm
# rpm -ivh httpd-devel-2.0.54-10.4.i386.rpm
Outras dependências precisam ser resolvidas para compilar o PHP a menos que seu suporte seja removido no arquivo SPEC
# yum install postgresql
#wget ftp://rpmfind.net/linux/fedora/linux/core/updates/4/i386/postgresql-devel-8.0.8-1.FC4.1.i386.rpm
# rpm -ivh postgresql-devel-8.0.8-1.FC4.1.i386.rpm
# wget ftp://rpmfind.net/linux/fedora/linux/core/updates/4/i386/unixODBC-devel-2.2.11-3.FC4.1.i386.rpm
# wget ftp://rpmfind.net/linux/fedora/linux/core/updates/4/i386/unixODBC-2.2.11-3.FC4.1.i386.rpm
# rpm -ivh unixODBC-2.2.11-3.FC4.1.i386.rpm
# rpm -ivh unixODBC-devel-2.2.11-3.FC4.1.i386.rpm
# yum install net-snmp
# yum install net-snmp-devel
# rpm -ivh lm_sensors-2.9.1-3.FC4.2.i386.rpm
# wget ftp://rpmfind.net/linux/fedora/core/4/i386/os/Fedora/RPMS/dmidecode-2.6-1.14.i386.rpm
# wget ftp://rpmfind.net/linux/fedora/core/4/i386/os/Fedora/RPMS/beecrypt-devel-4.1.2-8.i386.rpm
# wget ftp://rpmfind.net/linux/fedora/core/4/i386/os/Fedora/RPMS/elfutils-devel-0.108-1.i386.rpm
# wget ftp://rpmfind.net/linux/fedora/core/4/i386/os/Fedora/RPMS/elfutils-libelf-devel-0.108-1.i386.rpm
# wget ftp://rpmfind.net/linux/fedora/core/4/i386/os/Fedora/RPMS/libxslt-devel-1.1.14-2.i386.rpm
# wget ftp://rpmfind.net/linux/fedora/core/4/i386/os/Fedora/RPMS/libgcrypt-devel-1.0-2.i386.rpm
# wget ftp://rpmfind.net/linux/fedora/core/4/i386/os/Fedora/RPMS/libgpg-error-devel-1.0-2.i386.rpm
# rpm -ivh dmidecode-2.6-1.14.i386.rpm
# rpm -ivh beecrypt-devel-4.1.2-8.i386.rpm
# rpm -ivh elfutils-devel-0.108-1.i386.rpm
# rpm -ivh elfutils-libelf-devel-0.108-1.i386.rpm
# rpm -ivh libxslt-devel-1.1.14-2.i386.rpm
# rpm -ivh libgcrypt-devel-1.0-2.i386.rpm
# rpm -ivh libgpg-error-devel-1.0-2.i386.rpm
Após instalar todos os pacotes necessários é possível compilar o PHP
# rpmbuild -bb /usr/src/redhat/SPECS/php.spec –nodeps
Após a compilação é possível instalar os pacotes do php gerados em /usr/src/redhat/RPMS/i386/ mas antes é necessário desinstalar os equivalentes da versão instalada.
# rpm -qa|grep -i php# rpm -e php-ldap
# rpm -e php-mysql# rpm -e php-pear –nodeps
# rpm -e php# rpm -ivh php-5.0.4-10.5.i386.rpm
# rpm -ivh php-pear-5.0.4-10.5.i386.rpm
# rpm -ivh php-mysql-5.0.4-10.5.i386.rpm
Fim das instalações. É possível que seja necessário editar o httpd.conf para alterar a referência da biblioteca do php, logo após reinicie o apache.
vi /etc/httpd/conf/httpd.conf
LoadModule php5_module modules/libphp5.soAddHandler php5-script .php
/etc/init.d/httpd restart
Última edição: