# Instalação do gentoo

## Giuliani

Pessoal, dentro de um mês vou instalar o gentoo em casa. Pq 1 mês ? infelizmente ainda tenho pendências que dependem do windows, mas estão acabando.

Bom, o fato é o seguinte:

Qdo vou instalar o gentoo ele reconhece a arquitetura do meu computador (athlon-xp ; x86) para fazer a compilação dos pacotes ?

Pretendo usar o stage 1 na instalação pq pelo que li no hand book é onde vc consegue tirar o melhor do gentoo. quais as principais dificuladades usando o stage1 ?

----------

## fernandotcl

Bom, o Gentoo não tem nenhum método de reconhecimento. Se você for fazer um stage 2 ou 3, você tem que escolher o CD de acordo com a arquitetura. Depois, no make.conf você vai colocar as configurações do seu computador, ou seja, ajustar basicamente as CFLAGS e as USE flags. Ajustando as CFLAGS você vai dizer que processador você tem e compilar os pacotes pra esse processador.

Quanto ao stage 1, eu não recomendo. Nunca instalei por esse método, mas é considerado o mais difícil e demorado. Eu sempre instalo por stage 3, isso porque depois de instalado, se quiser, você pode recompilar todos os pacotes enquanto usa o sistema, tendo exatamente o mesmo efeito de uma instalação stage 1.

Você já pensou em fazer dual-boot? Com o dual-boot você poderia instalar o Gentoo pelo VMware, por exemplo, ao mesmo tempo que usa o Windows.

----------

## b0fh_

Eu sempre faço stage1, e, apesar de mais demorado, a dificuldade é a mesma do stage3. Acho até que é mais fácil, porque basta sincronizar a portage e dar um 'emerge system', sem ter que se preocupar com as packages binárias...

Sem falar na possibilidade de customizar as CFLAGS logo no início, o que para mim é um bonus.

Eu só usaria stage3 em um computador muito lerdo (< 1GHz)

cheers.

----------

## fernandotcl

 *b0fh_ wrote:*   

> Sem falar na possibilidade de customizar as CFLAGS logo no início, o que para mim é um bonus.

 

Daria pra fazer stage 1 e depois com um sistema instalado (e CFLAGS configuradas) fazer "emerge -e world". Talvez no seu caso as CFLAGS fazem com que um programa adicional seja instalado?

----------

## b0fh_

Não, os programas são essencialmente os mesmos... Mas eu não sei se gosto desse 'approach' de instalar tudo e depois dar um emerge -e world... Se não me engano, o portage tem algum tipo de distinção entre packages binários e packages compilados, e como todo mundo sabe, o 'emerge world' tem uma série de problemas (ex: não atualiza corretamente as dependências), logo acho que um monte de packages não seriam atualizados. Eu já desisti de dar emerge world, fiz (na verdade meio que copiei/alterei) um script em perl que varre a portage inteira procurando por possíveis atualizações, e depois dou os emerges manualmente... o sistema fica bem mais atualizado deste jeito.

cheers

----------

## Matheus Villela

Eu fiz só uma vez o stage 1 e não gostei, no fim das contas não muda quase nada(o que é mais significante é ter o gcc compilado na sua maquina), eu não recomendo a não ser pra quem quizer ver como é.

Giuliani vai de stage 2, quando tiveres paciência faz uma do stage 1 pra ver como é  :Wink: 

----------

## fernandotcl

 *b0fh_ wrote:*   

> Não, os programas são essencialmente os mesmos... Mas eu não sei se gosto desse 'approach' de instalar tudo e depois dar um emerge -e world... Se não me engano, o portage tem algum tipo de distinção entre packages binários e packages compilados, e como todo mundo sabe, o 'emerge world' tem uma série de problemas (ex: não atualiza corretamente as dependências), logo acho que um monte de packages não seriam atualizados. Eu já desisti de dar emerge world, fiz (na verdade meio que copiei/alterei) um script em perl que varre a portage inteira procurando por possíveis atualizações, e depois dou os emerges manualmente... o sistema fica bem mais atualizado deste jeito.

 

Não existe distinção entre pacotes binários e compilados. Quanto às dependências, basta fazer "emerge -eD world" e elas serão corretamente calculadas.

----------

## Giuliani

Obrigado pelas respostas.

eu estou querendo fazer a partir do stage um pra sofrer mesmo, ter q enter como e por que eu faço as coisas. Fazem um ano q não mexo com linux então acho q vai ser uma pedreira.

Qto ao uso do vmware ou dual boot eu tenho isso. Tenho o debian criando teia em uma partição da minha máquina. O fato é q quero "capar" o windows da minha máquina e reparticionar ela (seguinte a idéia do gentoo de ter partições para boot, principal, home....) criando partições para o diretório home e usr além de um específico para código fonte meu.

inculsive, como eu faço para dizer q o diretório home e usr deve ser referenciados(instalados) em partições diferentes ?

Obrigado.

----------

## b0fh_

 *fernandotcl wrote:*   

> 
> 
> Não existe distinção entre pacotes binários e compilados. Quanto às dependências, basta fazer "emerge -eD world" e elas serão corretamente calculadas.

 

Afirmação forte  :Smile: ... Então me explica uma coisa:

emerge -p -eD world diz que vai instalar 466 packages no meu laptop;

só que na verdade tem 472 packages instaladas. (esta informação eu tiro dando um emerge -s .* e parseando o resultado)

A diferença é pequena, concordo, mas significativa na minha opinião; Só que o erro fica muito maior quando não se usa o --emptytree, por exemplo, o famigerado 'emerge -u world'... esse sempre deixa toneladas de packages de fora. Qualquer usuário experiente de gentoo já aprendeu a não confiar muito no portage nesse aspecto.

Se vc quiser posso dar um tapa no meu scriptzinho de portage e te enviar para que vc possa fazer o teste ai também.

[]

----------

## Matheus Villela

 *Giuliani wrote:*   

> inculsive, como eu faço para dizer q o diretório home e usr deve ser referenciados(instalados) em partições diferentes ?

 

Só definir no fstab, eu antes usava partições separadas mas não uso mais, deve ser algo assim(reiser nesse caso):

```
/dev/hda6      /home      reiserfs   noatime,notail         0 0
```

No manual do gentoo tá tudo lá  :Wink: 

Se quizeseres pode optar por fazer a instalação a partir do debian mesmo, o procedimento é quase o mesmo, só o comando pra chrootar que tem que ser feito diferente

----------

## fernandotcl

 *b0fh_ wrote:*   

> emerge -p -eD world diz que vai instalar 466 packages no meu laptop;
> 
> só que na verdade tem 472 packages instaladas. (esta informação eu tiro dando um emerge -s .* e parseando o resultado)

 

Estranho, aqui "emerge -s .*" procura por pacotes com nomes dos arquivos que começam por ponto... Você já tentou "qpkg -I | wc"?

 *b0fh_ wrote:*   

> A diferença é pequena, concordo, mas significativa na minha opinião; Só que o erro fica muito maior quando não se usa o --emptytree, por exemplo, o famigerado 'emerge -u world'... esse sempre deixa toneladas de packages de fora. Qualquer usuário experiente de gentoo já aprendeu a não confiar muito no portage nesse aspecto.

 

Sem dúvida, se existe essa diferença é bom que haja uma solução.

 *b0fh_ wrote:*   

> Se vc quiser posso dar um tapa no meu scriptzinho de portage e te enviar para que vc possa fazer o teste ai também.

 

Por favor, poste aqui. Fiquei curioso.  :Very Happy: 

----------

## b0fh_

 *fernandotcl wrote:*   

> Estranho, aqui "emerge -s .*" procura por pacotes com nomes dos arquivos que começam por ponto... Você já tentou "qpkg -I | wc"?
> 
> 

 

!! que versão de portage você tá usando?!? pra mim esse comando lista todas as packages no portage (inclusive as masked)

 *Quote:*   

> Por favor, poste aqui. Fiquei curioso. 

 

lá vai... só tome cuidado com o que ele diz que é upgrade e downgrade, porque eu ainda não fiz o código correto para isso e ele tá usando 'stringwise comparsions' pra determinar, o que as vezes dá errado (ex: 2.0.10 < 2.0.9 stringwise). Preciso arrumar isso ainda.

copy/paste o script em /usr/bin/pkgcheck;

para usar simplesmente dê 'pkgcheck' (lista as packages com upgrade/downgrade) ou 'pkcgcheck listall' lista todas as packages instaladas.

pode-se usar tb o ACCEPT_KEYWORDS antes do comando para usar outras archs na pesquisa

um bom uso eh o seguinte:

de emerge sync

de emerge -pu world; veja as packages que ele quer atualizar (fica um U azul)

de pkgcheck e compare o resultado.

```
#!/usr/bin/perl

#--------------------------------------------------------------------------------------------------------------------------------------

# pkgcheck.pl

# scans portage and lists packages & statistics

# by Eduardo Andrade / 2004

# shamessly based on Olav Kolbu's 'gencheck' script

#--------------------------------------------------------------------------------------------------------------------------------------

$| = 1;

#--------------------------------------------------------------------------------------------------------------------------------------

$ALL = ($ARGV[0] eq 'listall'); # sux

#--------------------------------------------------------------------------------------------------------------------------------------

print "Scanning portage...\n";

open(IN, 'emerge search ".*"|') or die "Can't do emerge search: ($!) Is this really a gentoo system?\n";

printf("       %-40s %-15s   %-15s\n", 'package', 'installed', 'available');

#--------------------------------------------------------------------------------------------------------------------------------------

$CA = 0;

$CI = 0;

$CU = 0;

$CD = 0;

#--------------------------------------------------------------------------------------------------------------------------------------

while(<IN>) 

{

    if( /^.*\*(.*)$/)

    {

        $app = $1;

        $CA++;

    } 

    elsif(/Latest version available: (.*)$/) 

    {

        $av = $1;

    } 

    elsif(/Latest version installed: (.*)$/) 

    {

        $in = $1;

       if($in ne "[ Not Installed ]")

        {

           $CI++;

            if($in gt $av) # buggy

            {

                print "\033[1;33m";

                printf("D<<< %-40s : %-15s > %-15s", $app, $in, $av);

                print "\033[0m\n";

                $CD++;

            }

            elsif($in lt $av) # buggy

            {

                print "\033[1;32m";

                printf("U>>> %-40s : %-15s < %-15s", $app, $in, $av);

                print "\033[0m\n";

                $CU++;

            }

            elsif($ALL)

            {

                print "\033[0m";

                printf("R=== %-40s : %-15s = %-15s", $app, $in, $av);

                print "\033[0m\n";

            }

       }

    }

}

#--------------------------------------------------------------------------------------------------------------------------------------

close(IN);

print "Done!\n";

print "Packages available in portage : $CA\n";

print "Packages installed            : $CI\n";

print "Packages to upgrade           : $CU\n";

print "Packages to downgrade         : $CD\n";

#--------------------------------------------------------------------------------------------------------------------------------------

exit(0);

#--------------------------------------------------------------------------------------------------------------------------------------

```

----------

