[FUG-BR] Relato de experiência atualizando FreeBSD 8.x para 9.x

Cleyton Agapito cragapito em gmail.com
Sábado Dezembro 3 12:32:51 BRST 2011


Em 3 de dezembro de 2011 10:08, Marcelo Gondim <gondim em bsdinfo.com.br> escreveu:
> Olá Pessoal,
>
> Como sou relativamente novo no mundo do FreeBSD comparado à muitos aqui,
> resolvi fazer a atualização de um servidor meu (particular) que rodava
> FreeBSD 8.2 Stable para a versão 9.0-PREREALEASE e relatar como foi um
> sucesso. Creio que será interessante para aqueles que são novos assim
> como eu, pois estou nessa jornada um pouco mais de 1 ano apenas.
>
> Ambiente convertido:
>
> - FreeBSD 8.2 Stable.
> - Servidor Web Apache 2.2.21
> - PHP5 versão 5.3.8
> - MySQL Server 5.0.92
> - Servidor de Correio configurado pelo projeto IredMail com outras
> melhorias.
>     - Postfix 2.7.7
>     - Clamav 0.97.3
>     - Amavisd-new 2.7.0
>     - Dovecot 1.2.17
>     - Dovecot-managesieve 0.11.13
>     - Dovecot-sieve 1.2+0.1.18
>     - Roundcube 0.6_1
> - FTP com pure-ftpd 1.0.34 com suporte à mysql.
> - Ambiente de virtualização usando Virtualbox-ose 4.0.14
> - Sistema usando ZFS RAIDZ com 4 discos de 500Gb SATA II.
> - Partições do Sistema usando LABELs feito com o glabel para evitar
> mudanças de nomes dos dispositivos que poderia acontecer na migração da
> versão 8 para a 9.
>
> Um ambiente bem legal, meio heterogêneo propício à dar algum problema no
> processo e realmente deu mas foi bem simples de resolver.
>
> - Primeiramente fiz aquele cara que sempre nos salva dos problemas no
> dia-a-dia o chamado Backup. Fiz um backup geral do sistema usando TAR
> para o caso de eu precisar voltar tudo como estava. Na pior das
> hipóteses instalaria a versão 8 do zero e jogaria o TAR por cima e
> pronto. Resolvido.
>
> - Fui para o /usr/src e fiz o csup -g -L2 no meu arquivo sup já alterado
> a tag para o RELENG_9. Nessa hora um lanche caiu muito bem. :)
> - Dei uma olhada no arquivo /usr/src/UPDATING para ver as mudanças recentes.
> - Próximo passo foi fazer o: make buildworld  demorado mas foi
> tranquilo, não deu nenhum erro na compilação, foi perfeito!
> - Quando acabou fui compilar meu kernel: make buildkernel KERNCONF=GONDIM
> - Até aqui imaginei que não fosse dar algum problema, porque nunca tive
> problemas nesses processos, então fiquei tranquilo.
> - Fiz o make installkernel KERNCONF=GONDIM e o make installworld.
>
> - Nesse momento veio a parte que me exigiu mais atenção e de forma
> trabalhosa. Muitos aqui devem ter técnicas para se fazer isso mais
> facilmente mas eu realmente quis ver tudo que estava sendo alterado nas
> confs e scripts e por isso mandei o: mergemaster -i   alguns apelidam
> ele também de merdamaster mas ele não é o vilão fazedor de caca, quem
> faz é quem escolhe o D ou o I HAhAHahA
>

Tá certo que é agora é meio tarde pra dizer isso, mas o mergemaster
tem uma chave F que substitui o arquivo se a diferença for só na
versão (VCS), é uma mão na roda, acelera pra caramba...

> - Olhei todas as confs que foi mostrado, algumas não atualizei porque
> não havia necessidade, outras eu aceitei as alterações e incluí as
> minhas modificações. Enfim, foi um processo demorado, bem demorado mas
> que valeu apena.
>
> - Terminei fazendo o make delete-old e o make delete-old-libs esses
> caras removeram um monte de coisas "obsoletas". Obsoletas para o sistema
> base mas para os pacotes instalados nem tanto. Mas isso era o que eu já
> esperava mesmo. Estamos atualizando para um sistema novo e isso requer
> mudanças em bibliotecas, compiladores, uma série de outros programas.
>

Esse eu nunca tive coragem de fazer, bom saber que dá certo...

> - Após o reboot o sistema entrou normalmente e logicamente todos os
> programas e serviços que eu tinha no servidor não funcionavam mais pois
> haviam sido compilados com libs que não faziam mais parte do sistema.
> Nesse ponto sou muito grato ao Douglas Barton por ter criado o
> portmaster. :D
>
> - Eu precisava recompilar todos os pacotes do sistema. Num passado não
> tão distante tive problemas com o portupgrade e quando conheci e comecei
> à usar o portmaster meus problemas acabaram. Na cara e na coragem mandei
> o comando:
>
> # portmaster -a -f
>
> - Com o comando acima o portmaster identificou todos os pacotes
> instalados no sistema, me mostrou as opções de compilação de cada pacote
> para eu confirmar se queria mudar algo, no final me perguntou se poderia
> atualizar todos os pacotes que me mostrou na relação.
>
> - No meio da atualização tive 1 problema que resultou numa mensagem que
> envolvia o mysql e que precisava de uma lib que não existia mais, que
> poderia resolver o problema e voltar de onde parei. Tudo que fiz para
> resolver o problema foi: portmaster mysql  nesse ponto ele recompilou o
> mysql-client e o mysql-server com as libs novas. Voltei e fiz o comando:
>
> # portmaster -a -f -R   com o -R ele não refez o que já havia feito e
> continuou de onde paramos.
>
> Fiz um ajuste no apache habilitando o mod_auth_mysql e no roundcube
> mudei o dono de 2 confs para www mas isso é normal na atualização do
> roundcube.  :)
>
> Após tudo isso re-iniciei o servidor novamente e todos os serviços
> voltaram à funcionar normalmente. Fiquei impressionado com a qualidade
> de como tudo foi feito e porque normalmente em outros ambientes os
> problemas poderiam ser catastróficos.
>
> O resultado foi esse:
>
> FreeBSD zeus.xxx.com.br 9.0-PRERELEASE FreeBSD 9.0-PRERELEASE #10: Fri
> Dec  2 20:20:23 BRST 2011
> root em zeus.xxx.com.br:/usr/obj/usr/src/sys/GONDIM  amd64
>

Parabéns! Muito bom trabalho. Não conheço nenhum outro SO no mundo que
consiga fazer isso, por isso eu amo o BSD!!!

[]'s


Mais detalhes sobre a lista de discussão freebsd