Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[HOW-TO]Cómo usar Portage correctamente(actualizado: 29-5-8)
View unanswered posts
View posts from last 24 hours

Goto page 1, 2, 3, 4  Next  
Reply to topic    Gentoo Forums Forum Index Spanish
View previous topic :: View next topic  
Author Message
ArsDangor
Guru
Guru


Joined: 20 May 2003
Posts: 477

PostPosted: Fri Jul 09, 2004 12:27 am    Post subject: [HOW-TO]Cómo usar Portage correctamente(actualizado: 29-5-8) Reply with quote

Cómo usar Portage correctamente
Última revisión: 29-5-8
Origen
Este post empieza como una traducción del how-to How to use portage correctly, iniciado y mantenido por GaMMa. El material incluído o modificado en las últimas revisiones es totalmente propio.

Introducción
Portage es un recurso excelente cuando se usa adecuadamente. El uso incorrecto puede llevar a un sistema sobrecargado con paquetes no traceables (no se puede decidir si están ahí a petición del usuario, son dependencias de algo que necesita el usuario o si simplemente sobran), así como a un fichero world corrupto.
Esta guía pretende ayudar al usuario a mantener mejor el sistema. Aunque los ejemplos puedan ir quedando obsoletos (algunos datan de 2.004), los comandos, ficheros de configuración y opciones que demuestran son totalmente actuales.

Emerger paquetes
Al emerger un paquete marcado como inestable es recomendable hacerlo mediante
Code:
emerge algo
Lo siguiente es un ejemplo de lo que NO DEBE HACERSE
Code:
ACCEPT_KEYWORDS=~x86 emerge algo

NO HAGÁIS ESTO ya que se seguirá ~x86 para todas las dependencias, y esto podría no ser lo que deseáis.
Lo aconsejable es intentar instalar primero el paquete. Si no es la versión deseada, intentar forzarlo a esta versión como se indica más adelante. A continuación reintentar la instalación. Si en alguna dependencia se encuentra con que necesita un paquete inestable, volver a realizar el mismo proceso para esa dependencia y volver a instalar el paquete original de nuevo. Repítelo con las dependencias que pudieras necesitar, hasta que el paquete esté instalado.
Sí, puede parecer engorroso. Pero al menos sabes exactamente qué paquetes inestables se instalan en tu sistema.

AVISO: Emerger un ebuild directamente (emerge algo.ebuild) ha causado problemas a algunos usuarios y no debe hacerse. En algunas situaciones el paquete no se añade al fichero world. Este método no informará al usuario cuando aparezcan nuevas versiones (inestables) de este paquete, incluso si contienen correcciones esenciales.

Paquetes inmensos con dependencias que no deseamos
Esto pasa con "monstruos" como KDE o Gnome. Lo instalan todo, todos los programas asociados, independientemente de que nos interesen o no. Por ejemplo, a mí no me hace ninguna falta el paquete kdeedu. En tiempos, la solución era "inyectar" los paquetes, con la versión específica. Ahora, lo que se hace es añadir una línea al fichero /etc/portage/profile/package.provided, que ofrece una funcionalidad similar. Así pues, para evitar que se instale un paquete no deseado, haremos
Code:
echo 'categoria/paquete-versión' >> /etc/portage/profile/package.provided

Hay quien habla de las bondades de editar el ebuild y eliminar las dependencias que no se deseen. Esto no tiene por qué sobrevivir a un emerge sync.
Para el caso de kdeedu:
Code:
echo 'kde-base/kdeedu-3.3.0' >> /etc/portage/profile/package.provided


OJO
Algunas dependencias son innecesarias (kde->kdeedu), y no hay problema en "inyectarlas" o en añadirlas al fichero package.provided. Sin embargo, algunas otras dependencias son necesarias. Cuando esto suceda, portage no hará caso del fichero package.provided.
También pasará de ese fichero cuando haya actualizaciones para los paquetes de world. Así pues, si xorg está en nuestro fichero world (cosa probable si habéis migrado desde xfree) y hay una actualización disponible, os la instalará, por mucho que queráis "inyectarla". Para evitar estas actualizaciones no deseadas, tendréis que enmascarar el paquete.

Mantener paquetes
A veces, al hacer 'emerge -u world', Portage quiere rebajar la versión de un paquete. Esto suele suceder en los paquetes inestables que tengamos instalados. Para evitarlo hay que crear el directorio /etc/portage.
Code:
mkdir -p /etc/portage

La opción -p de mkdir evitará que aparezca un mensaje de error en caso de que el directorio ya exista (gracias Earthwings por la explicación).

En el fichero /etc/portage/package.keywords, se añade una línea con el nombre completo del paquete seguido por ~x86.
Por ejemplo, para que Portage reconozca que queremos usar versiones inestables de Gaim, basta con hacer en una consola
Code:
echo net-im/gaim ~x86 >> /etc/portage/package.keywords

Esto ha de hacerse para todos los paquetes inestables que no queramos ver rebajados.

También podemos habilitar versiones específicas de algún paquete, para que cuando aparezca una nueva versión inestable, el sistema no actualice ese paquete. Para ello, ha de hacerse un
Code:
echo =app-loquesea/algo-version ~x86 >> /etc/portage/package.keywords
donde version es la versión del paquete, sin el -rN.
La línea anterior sólo permitirá que se instale una versión determinada del paquete. Sin embargo, las revisiones seguirán estando enmascaradas por ~arq. Para permitir que el paquete se actualice siguiendo las siguientes revisiones, usaremos lo siguiente:
Code:
echo ~app-loquesea/algo-version ~x86 >> /etc/portage/package.keywords


Aún así, hay veces en las que Portage quiere rebajar la versión de un paquete. Habitualmente hay una razón de peso para ello. Aunque también hay excepciones (N del T: NUNCA rebajéis la versión de la glibc).
Por ejemplo, podríais necesitar los linux-headers-2.6 (aunque xorg no compila con ellos). Para evitar que portage nos devuelva linux-headers-2.4, haremos
Code:
echo sys-kernel/linux-headers -* >> /etc/portage/package.keywords


Algunos paquetes intentan volver una y otra vez a nuestro sistema. Los usuarios de xorg nos encontramos a menudo con que Portage quiere instalarnos xfree. Para solucionarlo, añadiremos a /etc/portage/package.mask el nombre completo del paquete que queremos enmascarar. Así:
Code:
echo x11-base/xfree >> /etc/portage/package.mask


También hay veces en las que los paquetes están fuertemente enmascarados, no sólo por ~arq. Si estamos interesados en uno de estos paquetes, añadiremos el nombre completo a /etc/portage/package.unmask. Un paquete en estas circunstancias es realone:
Code:
echo media-video/realone >> /etc/portage/package.unmask


También hay un package.use por si quieres modificar tus variables USE sólo para un paquete. Por ejemplo, para evitar que se compile la interfaz gráfica de mldonkey, yo hice
Code:
echo net-p2p/mldonkey -gtk >> /etc/portage/package.use


Las dependencias "virtuales" y los perfiles: el caso de xorg-x11
El caso de XOrg es bastante más problemático. No podemos simplemente enmascarar XFree, puesto que algunos paquetes "misteriosamente", intentarán reinstalarlo. La explicación es sencilla: esos paquetes suelen depender de un servidor X, por una dependencia llamada "virtual/x11". Por defecto, dicha dependencia se satisface únicamente instalando x11-base/xfree. Sin embargo, las dependencias virtuales permiten una gestión más flexible: permiten tener alias y alternativas. La forma de proceder es crearse un directorio /etc/portage/profile
Code:
mkdir -p /etc/portage/profile
e introducir en el fichero virtuals las dependencias de los paquetes "virtuales" que queremos personalizar:
Code:
echo 'virtual/xfree    x11-base/xorg-x11
 virtual/x11    x11-base/xorg-x11
 virtual/opengl    x11-base/xorg-x11
 virtual/glu    x11-base/xorg-x11' >> /etc/portage/profile/virtuals


Manteniendo el fichero world
A veces algunos paquetes no se añaden al fichero world por cualquier razón (uso del flag -U, se emergió el ebuild en vez del paquete).
Para intentar arreglarlo, tenemos la herramienta regenworld, que buscará los paquetes que tengamos instalados y regenerará el fichero world de una manera más adecuada. Usarla es tan difícil como ejecutar como root
Code:
regenworld

Si nuestro fichero world está realmente mal, este hilo y este otro contienen scripts e información de cómo regenerarlo por completo.
El script de este último me vino a mí (a ArsDangor) de perlas una vez que me encontré con un fichero world realmente jodido por culpa del flag -U (y de alguna cosilla más).
Es una herramienta mucho más minuciosa y potente, pero también más lenta.

¡¡Horror!! ¡Tengo el mismo paquete instalado muchas veces!
Ante todo, mucha calma. Esto puede ser o no ser malo.
Por ejemplo, algunos paquetes no compilan bajo GCC 3.4. Pero el GCC 3.4 genera ejecutables y bibliotecas notablemente más rápidos que el 3.3. Por lo tanto puede ser conveniente tener varias versiones instaladas. Gentoo necesita dos versiones de algunos paquetes, como db.
Para esto están los SLOTs.

Al ver que hay varios paquetes "repetidos" en el sistema, mucha gente tiene la tentación de hacer
Code:
emerge prune

Esta solución es ineficaz y problemática. La opción prune no respeta los SLOTs. Lo que hará será desinstalar todas las versiones del paquete en cuestión, salvo la versión instalada más recientemente. Así pues,
Code:
emerge prune gtk
hará que sólo funcionen las aplicaciones compiladas con GTK 2 (si esta fue la última versión que se instaló), y que dejen de funcionar las aplicaciones compiladas con GTK 1. ¡Adiós al XXMS!

¿Cuándo conviene desinstalar paquetes duplicados? Cuando hay varias versiones en el mismo SLOT. Esto no debería suceder.
Paquetes en los que se modifican las variables USE
En ocasiones modificamos las variables USE que afectan a los paquetes que tenemos instalados. Bien sea a través de nuestro make.conf o por el fichero package.use, puede que deseemos añadir o eliminar una característica al sistema que tenemos.
Para actualizar todos los paquetes que se vean afectados por ese cambio en sus USE, tenemos la opción --newuse, que nos actualizará los paquetes cuyas USE hayan cambiado.

Evitar que los ficheros descargados por Portage ocupen todo el disco
Los ficheros descargados por emerge se almacenan en /usr/portage/distfiles (por defecto). Al cabo de un tiempo de uso de Portage, este directorio puede llegar a consumir un espacio muy valioso de nuestro disco.
Casi todos hemos hecho alguna vez
Code:
rm -rf /usr/portage/distfiles/*
y nos hemos quedado maravillados de la cantidad de espacio que aparecía en nuestro disco duro. Esto tiene un inconveniente: si aparece una revisión del paquete habrá que bajárselo de nuevo.
Si pudiéramos eliminar sólo los ficheros que ya no vayan a ser utilizados podríamos ahorrar bastante disco duro y no poco ancho de banda y tiempo de descarga (y, aunque nos importe menos, también podemos reducir la carga de los mirrors). En los foros hay multitud de scripts para limpiar el directorio /usr/portage/distfiles de una manera más "inteligente". Aquí nos limitaremos al que se distribuye con el paquete gentoolkit: eclean.
Code:
eclean distfiles
hará una limpieza selectiva del directorio. El problema es que este comando es muy conservador. No se atreve a borrar muchas cosas que realmente están de más.
La opción --destructive es una versión más agresiva. Eliminará todos los ficheros en distfiles que estén asociados a paquetes no instalados, o a versiones obsoletas.
Code:
eclean --destructive distfiles
realizará una limpieza mucho más satisfactoria. Aunque si en algún momento Portage quisiera rebajar una versión, tendría que bajarse más ficheros.

Este script también se puede aplicar a los paquetes binarios guardados en /usr/portage/packages.

¡Cuánto texto! ¿Y si me pierdo algún mensaje importante?
A todos nos ha pasado alguna vez: queremos emerger algo que incluye un porrón de paquetes (actualizar todo el sistema, instalar KDE...), lo dejamos compilando por la noche y cuando nos levantamos está todo ahí, pero no se comporta como esperábamos. Buscamos información desesperados, y cuando preguntamos algún listillo nos dice:
el avispado de turno wrote:
El ebuild te avisa de que tienes que hacer XXX, ¿es que no sabes leer?
Así que para sentirnos un poco menos estúpidos, ¿tenemos que buscar las 4 líneas de la fortuna entre las 100.000 líneas de configuración, compilación, descargas, parches y quién sabe qué más? Por suerte, Portage es un poco más benévolo. Al menos, desde la versión 2.1.

Desde la versión 2.1, existe la posibilidad de registrar todos los mensajes que sacan los ebuilds (sí, esos con asteriscos de colorines). Se controla con unas cuantas variables en el fichero make.conf, y funciona más o menos así:
La variable PORTAGE_ELOG_CLASSES contiene las clases de mensajes que se quieren guardar. Los valores posibles son info, warn, error y log. Se pueden registrar varios tipos de clases, así:
Code:
PORTAGE_ELOG_CLASSES="log error warn"

La variable PORTAGE_ELOG_SYSTEM contiene las formas de almacenar estos logs. Sus posibles valores son mail para mandarlo por correo, save para guardarlo en ficheros en $PORTAGE_TMPDIR/elogs (habitualmente, /var/tmp/elogs), syslog y custom. Se pueden especificar varias maneras de almacenar estos registros:
Code:
PORTAGE_ELOG_SYSTEM="syslog save mail"
habilitará los sistemas save, syslog y mail. Elog se habilita al dar valores a estas dos variables. Comentar o dejar en blanco alguna de ellas lo deshabilita.
Si habéis escogido el sistema mail, tendréis que especificar la dirección de correo y el servidor al que enviar. Esto se hace con la variable PORTAGE_ELOG_MAILURI. Aquí especificaremos la dirección de correo y el servidor SMTP saliente. Por ejemplo,
Code:
PORTAGE_ELOG_MAILURI="yomismo@midominio.com smtp.midominio.com"

Ahora, dependiendo de las opciones que hayamos especificado, recibiremos un mensaje de correo electrónico por cada paquete que emerjamos, o habrá un fichero por cada paquete emergido en /var/tmp/elogs, o líneas con la etiqueta "portage" en el log del sistema...

Paquetes bloqueando paquetes al emerger. ¿Y ahora qué hago?
En ocasiones (pocas ocasiones, por suerte) nos pasan cosas como la siguiente:
Code:
$ emerge nvidia-drivers
These are the packages that would be merged, in order:

Calculating dependencies... done!
[blocks B     ] >=x11-base/xorg-server-1.0.99 (is blocking x11-drivers/nvidia-drivers-1.0.8762-r1)
[ebuild  N    ] x11-drivers/nvidia-drivers-1.0.8762-r1  USE="dlloader"

En este ejemplo, xorg-server-1.1, que tengo instalado, me está impidiendo instalar nvidia-drivers. ¿Qué hacemos?

Este bloqueo se debe a alguna incompatibilidad entre paquetes. Por ejemplo, la serie 8XXX de drivers de nvidia no funciona bien con Xorg 7.1. Así que tenemos que elegir: o nos quedamos con los drivers de nvidia, o nos quedamos con la versión que tenemos del servidor X.
Si queremos el servidor X, no haremos nada (o enmascararemos nvidia-drivers). Si queremos los drivers de nvidia, tendremos que desinstalar el servidor X:
Code:
$ quickpkg xorg-server # ¡¡¡¡Haced una copia de seguridad!!!!
$ emerge -C xorg-server
Y tras esto, ya podemos instalar los drivers de nvidia:
Code:
$ emerge -p nvidia-drivers
These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N    ] x11-drivers/nvidia-drivers-1.0.8762-r1  USE="dlloader"

Si después de la desinstalación siguen apareciendo paquetes que bloquean lo que queremos instalar, habrá que repetir: elegir, enmascarar y desistir o desinstalar y proceder. Como siempre, es importante hacer
Code:
$ emerge -uD world
$ revdep-rebuild
Tras desinstalar cualquier paquete, por si nos hubiéramos cargado algo.

Reinstalando dependencias
Cuando emergemos un paquete, sin más, lo añadimos al fichero world. Pero a veces necesitamos reinstalar una simple dependencia (todos nos hemos cargado un fichero por error, ¿a que sí?). Para mantener limpio el fichero world (y por más ventajas), conviene mantener las dependencias fuera. Aquí es donde entra la opción --oneshot. Los paquetes instalados con --oneshot no serán añadidos al fichero world.

Por ejemplo, podríamos querer mplayer, que seguramente instalará libtheora. Si necesitamos reinstalar libtheora, la forma de mantener limpio el fichero world será (gracias a Stolz por el ejemplo):
Code:
emerge --oneshot libtheora


Para frikis e impacientes: overlays
Algunas veces somos tan cagaprisas que no podemos esperar a que un paquete entre en portage. Hay algo que nos impulsa a tenerlo ya. En este caso, alguno estará tentado de bajarse el tar.gz de la web, y, a mano, hacer
Code:
./configure && make && make install

Entonces tendremos multitud de ficheros que portage no sabrá reconocer, basura por doquier.

La forma más adecuada de manejar esta situación es conseguir un ebuild para el paquete. Muchos proyectos cuelgan en la página web un ebuild, junto a los RPMs y los DEBs. En otros casos, basta con usar el ebuild de una versión anterior que hubiera en Portage. Para que Portage lo trate adecuadamente, crearemos un directorio para los ebuilds personales (overlays). Así:
Code:
mkdir -p /usr/local/portage
Después, declararemos en nuestro make.conf la variable PORTDIR_OVERLAY:
Code:
PORTDIR_OVERLAY=/usr/local/portage # O el directorio que hayáis definido vosotros

Y ahora, sólo nos queda crear la categoría adecuada para la versión del paquete que queramos instalar. Y meter en su directorio el ebuild. En mi caso, quería aMule cvs (que no está en Portage) y wxGTK 2.5.5 (la versión más reciente en Portage es la 2.5.3). Así pues, me bajé el ebuild de amule-cvs de la página de amule. Y luego creé el directorio y metí el ebuild dentro:
Code:
mkdir -p /usr/local/portage/net-p2p/amule-cvs
cp ~/amule-cvs-2.ebuild /usr/local/portage/net-p2p/amule-cvs
Lo mismo para wxGTK. Aprovecharemos el ebuild que ya hay en Portage.
Code:
mkdir -p /usr/local/portage/x11-libs/wxGTK
cp /usr/portage/x11-libs/wxGTK/wxGTK-2.5.3.ebuild /usr/local/portage/x11-libs/wxGTK/wxGTK-2.5.5.ebuild

Ahora, Portage nos ofrecerá la opción de pasar de wxGTK 2.5.3 a wxGTK 2.5.5.
Code:
$ emerge -puv wxGTK
These are the packages that I would merge, in order:

Calculating dependencies  ...done!
[ebuild   U   ] x11-libs/wxGTK-2.5.5  -debug +gtk2 +no_wxgtk1 -odbc +opengl +unicode 7,100 kB [1]

Total size of downloads: 7,100 kB
Portage overlays:
 [1] /usr/local/portage

Y si buscamos amule-cvs, Portage lo encontrará:
Code:
$ emerge -s amule-cvs
[ Results for search key : amule-cvs ]
[ Applications found : 1 ]

*  net-p2p/amule-cvs
      Latest version available: 2
[...]

Antes de instalar, recordad que hay que hacer el resumen (digest) del ebuild.
Code:
$ ebuild /usr/local/portage/net-p2p/amule-cvs/amule-cvs-2.ebuild digest
$ ebuild /usr/local/portage/x11-libs/wxGTK/wxGTK-2.5.5.ebuild digest

Y ya podemos instalar los nuevos paquetes, sin volver loco a Portage.
Conclusiones
Esta guía te evitará la mayor parte de los problemas que te pudieran aparecer al actualizar el sistema.
Code:
emerge -uDav --newuse world
es la mejor manera de actualizar todo el sistema. El flag u es para actualizar (update), D para actualizar las dependencias (deep), a para preguntar si continuar (ask) y v es "verboso", para así poder ver las variables USE que pudieran afectar a la compilación y dependencias de cada paquete.

Hay más información sobre otras opciones de Portage en la guía básica y en la guía avanzada de Portage, en la documentación oficial de Gentoo.
También es recomendable echarle un vistazo de vez en cuando al fichero /etc/make.conf.example para ver el significado de algunas variables. En la página man de Portage (man portage) se describen los distintos ficheros que influyen en su comportamiento.

Agradecimientos
Muchas gracias a Earthwings por la calidad de sus explicaciones, y por la rapidez en responder a mis dudas.
Gracias, evidentemente, a GaMMa por haber escrito un post tan útil y haberlo mantenido soberbiamente actualizado.
Y a todos los que hayáis contribuido o vayáis a contribuir a este hilo.

Salu2.
_________________
Cómo usar Portage correctamente


Last edited by ArsDangor on Thu May 29, 2008 11:26 pm; edited 20 times in total
Back to top
View user's profile Send private message
luisfeser
Guru
Guru


Joined: 22 May 2004
Posts: 543
Location: /España/Toledo

PostPosted: Fri Jul 09, 2004 4:23 pm    Post subject: Reply with quote

Buen trabajo ArsDangor :).

O, great work!!! k dirian los guiris :P

A ver si lo hacen fijo, k tener estas cosillas a mano es mas que recomendable :D

Saludos.
Back to top
View user's profile Send private message
kabutor
l33t
l33t


Joined: 12 Dec 2002
Posts: 821
Location: Benalmadena - Melrose Place

PostPosted: Sat Jul 10, 2004 2:32 pm    Post subject: Reply with quote

pus vaya, eso de que no se pueda usar el -U es un rollo, era mejor asi que tener que añadir los paquetes en el /etc/portage..

EDIT: Eso si, con el metodo este te avisa de cuando hay nuevas versiones "inestables" de un paquete.. :D
Back to top
View user's profile Send private message
TieferFeld
Guru
Guru


Joined: 01 May 2004
Posts: 550
Location: irgendwie, irgendwo, irgendwann

PostPosted: Sat Jul 10, 2004 4:12 pm    Post subject: Reply with quote

Esto...
Yo tenía el problema de que al instalar el xorg hay paquetes que dependen de xfree en vez de hacerlo de virtual-x11... y al hacer el emerge -puDv world me quiere instalar el xfree. Hice
Code:
echo x11-base/xfree >> /etc/portage/package.mask
pero no hay diferencia :-S Sigue queriendo instalármelo, por lo cual no puedo re-emerger -u algunos paquetes :-S

Cómo hago??
Gracias :-D
Back to top
View user's profile Send private message
ArsDangor
Guru
Guru


Joined: 20 May 2003
Posts: 477

PostPosted: Sat Jul 10, 2004 4:40 pm    Post subject: Reply with quote

Por lo que he visto, el problema está en que casi todos los perfiles de /usr/portage/profiles incluyen una línea como la siguiente:
Code:
virtual/x11 x11-base/xfree

Por eso parece que multitud de paquetes dependen de xfree. La solución "sucia", es inyectar (emerge -i) xfree . Para este caso, es la única solución que he visto que funcione a la perfección.
Otra solución es editar todos los perfiles para que sustituyan xfree por xorg. Pero por desgracia, esto se va al carajo cuando se hace un emerge sync.
Estoy buscando una solución óptima. Cuando la encuentre, la postearé en el mensaje original.

Salu2.
_________________
Cómo usar Portage correctamente
Back to top
View user's profile Send private message
ArsDangor
Guru
Guru


Joined: 20 May 2003
Posts: 477

PostPosted: Sat Jul 10, 2004 7:02 pm    Post subject: Reply with quote

OK. He añadido una sección al respecto al how-to. La versión rápida de arreglar las dependencias xorg/xfree es:
Code:
sed -i 's/xfree/xorg-x11' /etc/make.profile/virtuals

_________________
Cómo usar Portage correctamente
Back to top
View user's profile Send private message
quelcom
Guru
Guru


Joined: 16 Mar 2004
Posts: 306
Location: Catalonia

PostPosted: Sat Jul 10, 2004 7:17 pm    Post subject: Reply with quote

Muxisimas gracias por el How-To.

Imprimiendo ahora mismo :wink:
Back to top
View user's profile Send private message
Frikjan
n00b
n00b


Joined: 30 Oct 2003
Posts: 20
Location: bcn

PostPosted: Sun Jul 11, 2004 10:36 pm    Post subject: Reply with quote

bastante útil, algo así ya empecé a poner en práctica gracias al manual del amigo Noltha.

Lo único una cuestión, de siempre he usado ~x86, vamos es q lo tengo en el make.conf por defecto. Entonces que consejos puedo seguir? o no difiere en nada?
Back to top
View user's profile Send private message
ArsDangor
Guru
Guru


Joined: 20 May 2003
Posts: 477

PostPosted: Mon Jul 12, 2004 12:37 am    Post subject: Reply with quote

Yo también tengo en mi make.conf ACCEPT_KEYWORDS="~x86". En nuestro caso, el "nivel superior" de inestabilidad, es el keyword "-*" (paquetes con enmascaramiento fuerte, habitualmente por una buena razón).
Lo demás puedes seguirlo tal y como está en el how-to.
_________________
Cómo usar Portage correctamente
Back to top
View user's profile Send private message
kabutor
l33t
l33t


Joined: 12 Dec 2002
Posts: 821
Location: Benalmadena - Melrose Place

PostPosted: Sat Jul 31, 2004 11:06 pm    Post subject: Reply with quote

una duda que me pasa ahora, y si quiero mantener una version antigua de un programa? Por ejemplo los ati-drivers..
Back to top
View user's profile Send private message
psm1984
l33t
l33t


Joined: 14 Oct 2003
Posts: 919

PostPosted: Sun Aug 01, 2004 2:12 am    Post subject: Reply with quote

kabutor wrote:
una duda que me pasa ahora, y si quiero mantener una version antigua de un programa? Por ejemplo los ati-drivers..

Supongo que con poner en /etc/portage/packege.mask ">media-video/ati-drivers-x" funcionara.
Back to top
View user's profile Send private message
ertomas
Apprentice
Apprentice


Joined: 25 Dec 2003
Posts: 270
Location: Barcelona, /home/tomascayuelas

PostPosted: Sun Aug 01, 2004 2:51 am    Post subject: Reply with quote

Excelente guia ArsDangor!!!!!


La verdad es que me esta siendo bastante util, y la tengo ya imprimida y puesta en mi libreria todavia, me faltan comandos por explorar. :P

Me ha resultado de gran ayuda, Gracias


UN SALUDO
Back to top
View user's profile Send private message
kabutor
l33t
l33t


Joined: 12 Dec 2002
Posts: 821
Location: Benalmadena - Melrose Place

PostPosted: Sun Aug 01, 2004 1:58 pm    Post subject: Reply with quote

Este post podria estar "stick" es muy util la verdad, yo he tenido que buscarlo para ver la duda que tenia :)
Back to top
View user's profile Send private message
Josemilla
n00b
n00b


Joined: 13 Mar 2004
Posts: 50
Location: Madrid (Spain)

PostPosted: Sun Aug 01, 2004 2:11 pm    Post subject: Reply with quote

Yo tambien voto por que sea fijo.

Aunque tengo un problemilla al hacer un
Code:
emerge -uDav world


y me intenta instalar Fluxbox y lo tenía desinstalado con anterioridad con
Code:
emerge unmerge fluxbox


no debería desinstalarlo asi o que hago mal?
_________________
Hijo, en la vida hay tres tipos de hombres: los que saben contar y los que no. Homer J. Simpson
josema@jabber.org
Back to top
View user's profile Send private message
caos
Apprentice
Apprentice


Joined: 22 Sep 2003
Posts: 223

PostPosted: Sun Aug 01, 2004 2:38 pm    Post subject: Reply with quote

Josemilla, si te intenta instalar de nuevo el fluxbox hay dos opciones:

a) tienes el fluxbox en tu lista de programas en /var/cache/edb/world

b) el fluxbox es dependencia de alguno de los programas que tienes en esa lista. Para comprobar este ultimo supuesto puedes hacer:
Code:

# emerge gentoolkit

# qpkg -I -q fluxbox



y te dira que paquete de los que tienes instalados tiene como dependencia el fluxbox
_________________
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas. Albert Einstein.
Back to top
View user's profile Send private message
Josemilla
n00b
n00b


Joined: 13 Mar 2004
Posts: 50
Location: Madrid (Spain)

PostPosted: Sun Aug 01, 2004 7:04 pm    Post subject: Reply with quote

Ok, ya está solucionado. El "problema" estaba en que tenia un paquete con temas para Fluxbox y por ello me volvía a emerger Fluxbox.

Lo único es que me dice ahora que no hay nada para emerger y me pregunta:
Code:
Nothing to merge; do you want me to auto-clean packages? [Yes/No]


Que le digo? Es peligroso hacer una limpia?

Saludos y muchas gracias por la ayuda caos
_________________
Hijo, en la vida hay tres tipos de hombres: los que saben contar y los que no. Homer J. Simpson
josema@jabber.org
Back to top
View user's profile Send private message
HeCTOr
Tux's lil' helper
Tux's lil' helper


Joined: 19 Jul 2004
Posts: 132

PostPosted: Sun Aug 01, 2004 7:18 pm    Post subject: Reply with quote

Cada vez que ago algo la cago :lol: estoy haciendo un emerge -u world y me está bajando 314 paquetes, espero que no me destroze el sistema :cry:
Salu2 y muy buen post :roll:
Back to top
View user's profile Send private message
ArsDangor
Guru
Guru


Joined: 20 May 2003
Posts: 477

PostPosted: Mon Aug 02, 2004 4:55 pm    Post subject: Reply with quote

Jodeer. Me voy unos días a la playa y este hilo me ze descontrola. :P

Quote:
Este post podria estar "stick" es muy util la verdad, yo he tenido que buscarlo para ver la duda que tenia
He estado mirando en la ayuda de los foros, y no sé a quién hay que consultar para que el hilo quede fijo...

Pero vamos, si la gente lo encuentra útil, algún administrador reparará en él. ;)

Quote:
kabutor wrote:
una duda que me pasa ahora, y si quiero mantener una version antigua de un programa? Por ejemplo los ati-drivers..
Supongo que con poner en /etc/portage/packege.mask ">media-video/ati-drivers-x" funcionara.

Sí. Funciona. De mi /etc/portage/package.mask:
Code:
>net-p2p/mldonkey-2.5.17

Así me quedo con las versiones estables de mldonkey. :)
_________________
Cómo usar Portage correctamente
Back to top
View user's profile Send private message
-RdX-
n00b
n00b


Joined: 23 Dec 2003
Posts: 60
Location: Sevilla (spain)

PostPosted: Mon Aug 02, 2004 6:42 pm    Post subject: Reply with quote

Hola a todos,
Me he dado cuenta de que mi fichero world y mi sistema es un desastre.

con la herramienta que puedes encontrar en https://forums.gentoo.org/viewtopic.php?t=142475 he hecho dep -w y le he dado a que me regenere el fichero world obteniendo esto:

Code:

325 packages in world:  165 valid,  160 redundant;
85 packages in system;
725 packages installed: 11% in system, 44% in world, 65% deps.


despues hice :

emerge -p prune

asegurandome que no quitaba versiones nuevas y dejaba las viejas. Pero cuando hice un emerge uD world me volvio a instalar lo que quite con el prune.

como puedo quitar todos esos ebuilds antiguos. esque parece como si pasase esto:

los paquetes X e Y dependen del Z.

instalo el paquete X y me instala el Z al depender de el.
actualizo el sistema y me actualiza el Z teniendo dos versiones de el
instalo el paquete Y y usa el Z actualizado.
quito el Z antiguo.
al actualizar el sistema de nuevo me instala el Z antiguo porque el paquete X dependia de el.

Z no es un paquete virtual.

Sabeis como ordenar todo, reemergo todo el sistema?, me gustaria no tener 4 versiones de cada paquete y nose como organizarme.

Saludos y muy buen HOW-TO.[/url]
Back to top
View user's profile Send private message
caos
Apprentice
Apprentice


Joined: 22 Sep 2003
Posts: 223

PostPosted: Mon Aug 02, 2004 7:01 pm    Post subject: Reply with quote

Si tienes varias versiones instaladas de un mismo paquete y al hacer un:

Code:

emerge -p depclean


no intenta desinstalar ninguna de esas versiones seguramente sea debido a que necesitas todas esas versiones. Es posible que distintos programas necesitan distintas versiones de un mismo paquete.
_________________
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas. Albert Einstein.
Back to top
View user's profile Send private message
ArsDangor
Guru
Guru


Joined: 20 May 2003
Posts: 477

PostPosted: Mon Aug 02, 2004 7:31 pm    Post subject: Reply with quote

La opción prune te elimina versiones distintas del mismo paquete. Y la forma de eliminarlas es "cronológica": elimina la opción que instalaste primero y considera la 2ª que instalaste la versión más moderna. Esto no siempre viene bien.

A veces necesitas tener varias versiones del mismo programa. Yo tengo el gcc 3.4.1 y, como algunos paquetes no compilan con él, el 3.3.4. El XMMS requiere GTK 1.2. Y el gimp prefiere GTK 2. Para la administración de gentoo necesitas tener, a la vez varias versiones de gdbm. Para eso están los SLOTs. Y la opción "prune" no los tiene en cuenta.

Para saber qué paquetes son superfluos, haz
Quote:
qpkg -d -s
y podrás eliminar las versiones más antiguas. Habitualmente, esto es lo que hace un
Code:
emerge depclean
. Claro que, si tu fichero world no estaba en un estado maravilloso necesitarás ir con cuidado.

Como esta pregunta ha aparecido en más de una ocasión, esta noche ampliaré el how-to para cubrirlas.

Salu2.
_________________
Cómo usar Portage correctamente
Back to top
View user's profile Send private message
ArsDangor
Guru
Guru


Joined: 20 May 2003
Posts: 477

PostPosted: Fri Aug 20, 2004 5:51 pm    Post subject: Reply with quote

Lo que iban a ser unas horas se han convertido en 20 días... :oops:
En fin. Ya está la explicación de cómo actuar ante los paquetes repetidos.

Espero que os sea útil.
Por cierto, he recibido un par de sugerencias de que el hilo debería quedar fijo... ¿cómo se gestiona eso? :?:
_________________
Cómo usar Portage correctamente
Back to top
View user's profile Send private message
caos
Apprentice
Apprentice


Joined: 22 Sep 2003
Posts: 223

PostPosted: Fri Aug 20, 2004 6:28 pm    Post subject: Reply with quote

Otra opción interesante para ver que depclean no nos intenta hacer ningún estropicio en nuestra máquina es:

Code:

qpkg -q -I Nombre_De_Paquete


Este comando nos informara de si Nombre_De_Paquete es necesitado por algún otro paquete que esté instalado ya en ese momento.

Si no es necesitado por ninguno y no lo queremos tener, entonces será seguro el poder eliminarlo. Así no tendremos mayores problemas.
_________________
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas. Albert Einstein.
Back to top
View user's profile Send private message
alexlm78
Veteran
Veteran


Joined: 08 Dec 2003
Posts: 1265
Location: Guatemala,Guatemala

PostPosted: Fri Aug 20, 2004 6:31 pm    Post subject: Reply with quote

COOL, me llega.
_________________
"This is a different kind of world, you need a different kind of software"

Linux User# 315201
100% Chapin hecho en Guatemala
Back to top
View user's profile Send private message
ArsDangor
Guru
Guru


Joined: 20 May 2003
Posts: 477

PostPosted: Fri Aug 20, 2004 9:38 pm    Post subject: Reply with quote

caos wrote:
Otra opción interesante para ver que depclean no nos intenta hacer ningún estropicio en nuestra máquina es:

Code:

qpkg -q -I Nombre_De_Paquete


Este comando nos informara de si Nombre_De_Paquete es necesitado por algún otro paquete que esté instalado ya en ese momento.

Si no es necesitado por ninguno y no lo queremos tener, entonces será seguro el poder eliminarlo. Así no tendremos mayores problemas.

Según mi experiencia, emerge depclean elimina los paquetes si:
  • No están en el fichero world.
  • No son dependencias de paquetes que estén en el fichero world.
  • No forman parte de la configuración básica de gentoo (system).
  • No son dependencias de system.

Así pues, el paso del qpkg -q debería ser redundante con un emerge depclean. Lo único necesario es tener el fichero world en buen estado.

Salu2.
_________________
Cómo usar Portage correctamente
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Spanish All times are GMT
Goto page 1, 2, 3, 4  Next
Page 1 of 4

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum