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 - 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. - 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 r...@zeus.xxx.com.br:/usr/obj/usr/src/sys/GONDIM amd64 Parabéns à todos da Comunidade FreeBSD pelo excelente trabalho feito! ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd