Xuño 28, 2004

Usando portage correctamente

A traveso de gentoo-es.org veño de atopar un artigo estupendo. Tódolos que estedes a usar esta distribución linux, invítivos a que o leades. De seguido tedes unha traducción ó galego.


O sistema portage de gentoo é un recurso excelente cando se usa apropiadamente; o uso incorrecto, pode desembocar nun sistema desordeado, con paquetes e ficheiros descontrolados, e un ficheiro world incorrecto. Seguindo esta guía o usuario terá un sistema limpo e ordeado.

emerxendo paquetes:
emerge foo

Non se debe usar ACCEPT_KEYWORDS="~x86" para instalar paquetes masked, porque, entre outras cousas, instalará tamén as dependencias na súa versión inestable.

O método adecuado é: Intentar instala-lo paquete, se portage nos comunica que o ebuild é inestable, toma-la solución apropiada (abaixo).
Se unha vez resolto, ó instala-lo paquete, algunha dependencia se queixa, por estar tamén masked repítese a solución apropiada (abaixo).
Si, isto pode parecer unha dor, frente ós rápidos USE="blah" emerge foo ou ACCEPT_KEYWORDS="~x86" emerge foo pero é a forma que portage ten de leva-lo control de paquetes, incluso dos inestables, correctamente.

ATENCIÓN: emerxer directamente un ebuild: emerge /path/to/foo.ebuild pode causar problemas e NON debe ser usado; en ocasións este método de instalación, rexeita engadi-lo paquete ó ficheiro world, ademáis usando este método portage non nos notificará das novas versións do paquete aínda cando estas puideran conter importantes correccións de seguridade.

MANTENDO PAQUETES:

Algunhas veces, cando executamos emerge -u world portage quere retroceder na versión dalgún paquete (por exemplo, se está masked).
A solución é engadi-lo nome completo do paquete, seguido de ~x86 no arquivo /etc/portage/package.keywords.
Por exemplo, para que portage recoñeza que queremos te-la versión inestable de gaim no noso sistema:

echo net-im/gaim ~x86 >> /etc/portage/package.keywords

Se fas isto para tódolos paquetes inestables, quedarán correctamente baixo o control de portage, entón non tratará de volver á última versión estable.

Tamén podemos determinar versións específicas, de forma que portage non actualizará nin retrocederá as versións.

echo = app-misc/foo-version ~x86 >> /etc/portage/package.keywords

A liña anterior, permite que unha versión específica sexa mantida. Tamén podemos indicar se queremos que ademáis da versión específica, as seguintes versións a pesares de estar masked, tamén poidan ser instaladas baixo o control de portage.
Facendo así posible, instalar un paquete masqued e ademáis actualizalo a medida que sallan novas versións masked

echo ~app-misc/foo-version ~x86 >> /etc/portage/package.keywords
(onde versión é a versión sen -rX, por exemplo, en foo-1.2-r4 sobraría -r4).

NOTA: É moito máis sinxelo levar un control dos paquetes, se a lista está ordeada alfabéticamente.

ATENCIÓN: Usar emerge -U world podería causar problemas co sistema e NON debe usarse. Explícase e debate este tema en gentoo-forums.

Non obstante, algunhas veces portage segue querendo retroceder na versión dun paquete, a pesares de aplica-la solución anterior. Xeralmente hai unha boa razón para isto, e é recomendable facer caso a portage. Hai algunha excepción, coas que se pode usar outro método pero se debe usar para estas excepcións. Por exemplo linux-headers:

echo sys-kernel/linux-headers -* >> /etc/portage/package.keywords

NOTA: linux-headers-2.4.x funciona perfectamente, aínda que teñas un kernel 2.6.x instalado, é só un exemplo gráfico de cómo usar esa solución.

Ás veces, algúns paquetes, tentan volver ó sistema, tras ser desinstalados, aínda cando non son precisos. Os usuarios de x.org terán detectado a xfree tentando volver ó sistema, para corrixir isto:

echo x11-base/xfree >> /etc/portage/package.mask

Existen tamén paquetes que están hard masked un exemplo é realone, está hard masked porque contén un furado de seguridade que pode compromete-la seguridade do sistema. Se por algunha razón, queremos instalar realone, ou algún outro paquete hard masked hai unha forma correcta de facelo:

echo media-video/realone >> /etc/portage/package.unmask

Se queres que un paquete non inclúa, ou inclúa algún valor USE (que non estea así indicado en /etc/make.conf) a forma adecuada de facelo, para que portage manteña o control sobre os valores USE dese paquete sempre, é algo como:

echo net-p2p/bittorrent -X >> /etc/portage/package.use

MANTENDO O FICHEIRO WORLD

En raras ocasións, os paquetes non son engadidos a world por algunha razón. Para intentar correxir isto:

regenworld

¿CÓMO FUNCIONA DEPCLEAN?

Ben, agora que aprendimos como mante-lo rexistro dos nosos programas (ficheiro world) e con elo o control sobre eles. Imos ver, para que serve e como funciona a ferramenta depclean:

Cando executamos: emerge depclean depclean toma o ficheiro world, e calcula tódalas dependencias dos elementos que están neste. Calquera cousa que non estea no ficheiro world, nin é dependencia (indirecta ou directa) de algo que está no world, é eliminado.

Exemplo de depclean
emerge gnome instalarádep1, dep2a, dep2b, dep2, dep3, logo gnome, e engadirá gnome ó arquivo world.
gtkapp depende de dep1 e dep3. emerge gtkapp instalará gtkapp e engadirao ó ficheiro world.
emerge -C gnome desinstalará gnome, e eliminarao do world, pero deixa as 5 dependencias no sistema.
emerge depclean lerá entón o world, calculará as dependencias, e dende que gnome se foi, non hai paquetes que dependan de: dep2a,,
dep2b, ou dep2, estos serán eliminados. Sen embargo dep1 e dep3 manteranse no sistema, xa que son dependencia de gtkapp, que está en world.

NOTA: Imaxino, que coma eu ata fai moi pouco, pensaredes que depclean é un suicidio, que non funciona ben, pero todo o contrario, funciona tan ben, como o teu ficheiro world estea mantido. Citando algúns post nos foros de gentoo sobre este tema:

Packages installed: 547
Packages in world: 155
Packages in system: 79
Unique package names: 547
Required packages: 563
Number to remove: 0


ACTUALIZACIÓN:

Cando lin sobre este tema, en gentoo forums atopei un par de scripts, escritos por etcatmur (gracias polo traballo ;-), Filesystem cruft script e dep script.
O primeiro, utilízase para limpa-lo sistema de ficheiros, é dicir, devólveche unha lista de ficheiros, que non pertencen a ningún paquete instalado, e controlado por portage.
O segundo, trata de minimiza-lo contido do ficheiro world, eliminando entradas, que etcatmur considera recursivas. Para telo claro, aquí hai un exemplo de saída en pantalla:

# dep -w
!!!REDUNDANT!!! app-admin/gkrellm depended on by:
x11-plugins/gkrellflynn-0.6
x11-plugins/gkrellmoon-0.6
x11-plugins/gkrellmss-2.3
app-admin/syslog-ng
!!!REDUNDANT!!! app-editors/gvim depended on by:
app-text/vim-latex-1.5_rc1
app-vim/info-1.7-r1
app-editors/nano
app-emulation/wine
x11-themes/mplayer-skins
x11-themes/nautilus-themes

145 packages in worldfile: 137 valid, 8 redundant; 70 packages in system.
563 packages installed: 12% in system, 25% in world, 63% deps.

Ben, persoalmente, penso que é moito mellor, levar ordeado o sistema, e o rexistro dende un principio, usando portage correctamente que tratar de ordear algo desordeado. O principal inconvinte, é que, como vedes, o script, decide elimina-la entrada app-admin/gkrellm por que, esta xa é dependencia, doutros paquetes que constan no ficheiro world.

¿Cal é o problema disto? que se un día decido desinstalar gkrellflynn, gkrellmoon, gkrellmss polo que sexa, e incluso decido cambiar de logger, e tamén desinstalo syslog-ng, entón non quedará nada no world, referente a gkrellm, e cando execute emerge depclean trataría de desinstalalo.

Esto non pasaría só con gkrellm, así que desbarata todo o orde que intentamos acadar con este artigo.
De todas formas, votade un ollo a este script tamén porque ten outras funcións que resultan moi últiles, como calcula-las dependencias inversas dun paquete.

ACTUALIZACIÓN

Despois dalgunhas experiencias intentando manter limpo o rexistro do sistema, dinme conta de que hai casos especiais, onde un ordenador non pode intervir, decidindo por nós, que queremos ou non. Para ver isto, escribín unha experiencia real, a modo de exemplo. Escribirei máis experiencias coma esta segundo se me vaian plantexando casos especiais nos que a intervención do usuario/administrador é inevitable. Ésta é a ligazón.

Agradecementos a NuclearFusi0n e GaMMa polas ideas orixinais, e por compartilas con toda a comunidade.


Fonte: nolbox.homelinux.org

Publicado por jmpello -- Xuño 28, 2004 8:44 AM


Comentarios
Engade un comentario






Lembrar información?





* Tarda un pedaciño en publicar, así que tómao con calma ;-)

Lembre que ao colocar un comentario nesta páxina, vostede está aceptando que os seus datos queden rexistrados nunha base de datos da Asociación Informática Amigus, sen outra finalidade que o seu almacenamento, e asume a súa responsabilidade polo que diga no mesmo.



Axenda Cultural Outono 08 - As Pontes

Agroalimentaria do Eume

SOS Círculo Lítico da Mourela

Rueiro As Pontes

Fotos das Pontes

Os Sons da Vila - As Pontes

Deporte - As Pontes
Novas Recentes
Arquivos
- Novembro 2008 (118)
- Outubro 2008 (177)
- Setembro 2008 (174)
- Agosto 2008 (103)
- Xullo 2008 (166)
- Xuño 2008 (140)
- Maio 2008 (121)
- Abril 2008 (149)
- Marzo 2008 (137)
- Febreiro 2008 (153)
- Xaneiro 2008 (164)
- Decembro 2007 (158)
- Novembro 2007 (196)
- Outubro 2007 (216)
- Setembro 2007 (133)
- Agosto 2007 (133)
- Xullo 2007 (131)
- Xuño 2007 (167)
- Maio 2007 (178)
- Abril 2007 (142)
- Marzo 2007 (169)
- Febreiro 2007 (139)
- Xaneiro 2007 (132)
- Decembro 2006 (114)
- Novembro 2006 (123)
- Outubro 2006 (138)
- Setembro 2006 (140)
- Agosto 2006 (126)
- Xullo 2006 (144)
- Xuño 2006 (131)
- Maio 2006 (140)
- Abril 2006 (123)
- Marzo 2006 (168)
- Febreiro 2006 (149)
- Xaneiro 2006 (165)
- Decembro 2005 (124)
- Novembro 2005 (149)
- Outubro 2005 (200)
- Setembro 2005 (161)
- Agosto 2005 (150)
- Xullo 2005 (161)
- Xuño 2005 (154)
- Maio 2005 (158)
- Abril 2005 (169)
- Marzo 2005 (162)
- Febreiro 2005 (184)
- Xaneiro 2005 (181)
- Decembro 2004 (137)
- Novembro 2004 (134)
- Outubro 2004 (186)
- Setembro 2004 (217)
- Agosto 2004 (191)
- Xullo 2004 (236)
- Xuño 2004 (205)
- Maio 2004 (160)
- Abril 2004 (128)
- Marzo 2004 (107)
- Febreiro 2004 (100)
- Xaneiro 2004 (111)
- Decembro 2003 (128)
- Novembro 2003 (164)
- Outubro 2003 (193)
- Setembro 2003 (207)
- Agosto 2003 (171)
- Xullo 2003 (53)
Novembro 2008
D L M M X VS
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30