Pt:HOWTO: The Complete Portage Guide
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.
- Baixe o código fonte do pacote usando o wget em um shell ou usando o Navegador ou por outros meios.
- 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
- 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.
- Leia o arquivo README e INSTALL extraídos no diretório /usr/local/src/
- Mude o diretório digitando cd /usr/local/src/packagename (onde "packagename é o nome do pacote.)
- 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)
- 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
- 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
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
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:
- Voce digitou o nome do pacote "atom" incorretamente. Verifique o que foi digitado e refaça o processo.
- O "atom" existe apenas no overlay do Sabayon e precisa usar o layman -S para atualziar o overlay e reinstalar o pacote.
- 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
- Wiki do Gentoo (http://gentoo-wiki.com/ o http://www.gentoo-wiki.info)
- Manual do Gentoo (http://www.gentoo.org/doc/en/handbook/index.xml)
- Comunidade Sabayon
- Wikipedia
- <Psil0cybe> pelas revisões e correções ortográficas
- Voxiac pelas adições
- Necoro por informações sobre o Portrato
--Appleman1234 23:48, 15 February 2007 (PST)