Es:HOWTO: The Complete Portage Guide

From Sabayon Wiki
Revision as of 07:11, 31 January 2011 by K4ph (Talk | contribs) (corrected german i18n link)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
i18n: ca de en es fr

Notas preliminares

P. ¿Qué es un Shell ?

R. Shell es una interfaz de línea de comandos o terminal, conocido por los usuarios de MS Windows como The Command Prompt. (El shell de MS Windows es terrible).

Para obtener el Shell, presione Alt-F2 (La combinación de teclas para acceder a una ventana para ejecutar aplicaciones) e introduzca konsole o gnome-terminal o xterm dependiendo de sus preferencias.

Para obtener un Root Shell use el comando su (comando para cambiar de usuario) escribiendo su - (El - menos para cambiar configuraciones y directorio home de usuario) o presione Alt-F2 y escriba kdesu shellprogram o gnomesu shellprogram donde shellprogram es konsole, gnome-terminal, xterm o cualquier otro. Tecnicamente el Shell es realmente el ambiente de la línea de comandos y no el frontend para eso. El shell más común de Linux es BASH (Bourne Again Shell).

P. ¿Qué es todo esto de Alt-F2 ?

R. La barra de herramiantas más útil conocida para los nuevos Usuarios de Sabayon es El Diálogo de Ejecución, que permite ejecutar todo tipo de programas y comandos simplemente escribiendo el nombre del comando y presionando la tecla enter. Alt-F2 es una combinación de teclas de acceso rápido Global (Funciona en KDE, Gnome, XFCE, etc) para esto, también puede ser accedida haciendo click derecho en el escritorio y seleccionado Ejecutar Comando desde el menú.

P. ¿Porqué usa && en sus instrucciones ?

R. Porque es una manera fácil de hacer comandos múltiples en una sola línea.

P. ¿Qué necesito para esta guía?

R. Necesita instalar Sabayon Linux o Gentoo Linux, un cerebro trabajando (no cualquiera lo tiene :), unos ojos y la capacidad de leer, pensar y aprender.

La Guía empieza Aquí

P. Como instalo Programas en Sabayon ?

Respuesta corta: Como root en un shell ponga emerge <nombrepaquete> donde nombrepaquete es el nombre del paquete que desea instalar.

Respuesta larga:

Eso depende del método que está usando o que programa quiere instalar. ¡¡¡GENERALMENTE QUERRÁ IGNORAR LOS DOS PRIMEROS MÉTODOS!!!

Programas para Windows

Primero que todo, si quiere instalar programas para Windows usando WINE, deberá escribir en un shell como usuario wine /path/to/instalar.exe (donde el path para instalar es exactamente ese, observe que en el ambiente del shell en Linux no se encuentran los espacios y que ellos se representan con "\ ")

Instalación a partir de las Fuentes

Observe que las instrucciones que siguen son genéricas, para ejemplos específicos o ejemplos en la línea de comandos con todas las opciones de cada paso use google :), o su cerebro.

  1. Descargue el paquete de código fuente usando wget en un shell o firefox o de alguna otra manera.
  2. Extraiga el código fuente del paquete, frecuentemente un tar.bz2 o tar.gz usando tar en un shell o usando Ark o algún otro.
  3. Mueva la carpeta extraída a /usr/local/src usando cp -R como root en un shell o usando Konqueror o Nautilus como root.
  4. Lea los archivos README e INSTALL en la carpeta del paquete extraido ubicado en /usr/local/src
  5. Vaya al directorio del paquete escribiendo cd /usr/local/src/nombrepaquete (donde nombrepaquete es el nombre del paquete)
  6. A menos que los archivos README e INSTALL le digan otra cosa, si existe un script para configurar, escriba ./configure si no es así haga uno (usualmente requerido por una instalación svn o cvs) escribiendo autoconf (si autoconf da errores escriba libtoolize && autoreconf, luego escriba rm configure && autoconf)
  7. A menos que los archivos README e INSTALL le digan otra cosa, si existe el archivo makefile escriba make && make install
  8. Ya está.

Finalmente, el método MÁS FÁCIL y MEJOR para Sabayon o Gentoo es a través de Portage / emerge.

Portage

Portage es un sistema de administración de paquetes que utiliza Gentoo y Sabayon para instalar, desinstalar y mantener el software en su sistema. El sistema Portage está formado por el árbol Portage, que es una colección de ebuilds, por el comando emerge que instala los ebuilds, por los archivos de configuración del portage y por las herramientas de portage / emerge creadas por terceras partes.

El árbol de Portage es una copia local (ubicada en /usr/portage) del repositorio central de paquetes de software. Siempre que instale software en su sistema con el comando emerge, el árbol Portage hace la búsqueda. Si el nombre del paquete es encontrado, se calculan sus dependencias, se descarga el código fuente del paquete y sus dependencias y luego todo esto se compila e instala en su sistema.

Ebuild

Un ebuild es un formato especializado de script de bash que utiliza Gentoo & Sabayon para proveer un conjunto de instrucciones para emerge como una interfaz al sistema de administración de software Portage. Un ebuild es una forma automatizada para mejorar los procedimientos de compilación e instalación para software.

Cada versión de cada aplicación o paquete en el repositorio de Portage tiene un script ebuild especifico escrito para el mismo.

Emerge usa el script ebuild. La herramienta emerge usa el ebuild para hacer su trabajo: calcula todas las dependencias de la instalación de software deseada, descarga los archivos necesitados (y les aplica un parche si lo necesitan), configura el paquete (basándose en los ajustes de los parámetros USE[1]), compila, y realiza una instalación con aislamiento de procesos (en inglés sandboxed) (en /var/tmp/portage/[nombre ebuild]/image/ por defecto). Al completar con éxito los pasos son fusionados (en inglés merged) en el sistema, fuera del aislamiento.

Aunque la mayoría de los ebuilds que se encuentran en el repositorio de Portage de Gentoo son utilizados para elaborar los programas a partir del código fuente, también existen ebuilds para instalar paquetes binarios, ebuilds que instalan solamente documentación o datos como por ejemplo fuentes tipográficas, y ebuilds básicos llamados "metabuilds" que sirven solamente para activar la instalación de otros ebuilds como por ejemplo los metabuilds de GNOME o KDE).

Para las instrucciones de como crear ebuilds vea Gentoo Development Guide: Quickstart Ebuild Guide y Gentoo Development Guide (textos en inglés).

Emerge

La heramienta emerge para línea de comandos es el corazón de Portage. El comando es bastante complejo con muchas opciones y modificadores. Está escrito en el lenguaje de programación Python. La herramienta emerge es la utilidad más importante para acceder a las características de Portage desde la línea de comandos.

El programa calcula y administra dependencias, ejecuta ebuilds y mantiene el árbol de Portage local y la base de datos de paquetes instalados. Los ajustes de compilación utilizados por ebuilds se pueden cambiar a través de la variable de entorno CFLAGS, basado en las especificaciones de la computadora individual y en las preferencias del usuario para la optimización. La utilidad emerge ejecuta ebuilds en un ambiente aislado. De esta manera el sistema está protegido de la ejecución del software mediante el ebuild y los binarios resultantes solo se fusionan después de que la construcción ha resultado satisfactoriamente y entonces instala lo que estaba en aislamiento.

Lo que emerge instala como dependencias se ve afectado por los ajustes de los parámetros USE[2]. Ellos deciden que características opcionales se incluyen a la hora de instalar o actualizar una aplicación. El comando emerge también puede utilizarse para descargar e instalar los archivos binarios, aunque algunas personas sostienen que usar paquetes binarios es no aprovechar al máximo el poder de Portage, ya que renuncia a la opción de optimización por compilación disponible normalmente.

Cosas para hacer con emerge

Puede mezclar y combinar la mayor parte de los flags y parámetros. Emerge trabaja mejor cuando se ejecuta como root. Mire la documentación man para más información.

Sincronización de Portage / Actualización del árbol

emerge --sync

Esto actualiza y reconstruye el árbol de portage sincronizando con los servidores en línea. Debe ejecutar este comando antes de iniciar una instalación/desinstalación de paquetes ya que se asegurará que emerge utilice la información más reciente. A menudo también se ejecuta

layman -S

para actualizar todos los overlays. (Puede leer más acerca de esto en #Overlays & layman)

Instalar paquetes

# emerge <nombrepaquete> 

o

# emerge =categoríapaquete/nombrepaquete-versión

(=categoríapaquete/nombrepaquete-versión debe ser un paquete atom válido)

Para instalar o actualizar o volver a una versión anterior de paquete:

# emerge -u <nombrepaquete> 

o

# emerge -u =categoríapaquete/nombrepaquete-versión 

Esto actualiza a la mejor versión de un paquete, no necesariamente la última versión.

En el Portage hay más de 11000 paquetes,aquí debajo hay algunos paquetes atom válidos.

  • 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

Todos los paquetes disponibles pueden verse en

http://packages.gentoo.org/ (oficial)

o

http://gentoo-portage.com/ (no oficial)

Puede usualmente utilizar la especificación del nombre del paquete. (ej. mozilla-firefox, samba, mplayer, wine o inkscape)

Desinstalar paquetes

# emerge -C <nombrepaquete> 

o

# emerge -C =categoríapaquete/nombrepaquete-versión 

Para desinstalar un paquete.

# emerge -c <nombrepaquete> 

o

# emerge -c =categoríapaquete/nombrepaquete-versión 

Esto borra / desinstala un paquete y dependencias innecesarias.

# emerge --depclean 

Cambiando la verbosidad de portage

Para hacer que emerge corra en modo verbose (mostrar todos los informes de errores de GNU, y muestra los parámetros USE[3] que serán usados en modo simulación o pretending).

# emerge -v <nombrepaquete> 

Para hacer que emerge corra en modo quiet ("modo silencioso", muestra una salida condensada, en contraposición del modo verbose)

# emerge -q <nombrepaquete> 

Búsqueda

# emerge -s <nombrepaquete> 

Busca el paquete llamado nombrepaquete.

# emerge -S <nombrepaquete> 

Búsqueda del paquete llamado nombrepaquete o busca el término en la descripción de los paquetes.

Interrogación y Simulación

# emerge -a <nombrepaquete> 

Hace un emerge, confirmar cada acción, paso con el usuario.

# emerge -p <nombrepaquete> 

Hace un emerge que simula hacer la siguiente acción, pero no lo hace realmente. Es muy útil combinado con el flag -v. La clave para la información provista para simular se muestra a continuación:

N = nuevo (no resulta instalado)
S = nueva instalación SLOT (versiones lado a lado)
U = actualización (a otra versión)
D = bajar la versión, en inglés downgrading (la mejor versión puede ser más baja)
R = reemplazo (hacer emerge nuevamente con la misma versión)
F = ubicación restringida (debe ser descargado manualmente)
f = ubicación restringida (ya descargado)
B =bloqueado por un paquete ya instalado

Otras opciones interesantes

# emerge -1 <nombrepaquete> 

no añadir el/los paquete/s al world file (lista de los paquetes que desea instalar) cuando se instalan los paquetes.

# emerge -o <nombrepaquete> 

no hacer emerge de el/los paquetes indicados, solo de sus dependencias

# emerge -f <nombrepaquete> 

no instala o desempaca el/los paquete/s que quiere ubicar / descargar las fuentes o los paquetes binarios.

# emerge --resume 

termina la última operación, la cual es útil si se canceló antes con ctrl -c.

Grandes actualizaciones & recompilación

# emerge world

o

# emerge -e world

Reinstala / actualiza cualquier cosa en su world file / lista de paquetes que desea instalar. Esto es PELIGROSO si se hace sin la debida planificación, enmascaramiento de paquetes (véase más adelante) y el correcto uso de parámetros/flags. La mejor forma de hacer un emerge world, es viendo los howtos en los foros de Gentoo o en la Wiki de Gentoo, y Buena Suerte.

# emerge system

o

# emerge -e system

Reinstala / actualiza cualquier cosa en todo su sistema central de paquetes. No es peligroso como emerge world, sin embargo necesita la planificación correcta.

Overlays & layman

Los overlays en Portage son árboles personalizados de portage que contienen paquetes no encontrados o diferentes a los paquetes del árbol principal.

Los overlays pueden agregarse manualmente cambiando PORTDIR_OVERLAY="" en /etc/make.conf , pero en Sabayon preferimos usar layman (un administrador de overlays).

# layman -l

Lista todos los overlays.

# layman -S

Sincroniza todos los overlays. (como emerge --sync)

# layman -s <nombreoverlay> 

Sincroniza el overlay con el nombre nombreoverlay.

# layman -a <nombreoverlay> 

Agrega / instala un overlay. Puede necesitar editar /etc/make.conf para finalizar.

# layman -d <nombreoverlay> 

Elimina / desisnstala un solapamiento. Puede necesitar editar /etc/make.conf para finalizar.

Para sincronizar el overlay de Sabayon:

# layman -s sabayon 

Si quiere buscar paquetes en TODOS los overlays, entonces haga:

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

Ahora puede usar eix <palabra clave> para buscar por una plabara clave en todos los overlays (puede usar la opción -e para que encaje exactamente). Entonces puede usar layman para agregar el overlay necesitado. Recuerde correr update-eix && update-eix-remote update de vez en cuando.

Para mas paquetes de terceras partes y overlays, ver http://www.gentoo-wiki.info/HOWTO_Installing_3rd_Party_Ebuilds .

Para más información sobre overlays ver http://en.gentoo-wiki.com/wiki/Portage_Overlay

Herramientas GUI para Portage

Kuroo y Porthole son interfaces gráficas de usuarios (GUIs) para emerge /portage en KDE y Gnome respectivamente. Sin embargo Kuroo no es desarrollado activamente y no está más en el árbol portage. Se dice que Porthole tiene menos problemas que Kuroo porque ignora las reglas de portage el cual Kuroo se queja.

Otros dos GUIs, ambos basados en GTK, son Portato e Himerge (el último escrito en Haskell).

Opcional: Puede acelerar la velocidad de emerge y las herramientas GUI de portage escribiendo en el shell como root emerge udept, entonces como root escriba dep -w, esto limpia el world file de Sabayon Linux y toma algún tiempo, pero sí acelerará la fusión (el merging).

Instalación de Himerge

# emerge -av himerge

Enmascaramiento Duro de Paquetes & /etc/portage/package.mask y /etc/portage/package.unmask

Los paquetes Enmascarados / Enmascarados Duro de portage son aquellos bloqueados para su instalación por diversos motivos.

(=categoríapaquete/nombrepaquete-versión) Esto se conoce como un paquete atom válido. Si recive un error en Portage respecto a un paquete atom, una de las tres posibilidades existen:

  1. Escribió el nombre del paquete atom incorrectamente. Corrija el nombre y realice nuevamente el emerge.
  2. El atom solo existe en el overlay SabayonLinux y necesita #layman -S para actualizar el overlay y realice nuevamente el emerge del paquete.
  3. El atom que está intentando instalar no existe en ningún lado.

Ejemplos de paquetes atoms válidos que necesitan enmascarar o desenmascarar incluyen:

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

Para enmascarar un paquete agregar una línea para que el paquete contenga =paqueteatomválido o >paqueteatomválido o <paqueteatomválido o >=paqueteatomválido o <=paqueteatomválido dependiendo la versión del paquete que quiere enmascarar, en /etc/portage/package.mask

Para desenmascarar un paquete agregar una línea para que el paquete contenga =paqueteatomválido o >paqueteatomválido o <paqueteatomválido o >=paqueteatomválido o <=paqueteatomválido dependiendo la versión del paquete que quiere desenmascarar, en /etc/portage/package.unmask

Los paquetes se enmascaran por alguna razón, esta razón puede estar en el portage, o puede identificarse preguntando a algún otro. Sea cuidadoso cuando enmascare o desenmascare paquetes.

Para más información vea: http://www.gentoo-wiki.info/Masked

Missing keyword

Si el portage dice: "masked by: missing keyword" mientras se está haciendo el emerge, significa que los paquetes no están disponibles para su arquitectura, p.e. usted está corriendo sobre x86_64 y el paquete está solo para "x86". Si realmente necesita el paquete intente esto: echo "category/package x86 ~x86" >> /etc/portage/package.keywords para no hacer caso en esa categoría. (Observación: Yo usé un "~x86" inestable ya que el resto de Sabayon está corriendo con keywords inestables de todos modos). Como Gentoo está basado en fuentes hay muchas probabilidades de que compile y trabaje el paquete sin modificaciones.

Más información en: http://www.gentoo-wiki.info/Masked

/etc/portage/package.keywords

Este archivo es utilizado para correr paquetes inestables en sistemas estables o ebuilds que no han sido testeados en su plataforma. Este archivo no es importante para los usuarios de Sabayon, sin embargo gentoo-wiki.com tiene más información si está interesado.

/etc/make.conf

Ver http://www.gentoo-wiki.info/MAN_make.conf_5

etc-update & dispatch-conf

Estas herramientas sirven para la actualización de archivos de configuración después de que los paquetes hayan sido instalados con emerge. "man etc-update" and "man dispatch-conf" , proveen la información necesaria acerca de como se utilizan. En caso de duda hacer una copia de seguridad de su antiguo archivo de configuración y actualizar. Si resulta algo mal después de la actualización, restituya la copia de seguridad.

revdep-rebuild, equery, eix, y demás

revdep-rebuild reconstruye paquetes rotos causados por por bibliotecas rotas y dependencias inversas.

revdep-rebuild -Xp antes de escribir revdep-rebuild -X es una buena idea. -X hace ignorar una versión específica de un programa, -p hace la simulación, similar a emerge -p

revdep-rebuild toma tiempo y frecuentemente involucra grandes emerges, pero su sistema debería trabajar bien al finalizar.

equery y eix son heramientas extendidas para búsqueda en portage, "man equery" y "man eix" proveen su sintaxis y ver gentoo-wiki.com y Gentoo Forums para más información sobre estos recursos.

Agradecimientos

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


Traducción al español: --zambayoni 19:49, 19 February 2009 (UTC)