View previous topic :: View next topic |
Author |
Message |
ArsDangor Guru
Joined: 20 May 2003 Posts: 477
|
Posted: Fri Jul 09, 2004 12:27 am Post subject: [HOW-TO]Cómo usar Portage correctamente(actualizado: 29-5-8) |
|
|
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
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
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
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, 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. 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 |
|
|
luisfeser Guru
Joined: 22 May 2004 Posts: 543 Location: /España/Toledo
|
Posted: Fri Jul 09, 2004 4:23 pm Post subject: |
|
|
Buen trabajo ArsDangor .
O, great work!!! k dirian los guiris
A ver si lo hacen fijo, k tener estas cosillas a mano es mas que recomendable
Saludos. |
|
Back to top |
|
|
kabutor l33t
Joined: 12 Dec 2002 Posts: 821 Location: Benalmadena - Melrose Place
|
Posted: Sat Jul 10, 2004 2:32 pm Post subject: |
|
|
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.. |
|
Back to top |
|
|
TieferFeld Guru
Joined: 01 May 2004 Posts: 550 Location: irgendwie, irgendwo, irgendwann
|
Posted: Sat Jul 10, 2004 4:12 pm Post subject: |
|
|
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 |
|
Back to top |
|
|
ArsDangor Guru
Joined: 20 May 2003 Posts: 477
|
Posted: Sat Jul 10, 2004 4:40 pm Post subject: |
|
|
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 |
|
|
ArsDangor Guru
Joined: 20 May 2003 Posts: 477
|
Posted: Sat Jul 10, 2004 7:02 pm Post subject: |
|
|
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 |
|
|
quelcom Guru
Joined: 16 Mar 2004 Posts: 306 Location: Catalonia
|
Posted: Sat Jul 10, 2004 7:17 pm Post subject: |
|
|
Muxisimas gracias por el How-To.
Imprimiendo ahora mismo |
|
Back to top |
|
|
Frikjan n00b
Joined: 30 Oct 2003 Posts: 20 Location: bcn
|
Posted: Sun Jul 11, 2004 10:36 pm Post subject: |
|
|
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 |
|
|
ArsDangor Guru
Joined: 20 May 2003 Posts: 477
|
Posted: Mon Jul 12, 2004 12:37 am Post subject: |
|
|
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 |
|
|
kabutor l33t
Joined: 12 Dec 2002 Posts: 821 Location: Benalmadena - Melrose Place
|
Posted: Sat Jul 31, 2004 11:06 pm Post subject: |
|
|
una duda que me pasa ahora, y si quiero mantener una version antigua de un programa? Por ejemplo los ati-drivers.. |
|
Back to top |
|
|
psm1984 l33t
Joined: 14 Oct 2003 Posts: 919
|
Posted: Sun Aug 01, 2004 2:12 am Post subject: |
|
|
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 |
|
|
ertomas Apprentice
Joined: 25 Dec 2003 Posts: 270 Location: Barcelona, /home/tomascayuelas
|
Posted: Sun Aug 01, 2004 2:51 am Post subject: |
|
|
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.
Me ha resultado de gran ayuda, Gracias
UN SALUDO |
|
Back to top |
|
|
kabutor l33t
Joined: 12 Dec 2002 Posts: 821 Location: Benalmadena - Melrose Place
|
Posted: Sun Aug 01, 2004 1:58 pm Post subject: |
|
|
Este post podria estar "stick" es muy util la verdad, yo he tenido que buscarlo para ver la duda que tenia |
|
Back to top |
|
|
Josemilla n00b
Joined: 13 Mar 2004 Posts: 50 Location: Madrid (Spain)
|
Posted: Sun Aug 01, 2004 2:11 pm Post subject: |
|
|
Yo tambien voto por que sea fijo.
Aunque tengo un problemilla al hacer un
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 |
|
|
caos Apprentice
Joined: 22 Sep 2003 Posts: 223
|
Posted: Sun Aug 01, 2004 2:38 pm Post subject: |
|
|
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 |
|
|
Josemilla n00b
Joined: 13 Mar 2004 Posts: 50 Location: Madrid (Spain)
|
Posted: Sun Aug 01, 2004 7:04 pm Post subject: |
|
|
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 |
|
|
HeCTOr Tux's lil' helper
Joined: 19 Jul 2004 Posts: 132
|
Posted: Sun Aug 01, 2004 7:18 pm Post subject: |
|
|
Cada vez que ago algo la cago estoy haciendo un emerge -u world y me está bajando 314 paquetes, espero que no me destroze el sistema
Salu2 y muy buen post |
|
Back to top |
|
|
ArsDangor Guru
Joined: 20 May 2003 Posts: 477
|
Posted: Mon Aug 02, 2004 4:55 pm Post subject: |
|
|
Jodeer. Me voy unos días a la playa y este hilo me ze descontrola.
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 |
|
|
-RdX- n00b
Joined: 23 Dec 2003 Posts: 60 Location: Sevilla (spain)
|
Posted: Mon Aug 02, 2004 6:42 pm Post subject: |
|
|
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 |
|
|
caos Apprentice
Joined: 22 Sep 2003 Posts: 223
|
Posted: Mon Aug 02, 2004 7:01 pm Post subject: |
|
|
Si tienes varias versiones instaladas de un mismo paquete y al hacer un:
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 |
|
|
ArsDangor Guru
Joined: 20 May 2003 Posts: 477
|
Posted: Mon Aug 02, 2004 7:31 pm Post subject: |
|
|
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 y podrás eliminar las versiones más antiguas. Habitualmente, esto es lo que hace un. 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 |
|
|
ArsDangor Guru
Joined: 20 May 2003 Posts: 477
|
Posted: Fri Aug 20, 2004 5:51 pm Post subject: |
|
|
Lo que iban a ser unas horas se han convertido en 20 días...
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 |
|
|
caos Apprentice
Joined: 22 Sep 2003 Posts: 223
|
Posted: Fri Aug 20, 2004 6:28 pm Post subject: |
|
|
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 |
|
|
alexlm78 Veteran
Joined: 08 Dec 2003 Posts: 1265 Location: Guatemala,Guatemala
|
Posted: Fri Aug 20, 2004 6:31 pm Post subject: |
|
|
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 |
|
|
ArsDangor Guru
Joined: 20 May 2003 Posts: 477
|
Posted: Fri Aug 20, 2004 9:38 pm Post subject: |
|
|
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 |
|
|
|
|
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
|
|