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

Paulo Henrique BSD Brasil paulo.rddck em bsd.com.br
Sábado Dezembro 3 14:20:20 BRST 2011


Em 03/12/2011 12:32, Cleyton Agapito escreveu:
> 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
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
Cleyton, não generalize, Microsoft Windows por exemplo faz coisa muito 
mais complicada e com quase 100% de acerto em estações de usuário final 
que são bem mais complexas.
Realmente BSDs não foram desenvolvidos para interfaces bonitas, mais sim 
para funcionalidades efetivas.
Tive um problema no passado com o portupgrade, apos uma mensagem na 
lista deu para ver que o postmaster realmente é bem superior ao portupgrade.
Abraçoes Gondim e ótimo relato !!!

Att.

-- 
"Quando a Morte decide contar uma historia,
A melhor ação que possa fazer é ouvi-la,
e torcer por não ser a sua própria a tal história."

Paulo Henrique.
Analista de Sistemas / Programador
BSDs Brasil.
Genuine Unix/BSD User.
Fone: (21) 9683-5433.




Mais detalhes sobre a lista de discussão freebsd