On Jan 12, 2012, at 7:49 PM, Enio Marconcini wrote:
> hoje a tarde, por questões de testes, resolvi instalar um 8.2-release, e
> fiz um csup para RELENG_9
> como era apenas para testes, não mudei nada do generic, apenas mandei um
> 'make buildkernel' pra recompilar o generic no objetivo de obter o
> 9.0-Stable, mas obtive um erro que acabei não anotando.
> 
> acabei desistindo, pois queria testar uma instalação a partir da iso do
> 9.0-Release, e estou agora fazendo o csup para amanhã cedo tentar um
> buildkernel e ver os resultados.
> 
> como foi tudo apenas para testes e diversão, após eu testar o 9.0 eu
> pretendo novamente instalar o 8.2 e tentar uma atualização dos fontes para
> fazer o buildkernel, caso ocorra o erro eu vou copiar e posto aqui na lista.
> 

Enio,

Toda instalação a partir dos fontes deve seguir os passos recomendados pelo 
handbook:

http://www.freebsd.org/doc/handbook/makeworld.html

Lembrando que esse processo também já foi extensivamente discutido aqui na 
lista.

O problema mais comum para quem faz a atualização pelos fontes é a falta de 
sincronização do kernel com o userland. E normalmente ela acontece porque as 
pessoas não seguem corretamente o processo descrito no manual.

Eu não aconselho o upgrade do sistemas pelos fontes para os marinheiros de 
primeira viagem. Antes de fazer um upgrade deste, faça seus testes, entenda o 
processo, sinta-se seguro antes de prosseguir com as atualizações em sistemas 
de produção.

Exatamente para facilitar esse processo que foi feito freebsd-update(8): 
http://www.freebsd.org/doc/handbook/updating-upgrading-freebsdupdate.html e 
http://www.FreeBSD.org/cgi/man.cgi?query=freebsd-update&sektion=8

Para quem realmente quer fazer o update pelo fontes, a primeira coisa é 
esquecer o cvsup, csup e partir para o subversion (eu já postei um pequeno guia 
de utilização do svn aqui mesmo na lista).

Já ia me esquecendo do seu problema... hehehe..

O erro aconteceu porque você não executou o processo completo, que passaria 
pelo 'make buildworld' antes do 'make buildkernel'. Bastava seguir o processo 
que você iria conseguir compilar o kernel sem problemas.

O buildworld constroi (compila) as ferramentas utilizadas para compilar o 
sistema (que mais tarde serão utilizadas também pelo buildkernel). Como você 
pulou esse passo ele utilizou as ferramentas já instaladas no seu sistema (que 
provavelmente falhou em compilar o suporte a alguma nova extensão).

Dessa forma o buildworld compila, por exemplo, duas vezes o gcc, uma para criar 
o compilador que será utilizado para compilar (pela segunda vez) o gcc que será 
instalado pelo 'installworld'.

Embora a primeira vista isso pareça uma enorme perda de tempo, é Isso que 
permite o cross-compiling para outras arquiteturas. O primeiro gcc é compilado 
para ser executado na sua plataforma mas de forma a criar código que será 
executado em outra plataforma.

Assim o primeiro compilador roda em i386, mas gera código para x64, ARM, MIPS, 
PPC, etc.

Com esse toolkit construído na hora, o sistema termina de compilar todos os 
fontes para a plataforma desejada (que nem precisa ser uma plataforma 
diferente).

Espero que essa descrição ajude na compreensão do processo.

Att.,
Luiz




-------------------------
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd

Responder a