Emerge

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Emerge and the translation is 100% complete.

emerge es la interfaz de línea de comandos principal de Portage, el gestor de paquetes de Gentoo.

emerge se utiliza para descargar, instalar, actualizar y mantener paquetes de software en Gentoo Linux.

emerge es un comando muy poderoso y flexible que puede, entre otras cosas, compilar e instalar paquetes a partir de su código fuente, escanear e instalar paquetes binarios precompilados, crear paquetes binarios, buscar paquetes, informar sobre el sistema, etc.

Consejo
El comando emerge tiene muchas opciones posibles. Para ver documentación exhaustiva y una lista completa de todas las opciones, vea man emerge.
See also

Vea el artículo de Portage para uso de Portage más allá del comando emerge.

Los capítulos trabajar con Gentoo y trabajar con Portage del manual contienen secciones sobre el uso del comando emerge.

Algunas cuestiones sobre el comando emerge obtienen respuesta en el preguntas frecuentes y en el preguntas frecuentes de Portage.

Uso

Ejecución

El comando debe ir seguido de las opciones, acciones y paquete o conjunto de paquetes apropiados. Si emerge es lanzado sin parámetros ni paquete, imprimirá un texto de ayuda y terminará el comando.

Para la mayoría de usuarios/as, emerge tendrá que ser ejecutado con privilegios de superusuario, aunque, al ser usado para simplemente dar información, será posible ejecutarlo como usuario/a no privilegiado/a.

Si emerge es lanzado con un paquete pero ninguna opción, intentará inmediatamente instalar el correspondiente paquete sin pedir ningún tipo de confirmación. Esto a menudo no es el comportamiento deseado, así que una de las siguientes opciones probablemente serán requeridas.

Las opciones --ask (-a) y --pretend (-p) permiten la examinación de los cambios del sistema planeados previamente a su ejecución. La opción --ask hará que emerge muestre los cambios que se tienen que hacer y pedirá confirmación antes de continuar. La opción --pretend simplemente mostrará los cambios a hacer y detenerse, y no requiere de privilegios de superusuario.

Advertencia
Al usar la opción --ask, cualquier pulsación de la tecla Enter durante el proceso resultará en la omisión de la pregunta de confirmación. Vea la sección de la opción --ask en man emerge para más información.

emerge da mucha información, la cual incluye avisos y datos sobre paquetes individuales y el sistema. La opción --verbose es útil si se desea que Portage muestre todavía más información, como qué ajustes USE serán utilizados al instalar o actualizar un paquete, qué ajustes USE están disponibles para cada paquete, el tamaño de descarga del paquete, etc.

Ejecutar emerge con la opción --help provee de información sobre las opciones de la línea de comandos:

user $emerge --help
emerge: command-line interface to the Portage system
Usage:
   emerge [ options ] [ action ] [ ebuild | tbz2 | file | @set | atom ] [ ... ]
   emerge [ options ] [ action ] < @system | @world >
   emerge < --sync | --metadata | --info >
   emerge --resume [ --pretend | --ask | --skipfirst ]
   emerge --help
Options: -[abBcCdDefgGhjkKlnNoOpPqrsStuUvVwW]
          [ --color < y | n >            ] [ --columns    ]
          [ --complete-graph             ] [ --deep       ]
          [ --jobs JOBS ] [ --keep-going ] [ --load-average LOAD            ]
          [ --newrepo   ] [ --newuse     ] [ --noconfmem  ] [ --nospinner   ]
          [ --oneshot   ] [ --onlydeps   ] [ --quiet-build [ y | n ]        ]
          [ --reinstall changed-use      ] [ --with-bdeps < y | n >         ]
Actions:  [ --depclean | --list-sets | --search | --sync | --version        ]
 
 
For more help consult the man page.

A continuación tienes una ejecución de ejemplo de emerge instalando un paquete llamado "package". Las opciones -atv son abreviaturas de --ask (véase arriba), --tree (mostrar el árbol de dependencias a ser instaladas), y --verbose (véase arriba). Pase el cursor sobre las cajas punteadas rojas para ver una explicación de cada sección de la información:

# emerge -atv package

These are the packages that would be merged, in reverse order:

Calculating dependencies... done! [ebuild U ] category/package-3.0-r2 [2.0] USE="enabled -disabled toggled* new% (-unavailable)" MAKE_OPTIONS="-disabled" 777 kB [ebuild UD ] category/package-2.0 [3.0] 777 kB [ebuild R ] category/package-1.0 777 kB [ebuild N ] category/package-0.5 777 kB

Total: 4 packages (1 new, 1 reinstall, 1 upgrade, 1 downgrade), Size of downloads: 3108 kB

Would you like to merge these packages? [Yes/No]

El símbolo U (de upgrade) muestra que el paquete será actualizado, D (de downgrade), que será rebajado a una versión anterior, N, que es un paquete nuevo. Entre corchetes se muestra la versión del paquete previamente instalada. Los paquetes presentes en el archivo world se muestran en negrita; estos son los paquetes instalados explícitamente por el usuario. Los otros paquetes, o son dependencias de los explícitos, o forman parte del set del sistema.

See also
Vea la sección OUTPUT y la opción --pretend de la página del manual de emerge para una explicación exhaustiva de cómo leer e interpretar la información que otorga Portage.

Cuando hablamos sobre Portage, el término "paquete" puede tener un significado similar que "átomo" (atom). Véase especificador de versión.

Instalar un paquete

Ejemplo de instalación del paquete net-proxy/tinyproxy con las opciones --ask y --verbose:

root #emerge --ask --verbose net-proxy/tinyproxy

Tanto qué paquete, su versión, la ranura en la que se instalará, como el repositorio ebuild de donde se descargará el paquete, se indican usando un especificador de versión.

Consejo
La opción --ask (-a) es muy útil. Permitirá a Portage revisar las acciones que tomará antes de que comience a realizar cambios. La opción --verbose (-v) mostrará información más detallada sobre lo que hará Portage, y suele ser muy útil. Las opciones pueden ser set as default si así se desea. Los ajustes por defecto pueden ser sobreescritos en la línea de comandos, un ejemplo siendo --ask=n.
Advertencia
Si la opción --ask no se utiliza, las acciones pedidas se realizarán sin siquiera necesitar algún tipo de confirmación. La opción --pretend también puede ser usada.
Nota
Hay cosas, como las dependencias, que no deberían ser instaladas a través de emerge. Vea la sección no añada dependencias al archivo world.

La funcionalidad y características del paquete se gobiernan a la hora de instalarlo gracias a los ajustes USE, que pueden ser activados o desactivados dependiendo del uso que se le vaya a dar al software.

Buscar paquetes

Nota
La función de búsqueda de emerge descrita aquí puede mostrar resultados limitados cuando se comparan con los de otras herramientas. La Última versión disponible está ligada a ACCEPT_KEYWORDS (derivada del actual perfil, archivo make.conf, archivo package.accept_keywords, etc.). Adicionalmente, la Última versión disponible y la Última versión instalada no son conscientes de su ranura, por lo que no mostrarán varias versiones por ranura. Esto puede llevar a confusión cuando, al utilizar herramientas como eix o eshowkw, se muestran más resultados que en emerge --search.
See also
Véase también eix, equery, y packages.gentoo.org para formas más avanzadas de buscar paquetes.

Buscar paquetes con proxy en sus nombres:

user $emerge --search proxy

Buscar paquetes con proxy en sus nombres o descripciones:

user $emerge --searchdesc proxy

Buscar paquetes usando una expresión regular:

user $emerge -s '%^python$'

Listar todos los paquetes de una categoría:

user $emerge -s '@net-ftp'

Eliminar (desinstalar) paquetes

Eliminar el paquete net-proxy/tinyproxy usando la opción sensible a dependencias --depclean (-c):

root #emerge --ask --verbose --depclean net-proxy/tinyproxy

Esto eliminará solamente los paquetes que no son necesitados como dependencia de un paquete actualmente instalado.

Una alternativa a usar --depclean para desinstalar paquetes es utilizar emerge --deselect (o la opción -W) y después limpiar los paquetes huérfanos como se describe en la siguiente sección.

Nota
No confunda la opción -c minúscula, que es la abreviatura de --depclean (la cual es más segura), con la opción -C mayúscula, que implica un riesgo de dañar el sistema, y solo debería ser utilizada cuando se necesite por completo (vea el siguiente aviso).
Advertencia
No use la opción --unmerge (-C) (a no ser que se sepa que su comportamiento específico se necesita). Esta opción eliminará paquetes importantes que el sistema necesita para funcionar sin ningún tipo de aviso.

Limpiar paquetes huérfanos

See also
Vea limpiar paquetes huérfanos para información sobre el uso de emerge --depclean para eliminar paquetes no utilizados. Vea también la sección Portage FAQ.

Actualizar paquetes

Vea Actualizar Gentoo para información sobre cómo actualizar paquetes.

Obtén información del sistema

emerge pede imprimir información del sistema que puede ser útil para solucionar problemas. A menudo se necesita publicar esta información a la hora de pedir ayuda o reportar un error.

user $emerge --info

Se puede mostrar información extra al usar la opción --verbose.

Consejos

Verificar y (re)descargar distfiles

Para reverificar la integridad y redescargar distfiles previamente eliminados o corruptos de todos los paquetes actualmente instalados, ejecute:

root #emerge --ask --fetchonly --emptytree @world

No añada dependencias al archivo world

Si una dependencia debe ser reinstalada, use la opción --oneshot. Instalar dependencias vía emerge package sin más opciones las añadiría al archivo world y podría provocar problemas.

Instalar dependencias vía Portage para compilar código fuente de software personalizado también se recomienda; y es preferible escribir un ebuild.

Vea User:Sam/Portage help/Maintaining a Gentoo_system para más información.

Reanudar emerge

Si la ejecución de emerge de varios paquetes es interrumpida (p. ej. por el uso de ctrl+c, fallo informático...), el comando emerge puede ser reanudado a partir del paquete fallido con la opción --resume. Las opciones --keep-going y --skipfirst también pueden resultar de interés. Vea la man page de emerge para más detalles.

Otorgar configuración temporal a Portage a través de variables del entorno

Advertencia
Otorgar variables del entorno a Portage en la línea de comandos resultará en cambios únicamente temporales a la configuración del sistema, y, por tanto, todos los cambios serán revertidos por cualquier rutina de mantenimiento, como una actualización del sistema. Aunque esta sección pueda ser útil para echarle un vistazo a los efectos de los cambios de configuración al usar la opción --pretend, no debería ser la manera de instalar o actualizar paquetes.


La forma adecuada de cambiar la configuración de Portage es através de los archivos de configuración de Portage, como puedan ser /etc/portage/make.conf, /etc/portage/package.accept_keywords, /etc/portage/package.use, etc.

Al comando emerge se le pueden otorgar valores de configuración temporales al declarar variables del entorno en la misma línea de comandos para afectar a esa ejecución particular. Por ejemplo, para instalar app-editors/emacs con el ajuste USE svg activado, pero no hacer este ajuste USE permanente:

root #USE='svg' emerge app-editors/emacs

O para dar opciones de configuración extra a los paquetes que usan la función econf en su ebuild:

root #EXTRA_ECONF='--without-compress-install' emerge app-editors/emacs
Nota
Si se usa sudo al ejecutar emerge, las variables del entorno deberán ser colocadas después de sudo, ya que sudo no suele conservar el entorno desde el que se ejecuta:
user $sudo USE='svg' emerge -av app-editors/emacs

Reinstalar un paquete que proveyó de un archivo específico

A veces es útil poder reinstalar un paquete con emerge al simplemente especificar un archivo particular que fue provisto por dicho paquete.

Por ejemplo, si el/la usuario/a quisiera reinstalar /usr/lib/libunwind.a, pero no sabe qué paquete dio este archivo, el paquete del que vino puede ser determinado por emerge indicando la ruta del archivo:

user $emerge -p /usr/lib/libunwind.a
These are the packages that would be merged, in order:
 
Calculating dependencies... done!
Dependency resolution took 2.76 s (backtrack: 0/20).
 
[ebuild   R    ] sys-libs/llvm-libunwind-17.0.6

Solo los archivos que fueron provistos por un paquete actualmente instalado deben ser reinstalados vía emerge de esta manera. Vea Pfl para descubrir más maneras de encontrar a qué paquetes podrían "pertenecer" los archivos.

Solución de problemas

See also
Vea ayuda con Portage para temas relacionados con problemas de Portage.

Instalación paquetes vía emerge fallida en la fase de desempaquetado

El siguiente mensaje puede ser mostrado durante la instalación de paquetes a través de emerge:

 * Error messages for package dev-libs/libinput-1.16.0:
 * The ebuild phase 'unpack' has exited unexpectedly. This type of behavior
 * is known to be triggered by things such as failed variable assignments
 * (bug #190128) or bad substitution errors (bug #200313). Normally, before
 * exiting, bash should have displayed an error message above. If bash did
 * not produce an error message above, it's possible that the ebuild has
 * called `exit` when it should have called `die` instead. This behavior
 * may also be triggered by a corrupt bash binary or a hardware problem
 * such as memory or cpu malfunction. If the problem is not reproducible or
 * it appears to occur randomly, then it is likely to be triggered by a
 * hardware problem. If you suspect a hardware problem then you should try
 * some basic hardware diagnostics such as memtest. Please do not report
 * this as a bug unless it is consistently reproducible and you are sure
 * that your bash binary and hardware are functioning properly.

Si bien este problema pueda ser causado por las razones listadas por la pantalla anterior, a menudo es obra de un disco de almacenamiento que se está quedando sin espacio, concretamente el que usa Portage para desempaquetar el código fuente de los ebuilds. Esta ruta es configurada a través de la variable PORTAGE_TMPDIR y puede ser encontrada rápidamente al preguntarle a Portage:

user $portageq envvar PORTAGE_TMPDIR
/var/tmp

El comando df puede ser usado para ver el espacio disponible de la partición donde PORTAGE_TMPDIR ha sido montada (que seguramente sea la partición raíz (/)). Vea Limpieza del disco para más detalles sobre cómo gestionar y limpiar un disco de almacenamiento.

Véase también