viernes, julio 28, 2006

Foro para linux, Mac, unix, BSD,...

Hace un par de días, creé un nuevo foro, en español, cuyo tema principal es todo lo relacionado con el mundo de las arquitecturas *nix: linux, unix, BSD, Mac OS, Solaris, y un largo etcétera. El nombre que le he dado es Mundonix.

La idea es de tener un pequeño espacio donde compartir cosas. Ya hay unos cuantos subforos creados, pero vamos, habrá que ir moldeándolo ajustándolo a las demandas que vayan surgiendo. Estáis todos invitados, tanto los que ya tenéis experiencia en estos sistemas, como los que queréis iniciaros, aprender y resolver dudas.

La dirección en la que se encuentra es:
http//mundonix.ueuo.com

miércoles, julio 26, 2006

Script para ver sólo actualizaciones con emerge -up world (Gentoo linux)

Supongo que a más de uno le pasará como a mí, que a pesar de hacer uso de /etc/portage/package.keywords, algunos paquetes los emerge con el mítico ACCEPT_KEYWORDS="~x86". Eso unido a que a veces se enmascara una versión después de a ver sido publicada, etc..., hace que tras algún tiempo, no sería nada anormal que uno obtenga en la lista de paquetes a actualizar cuando hace emerge -up world --deep cosas como:

[ebuild     UD] app-text/libwpd-0.8.2 [0.8.4]
[ebuild     UD] net-libs/linc-1.0.3 [1.0.3-r1]
[ebuild     UD] dev-db/hk_classes-0.7.4a [0.8.1] USE="sqlite% -sqlite3%"
[ebuild     UD] dev-db/knoda-0.7.4-r1 [0.8.1]
[ebuild     U ] app-office/koffice-1.5.2 [1.5.1-r1]
[ebuild     U ] kde-base/kdenetwork-3.5.3-r2 [3.5.3-r1]
[ebuild     UD] media-libs/libquicktime-0.9.4 [0.9.7-r1]
[ebuild     U ] media-sound/amarok-1.4.1-r2 [1.4.1-r1] USE="-njb%"
[ebuild     UD] dev-libs/pwlib-1.6.3-r3 [1.10.1] USE="esd%"
[ebuild     UD] net-libs/openh323-1.13.2-r2 [1.15.6]
[ebuild  N    ] dev-java/iso-relax-20041111  USE="-source"
[ebuild  N    ] dev-java/msv-20050627  USE="-doc -jikes -source"
[ebuild  N    ] dev-java/xpp2-2.1.10  USE="-doc -jikes -source"
[ebuild  N    ] dev-java/xpp3-1.1.3.4m  USE="-doc -jikes -junit -source"
[ebuild  N    ] dev-java/dom4j-1.6.1  USE="-doc -source"
[ebuild     U ] app-pda/multisync-0.83_pre20050414-r4 [0.83_pre20050414-r2] USE="-gnokii% -nokia6600%"
[ebuild     U ] kde-base/kde-i18n-3.5.4 [3.5.3]
[ebuild     U ] app-i18n/koffice-i18n-1.5.2 [1.5.1] LINGUAS="-zh_TW%"
[ebuild     UD] media-tv/xawtv-3.94-r1 [3.95-r1]
[ebuild     UD] app-emulation/dosemu-1.2.2-r1 [1.3.2]
[ebuild  N    ] app-accessibility/speech-tools-1.2.3-r2  USE="-doc"
[ebuild  N    ] app-accessibility/festival-1.4.3-r3  USE="-asterisk -doc"

El cual está repleto de "D" que indica que se hará bajará de versión si quitamos la -p (pretend) del comando introducido.

Pues, bien, usando un poquito de grep y otros, es fácil recortar esa lista para omitir los ficheros que quieren bajar de versión. Para ello podemos crear un fichero llamado: /usr/local/bin/emerge-updates y ponerle el siguiente contenido:

#!/bin/bash
emerge -upD world | egrep "(NS? *|U )]" | cut -c 17- | egrep -o "([^-]*-[^0-9][^-]*)*" | xargs emerge $*


Todo el comando emerge en una sóla línea. Le damos permisos de ejecución: chmod +x /usr/local/bin/emerge-updates.

Y si ahora hacemos: emerge-updates -p obtendremos la lista con sólo las actualizaciones, que es bastante más manejable:

[ebuild     U ] app-office/koffice-1.5.2 [1.5.1-r1]
[ebuild     U ] media-sound/amarok-1.4.1-r2 [1.4.1-r1] USE="-njb%"
[ebuild     U ] app-pda/multisync-0.83_pre20050414-r4 [0.83_pre20050414-r2] USE="-gnokii% -nokia6600%"
[ebuild     U ] kde-base/kde-i18n-3.5.4 [3.5.3]
[ebuild     U ] app-i18n/koffice-i18n-1.5.2 [1.5.1] LINGUAS="-zh_TW%"
[ebuild  N    ] app-accessibility/speech-tools-1.2.3-r2  USE="-doc"
[ebuild  N    ] app-accessibility/festival-1.4.3-r3  USE="-asterisk -doc"
[ebuild  N    ] dev-java/iso-relax-20041111  USE="-source"
[ebuild  N    ] dev-java/msv-20050627  USE="-doc -jikes -source"
[ebuild  N    ] dev-java/xpp2-2.1.10  USE="-doc -jikes -source"
[ebuild  N    ] dev-java/xpp3-1.1.3.4m  USE="-doc -jikes -junit -source"
[ebuild  N    ] dev-java/dom4j-1.6.1  USE="-doc -source"

Si queremos proceder a la instalación de todos esos paquetes, tan sólo habría que omitir la -p, es decir ejecutar emerge-updates.

Espero que os sea de utilidad.