Pt:HOWTO: The Complete Portage Guide

From Sabayon Wiki
Jump to: navigation, search
i18n: ca de en es fr pt pl tr
Stop.png
Portage (emerge) nao é o gerenciador de pacote primário do Sabayon e este artigo é só para usuários avançados. Em outras palavras se isso não der certo para voce, a culpa é sua. Voce foi avisado.

Pré-Nota

P. O que é um "Shell"?

R. Um Shell é um interface de linha de comando ou terminal, conhecido pelos usuários do MS Windows como "The Command Prompt" (prompt de comando, tela preta, DOS...)

Para abrir o Shell, pressiona a tecla de atalho Alt-F2 (tecla de atalho para abrir a janela de commando "Executar") e digite konsole ou gnome-terminal ou xterm dependendo da sua preferencia.

Para abrir o Shell de Root use o comando su (switch user) ou digitando o comando su - (O "-") significa mudar as configurações e o diretório do usuário) ou pressione Alt-F2 e digite kdesu shellprogram ou gnomesu shellprogram onde shellprogram pode ser o "konsole", "gnome-terminal", "xterm" (sem as aspas) ou outro. Tecnicamente, o Shell é na verdade é o ambiente de linha de comando e não apenas uma interface grafica pra ele. O Shell do Linux mais comum é o BASH (Bourne Again Shell).


P. O que tanto é esse Alt-F2?

R.A mais útil barra de ferramentas conhecida para os usuarios novatos do Sabayon é a janela de comando "Executar", que permite voce executar todo tipo de programa e simples comandos digitando o nome do comando e pressionando Enter. Alt-F2 é o atalho Global para isso (ele funciona no KDE, Gnome, XFCE, etc); ele pode também ser acessado clicando o botão direito do mouse na Área de trabalho e selecionando o "Executar" a partir do menu.


P. Por que voce usa "&&" nas instruções?

R. Porque é um jeito facil de emtiri vários comandos em apenas uma linha.


P. O que eu preciso para seguir este guia?

R. Voce precisa ter instalado o Sabayon ou o Gentoo, um cérebro que funcione (nem todos tem um :), alguns olhos e a habilidade de ler, pensar e aprender.


Início do Guia

P. Como posso instalar programas no Sabayon a partir do código fonte?

Resposta Curta:: Em um shell que voce seja root digite emerge packagename onde packagename é o nome do pacote que voce deseja instalar.

Resposta Longa:

Isso depende de qual metódo voce está usando e qual software voce que instalar. GERALMENTE VOCE IRÁ QUERER IGNORAR O PRIMEIRO METÓDO ABAIXO


Instalação pelo código-fonte

Observe que as intruções abaixo são genéricas. Para exemplos mais específicos ou exemplo de linha de comando com todas as opçoes correta para cada passo, use o Google ou seu cérebro.

  1. Baixe o código fonte do pacote usando o wget em um shell ou usando o Navegador ou por outros meios.
  2. Extraia o código fonte do pacote (as vezes é um arquivo tar.bz2 ou tar.gz) usando "tar" no shell ou usando o Ark ou ainda o File-Roller
  3. Mova o diretório extraído ta /usr/local/src usando cp -R em um shell ou usando com o usuário root o Konqueror ou o Nautilus.
  4. Leia o arquivo README e INSTALL extraídos no diretório /usr/local/src/
  5. Mude o diretório digitando cd /usr/local/src/packagename (onde "packagename é o nome do pacote.)
  6. A menos que tenha sido dito ao contrário no arquivo de README ou INSTALL, se existe um script de configuração voce tem que digitar ./configure, caso contrário faça um (normalmente são necessário para instalações svn ou cvs) digitando autoconf (se o autoconf der algum erro, digite libtoolize && autoreconf, em seguida digite rm configure && autoconf)
  7. A menos que tenha sido dito ao contrário no arquivo de README ou INSTALL, se existir um arquivo makefile, voce tem que digitar make && make install
  8. Pronto.

E Finalmente, o melhor e mais fácil metodo para Sabayon ou Gentoo é usando o Portage / emerge.


Portage

Portage é um sistema gerenciador de pacote que é usado pelo Gentoo e Sabayon para instalação, desinstalação e manutençao de software no seus sitema a partir do código fonte. O sistema do Portage é composto pela árvore Portage que é uma coleção de "ebuilds", o comando emerge segue as instruções nas "ebuilds" (scripts especialmente), os arquivos de configurações do portage e de ferramentas de terceiros do Portage / emerge.

A árvore do Portage é uma cópia local (localizado em /usr/portage/) do repositório central do ebuild. Sempre que voce instalar um software no seu sistem com o comando emeger, será pesquisado na árvore do Portage. Se um nome de pacote correspondente for encontrado, suas dependencias são calculadas, o código fonte para o pacote e seus dependencia sao baixadas e em seguida todos eles serão compilados e instalados no seus sistema.


Ebuild

Uma Ebuild é um script BASH especializado usado pelo Gentoo e Sabayon para dar um conjunto de instruções ao emerge como uma interface para o sistema de gerenciamento de software do Portage.

Cada versão de cada aplicativo ou pacote no repositório do Portage tem seu script ebuild escrito específicamente pra ele.

O script ebuild é usado pelo comando emerge. A ferramenta emerge usa o ebuild para executar suas tarefas: calcular todas as dependencias de instalação dos softwares desejado; baixar os arquivos necessários (aplicar correções neles caso necessário); configurar o pacote (com base nas configurações sinalizada pelo "USE"); compilar, executar uma instalação em modo seguro (por padrão em /var/tmp/portage/[ebuild name]/image/). Após a conclusão dessas etapas, os arquivos instalados sao juntados no sistema fora do modo seguro.

Embora a maioria dos ebuilds encontrado nos repositórios do Portage do Gentoo são usado para compilar programas a partir do código fonte, há também ebuilds que instalam pacotes binários, ebuilds que instalam apenas documentação ou dados como fontes e basicamente ebuilds chamados "metabuilds" que apenas acionam a instalação de outros ebuilds (tais como os metabuilds do Gnome ou KDE).


For instructions on the creation of ebuilds see Gentoo Development Guide: Quickstart Ebuild Guide e Gentoo Development Guide. (Em Inglês)


Emerge

A linha comando de comando emerge é o coração do Portage. O comando é bastante complexo com varias opçoes e modificadores. É escrito na linguagem de programação Python. A ferramenta emerge é o utilitario mais importante para acessar recursos do Portage através da linha de comando.

O programa calcula e gerencia dependencias, executa os ebuilds a mantém a árvore Portage local e o banco de dados dos pacotes instalados. As configurações de compilação usadas pelos ebuilds podem ser mudadas através da variável ambiente CGFLAGS, baseando-se nas especificações de cada computador e em otimizações desejada pelo usuário. O utilitário emerge executa os ebuilds em um ambiente de modo seguro. Desse jeito o sistema está protegido de softwares executados pelo ebuild e os binários resultantes só são juntados ao sistema depois serem instalados com sucesso no modo seguro.

O que o emerge instala como dependecias é afetado pelo uso das configurações do sinalizador "USE". Eles decidem qual recurso opcional será incluído quando estiver instalando ou atualizando uma aplicação. O comando emerge tambeém pode ser usado para baixar e instalar arquivos binários, apesar de algumas pessoas argumentarem que usando pacotes binários voce não aproveita o máximo do poder do Portage que renuncia o tempo de compilação e otimização que normalmente voce tem.


O que fazer com o Emerge

Voce pode misturar e combinar a maioria dos sinalizadores e argumentos abaixo. O Emerge funciona melhor se executado como root. Confira man emerge' para mais informações.


Sincronizando / Atualizando a árvore Portage
emerge --sync

Isso atualiza e reconstrói a árvore local do Portage sincronizando com os servidores online que mantém os ebuilds. Voce vai querer rodar esse comando antes de começar a instalar/remove pacotes uma vez que isso assegura que o emerge use as informações mais recentes. Muitas vezes voce também vai querer executar:

layman -S

para atualizar todos os overlays adicionado a sua instalação. (Voce pode ler mais sobre os overlays em #Overlays & layman)

Instalar pacotes
# emerge packagename 

ou

# emerge =packagecategory/packagename-version

(=packagecategory/packagename-version é conhecido como um pacote válido)

Isso instala ou atualiza um pacote.

# emerge -u packagename 

ou

# emerge -u =packagecategory/packagename-version 

Isso atualiza para melhor versão de um pacote, não necessariamente a ultima versão.

Existem mais de 11,000 pacotes no Portage. Abaixo algum dos pacotes existentes que podem ser instalados.

  • www-client/mozilla-firefox-2.0.0.1-r2
  • net-fs/samba-3.0.24
  • media-video/mplayer-1.0_rc1-r2
  • app-emulation/wine-0.9.30
  • media-gfx/inkscape-0.44.1

Os pacotes podem ser vistos tambem em http://packages.gentoo.org/ (official)

ou

http://gentoo-portage.com/

E claro voce pode também apenas especificar o nome do pacote (ex, mozilla-firefox, samba, mplayer, wine ou inkscape).

Removendo pacotes
# emerge -C packagename 

ou

# emerge -C =packagecategory/packagename-version 

Isso remove um pacote.

# emerge -c packagename 

ou

# emerge -c =packagecategory/packagename-version 

Isso limpa / remove um pacote e suas dependecias desnecessárias

# emerge --depclean 

Isso remove todos os pacotes não listados nos arquivos system ou world.

Mudando a Verbosidade do Portage
# emerge -v packagename 

Isso torna o resultado do Portage mais detalhado.

# emerge -q packagename 

Isso torna o resultado do Portage mais silencioso (menos detalhes).

Pesquisando
# emerge -s packagename 

Isso procura por um pacote com o nome desejado.

# emerge -S packagename 

Isso procura por um pacote pelo nome desejado passado ou pelo termo de pesquisa na descrição do pacote. This searches for a package with the packagename or the search term in the package description.

Perguntando e Fingindo
# emerge -a packagename 

Isso faz o emerge pedir a voce para confirmar cada ação antes de proceder..

# emerge -p packagename 

Isso faz o emerge "fingir" fazer a ação seguinte, mas na verdade nao faz nada. É útil comando com o parametro -v. A chave para a informação mostrada pelo "fingir" é mostrado abaixo. N = novo (não instalado ainda) S = instalação em novo SLOT (compara versões) U = atualizando (para outra versão) D = baixando (melhor versão parece ser a mais antiga) R = substituindo (reinstalando a versão ja existente)) F = busca restringida (deve ser baixado manualmente) f = busca restringida (já instalado) B = bloqueado por um pacota já instalado.

Outras Opções Legais
# emerge -1 packagename 

não adiciona o(s) pacote(s) ao arquivo world (lista de pacotes que voce quer instalado) quando for instalar pacotes.


# emerge -o packagename 

não baixa o(s) pacote(s) que voce quer, apenas suas dependências.

# emerge -f <packagename> 

Não instala ou descompacta pacote(s) que voce quer, apenas baixa o código fonte ou o pacote binário.

# emerge --resume 

Continua a última operação, é útil caso você tenha parado pela metade usando o Ctrl –C para encerrar.

Recompilar e Grande Autalizações
# emerge world

ou

# emerge -e world

Isso reinstala / atualiza tudo na sua lista e/ou arquivo world' que voce tem instalado. Isso é perigoso se for feito sem devido planejamento, mascarar pacote(s) (veja abaixo) e os corretos sinalizadores e parâmetros. Para o melhor jeito de fazer o emerge world, veja os "howtos" nos fóruns do Gentoo ou na Wiki do Gentoo e boa sorte.


# emerge system

ou

# emerge -e system

Isso reinstala / atualiza todos os principais pacotes do sistema. Isso não é tão perigoso quanto o emerge world, mas ainda é preciso planejar corretamente.

Overlays & layman

"Portage overlays" são árvores do Portage personalizadas que contém pacotes não encontrados ou que são diferentes na árvore do Portage principal.

Overlays podem ser adicionados manualmente mudando PORTDIR_OVERLAY="" no /etc/make.conf, mas no Sabayon preferimos usar o Layman (gerenciador do overlay).

# layman -l

Isso lista todos os overlays ativos.

# layman -S

Isso sincroniza todos os overlays instalados (é similar ao emerge --sync).

# layman -s overlayname 

Isso sincroniza o overlay com o "overlayname" (nome do overlay passado no comando).

# layman -a overlayname 

Isso adiciona / instala um overlay. Voce deve editar o /etc/make.conf para finalizar.

# layman -d overlayname 

Isso remove / desinstala um overlay. Voce deve editar o /etc/make.conf para finalizar.

Para sincronizar o tipo de overlay do Sabayon:

# layman -s sabayon 

Se voce quer procurar por pacotes em TODOS os overlays, então faça:

# emerge eix && eix-update && eix-remote update 

Agora voce pode usar eix keyword para pesquisar por uma palavra-chave em todos os overlays (voce pode usar a opção -e para combinação exata). Então voce pode usar o layman para adicionar o overlay necessário. Lembrece-se de executar o comando eix-update && eix-remote update de tempos e tempos.

Para mais pacotes e overlays de terceiros, visite [[1]].

Para mais informação sobre overlays, visite [[2]].

Ferramentas gráficas para o Portage

Kuroo e Porthole são interfaces gráfica para o Emerge e Portage no KDE e no Gnome repectivamente. Porém o Kuroo não é mais ativamente desenvolvido e não está mais na árvore Portage. Porthole é menos encomodo que o Kuroo porque ele ignora as regras do Portage que o Kuroo não consegue.

Duas outras interfaces gráficas, as duas baseadas no GTK são o Portato e o Himerge (o último escrito em Haskell).

Opcionalmente: voce pode acelerar as ferramentas gráficas do Portage e o comando emerge digitando com usuario root o comando emerge udept, em seguida também digitando como root dep -w, isso limpa o arquivo world do Sabayon e leva algum tempo mas acelera o processo de "merging" (instalação de pacotes).

Instalando o Himerge

# emerge -av himerge

Visite também

Pacotes rígidamente-mascarados & /etc/portage/package.mask e/etc/portage/package.unmask

Pacotes mascarados ou rígidamente-mascarado são pacotes no Portage que são bloqueados ou impedidos de serem instalado por vários motivos.

(=packagecategory/packagename-version) Isso é como é conhecido quando um pacote "atom" é válido. Toda vez que voce receber um erro no Portage relacionado a pacotes "atoms" um das três seguintes possibilidades pode ser a causa:

  1. Voce digitou o nome do pacote "atom" incorretamente. Verifique o que foi digitado e refaça o processo.
  2. O "atom" existe apenas no overlay do Sabayon e precisa usar o layman -S para atualziar o overlay e reinstalar o pacote.
  3. O "atom" que voce está tentando instalar não existe em lugar algum.

Exemplos de pacotes "atoms" válidos que podem ser necessários mascarar ou desmascarar incluem:

  • =x11-drivers/xf86-video-i128-1.2.1
  • =sys-apps/dbus-1.0.2
  • <=dev-libs/dbus-glib-0.73

Para mascarar um pacote, adicione a linha para o pacote contendo =validpackageatom ou >validpackageatom ou <validpackageatom ou >=validpackageatom ou <=validpackageatom depende de qual versão do pacote que voce quer mascarar no /etc/portage/package.mask

Para desmascarar um pacote, adicione uma linha para o pacote contendo =validpackageatom ou >validpackageatom ou <validpackageatom ou >=validpackageatom ou <=validpackageatom dependendo de qual versão que voce quer desmascarar no /etc/portage/package.unmask

Os pacotes são mascarados por um motivo. O motivo é fornecido no Portage ou podem ser identificados perguntando a outras pessoas. Tenha cuidado quando for mascarar ou desmascarar pacotes.

Maiores informações aqui http://www.gentoo-wiki.info/Masked

Faltando palavra-chave

Se o Portage disser: "mascarado por: faltando palavra-chave" no momento da instalação, isso significa que o pacote ainda não está disponível para sua arquitetura, ex, voce está rodando x86_64 (amd64) e o pacote tem por exemplo apenas a palavra-chave "x86". Se voce realmente precisar desse pacote, voce pode tentar isso: echo "category/package x86 ~x86" >> /etc/portage/package.keywords para substitui-lo pelo pacote em uma categoria. Como é baseado no código do Gentoo há uma boa chance de um pacote compilar e funcionar sem modificações.

Maiores informações aqui: http://www.gentoo-wiki.info/Masked

/etc/portage/package.keywords

Esse arquivo é usado para executar pacotes instáveis em sistemas estáveis ou ebuilds que ainda não foram testados em sua plataforma. Esse arquivo não é importante para usuários do Sabayon, mas gentoo-wiki.com tem maiores informações se voce estiver interesse.

/etc/make.conf

Visite o site http://www.gentoo-wiki.info/MAN_make.conf_5

etc-update e dispatch-conf

Essas duas ferramentas atualiza os arquivos de configuração dos pacotes depois de serem instalados. man etc-update e man dispatch-conf fornecem a informação necessária. Quando estiver em dúvida faça um backup das suas configuração e em seguida atualize. Se algo der errado, restaure o backup.

revdep-rebuild, equery, eix e mais

revdep-rebuild reconstrói pacotes com problemas causados por dependências reversas e bibliotecas quebradas. revdep-rebuild -Xp antes de digitar revdep-rebuild -X é uma idéia boa. revdep-rebuild -Xp antes de digitar revdep-rebuild -X é uma idéia boa. -X faz o revdep-rebuild ignorar a versão específica do pacote, -p faz ele "fingir" uma instalação, similar ao comando emerge -p revdep-rebuild leva algum tempo e as vezes involve grandes instalações, mas seu sistema deve funcionar bem até o final. equery e eix são ferramentas de buscar do Portage melhoradas man equery e man eix fornecem sua sintaxe e mais recursos, visite gentoo-wiki.com e os fóruns do Gentoo.

Agradecimentos

--Appleman1234 23:48, 15 February 2007 (PST)