Problemas de compatibilidade na atualização
Este problema surge com maior frequência, quando surge uma mudança de versão. Como exemplo, a atualização do PHP 5.3 para 5.4, pois na mudança de versão, muitas funções são abandonadas e são criadas outras funções mais eficientes e seguras do que a versão anterior, porém, muitas vezes o código não acompanha estas mudanças.
Recentemente tive um problema, estava usando o Joomla na versão 1.5.26, que possui compatibilidade com o PHP 5.3 porém, quando atualizar para o PHP 5.4, várias coisas pararam de funcionar por perda de compatibilidade.
Nestes casos, a decisão do administrador é não atualizar a máquina, porém, existem outros pacotes que necessitam de atualização para que o servidor mantenha a segurança e estes, são renegados em detrimento de um ou outro pacote.
Um caso recente divulgado, foi a falha de segurança do openSSL, muitos administradores ainda não atualizaram seus servidores com medo de prejudicar as outras aplicações que rodam no servidor.
Vou ensinar neste artigo, uma forma simples de manter seu servidor atualizado e prevenir que alguns pacotes sejam atualizados, não prejudicando a compatibilidade de alguma aplicação.
Levantamento de pacotes
Primeiramente, levante quais os pacotes que você precisa que não sejam atualizados.
Faça o seguinte:
# dpkg -l | grep pacote
Vou utilizar como exemplo, os pacotes do PHP5, mas poderá ser qualquer pacote que você deseja que não seja atualizado.
# dpkg -l | grep php
libapache2-mod-php5
php5-common
php5-curl
php5-gd
php5-mysql
etc….
Nesta fase, tente não esquecer de nenhum pacote que não quer que seja atualizado.
Ocultando pacotes da atualização, usando dpkg
Agora, vamos ocultar os pacotes da atualização. Existem várias formas de fazer isso, vou apresentar todas aqui:
Primeira forma- Ocultando o pacote da atualização:
# echo “nome_do_pacote hold” | sudo dpkg –set-selections
Exibir o pacote para atualização:
# echo “nome_do_pacote install” | sudo dpkg –set-selections
Exibindo o status dos pacotes:
# dpkg –get-selections
Exibindo o status de um pacote:
# dpkg –get-selections | grep “nome_do_pacote”
Ocultando pacotes da atualização, usando apt
Segunda forma- Ocultando pacotes da atualização:
# apt-mark hold nome_do_pacote
Exemplo:
# apt-mark hold libapache2-mod-php5 php5-common php5-curl php5-gd php5-mysql
Exibindo pacote para atualização:
# sudo apt-mark unhold nome_do_pacote
Exemplo:
# apt-mark unhold libapache2-mod-php5 php5-common php5-curl php5-gd php5-mysql
Ocultando pacotes da atualização, usando aptitude
Terceira forma- Ocultando pacotes da atualização:
# aptitude hold nome_do_pacote
Exemplo:
# aptitude hold libapache2-mod-php5 php5-common php5-curl php5-gd php5-mysql
Exibindo pacote para atualização:
# aptitude unhold nome_do_pacote
Exemplo:
# aptitude unhold libapache2-mod-php5 php5-common php5-curl php5-gd php5-mysql
Espero que este artigo possa ajudar a manter seu servidor sempre atualizado e sem problemas de incompatibilidade.
Deixar um comentário