Como dije en un post anterior, me pasé de [open]SUSE (después de 10 años) a ArchLinux. Llevo ya un tiempo y la verdad es que estoy muy contento por lo que os voy a contar cómo se gestionan los paquetes de software en ArchLinux.
Arch tiene un gestor propio (como muchas otras distros de Linux), se llama pacman y es un comando más. Es MUY sencillo de utilizar y la verdad es que, al ser tan sencillo de utilizar, no es necesario un entorno gráfico. Esto puede desanimar a más de uno aunque espero poder quitar ese miedo que suele dar la línea de comandos. Para hacernos una idea de lo que estamos hablando, pacman sería el equivalente al comando rpm en Red Hat, openSUSE y Mandriva o a dpkg en Debian o al emerge de Gentoo en el sentido de que gestiona o maneja el software que tenemos instalado o queremos instalar, de una forma coherente y organizada.
Algunos pensaréis que he exagerado con lo de que es MUY sencillo de utilizar y que la línea de comandos siempre tienes su complejidad porque los comandos en sistemas Unix/Linux tinene infinitas opciones y posibilidades. Pues en este caso, la verdad es que tiene menos opciones que los otros gestores. «¡Ajá! Eso es que hace menos cosas». Bueno, a lo mejor a un usuario súperavanzado de rpm/dpkg necesita más cosas, pero el 97% de los usuarios de Linux no las necesitan (llevo en Linux desde el año 1995 y la verdad es que yo no he necesitado tanta opción, pero bueno, es un caso particular).
En todo caso, si alguien quiere algún interfaz gráfico antes de ponerse «manos a la masa», que no se preocupe que hay entornos gráficos que facilitan la vida al usuario. Yo sólo he probado uno y me ha gustado: Shaman. Shaman no es propio de ArchLinux sino de un proyecto «paralelo» llamado Chakra. Es muy sencillo de utilizar y está escrito con Qt. Brevemente diré que Chakra es un proyecto en el que un grupo de Archers a los que les encanta KDE han decidido sacar un LiveCD/DVD con ArchLinux y KDE, tienen un KDE un poco tuneado y muy, muy, muy modular :) El que quiera iniciarse en ArchLinux puede descargarse el LiveCD/DVD y ver si se anima o no.
Volviendo a pacman. pacman, al igual que los otros gestores de software, tiene:
- una base de datos en la que se basa para saber si un paquete está instalado o no
- una serie de repositorios de los que bajarse el software que queremos instalarnos
Cada repositorio tiene su base de datos de sus paquetes y hay 3 repositorios oficiales que yo aconsejo utilizar:
- core: es el sistema base así que no hay más remedio que tener este ;) Te permite tener un sistema mínimo funcional.
- extra: contiene aquellos paquetes que no tienen lugar en core, como por ejemplo, las X, gestores de ventanas, …
- community: la mantienen los TU (Trusted Users)
Hay un repositorio no oficial que también aconsejo utilizar:
- archlinuxfr: este tiene software de código cerrado como por ejemplo, los drivers de las tarjetas ATI/AMD
Hay otros dos repositorios que NO aconsejo porque pueden crear muchos problemas:
- testing: son paquetes que se están evaluando y que posiblemente (si gustan y son estables) entren a formar parte de core o de extra
- unsupported: como su nombre indica son paquetes que no están soportados así que es a vuestro propio riesg
Yo no tengo estos dos últimos repositorios y la verdad es que no me han hecho falta.
Podéis ver que ya empezamos con simplicidad: pocos repositorios. En otras distros, tienes innumerables repositorios, lo cual añade a la complejidad del mantenimiento del sistema. En dichas distros, puede que algunos repositorios tengan conflictos con otros o haya paquetes repetidos o se quitan y se ponen porque se fusionan, … En Arch tenemos 4 repositorios, de los cuales 1 (archlinuxfr) se usa bastante poco, y los demás tienen el 99% del software que puedas necesitar. Bien: simplicidad facilidad !!!!! :)
Para no hacer un post demasiado largo, os aconsejo echar un vistazo a la web de pacman que explica cómo añadir los repositorios, cosa que se hace una vez (el día que instalas) y luego casi no vuelves a tocar :)
Sigamos. Como siempre, os aconsejo echar un vistazo a las webs de ArchLinux en las que se habla de pacman y a su manual (man pacman
). Pero, para evitaros, leeros un montón de páginas, os resumo brevemente lo que se puede hacer:
lo primero es lo primero: actualizar la base de datos de paquetes. Esto es tan sencillo como teclear como usuario root el comando:
pacman -Sy
La «S» es de sincronizar y la «y» es de refrescar. Sip, no han acertado mucho con «y», es poco nemotécnica. Aparecerá algo similar a esto en la pantalla:
# pacman -Sy
:: Sincronizando las bases de datos de paquetes...
core está actualizado
extra 384,9K 218,0K/s 00:00:02 [#########################################] 100%
community 364,8K 206,3K/s 00:00:02 [#########################################] 100%
archlinuxfr está actualizado
La descarga es RA-PI-DÍ-SI-MA. No hay color, he trabajado con muchas distros a lo largo de estos años y no hay color señores. No lo digo con intención de insultar a otras distros, pero es que no hay color. Espero que nadie se sienta ofendido.
Ahora que ya hemos descargado las bases de datos nuevas, hay que ver si hay algo nuevo que actualizar:
pacman -Su
La «S» ya la conocéis y la «u» es de … «upgrade», aquí sí han acertado con la letra ;) Os aparecerá algo similar a esto:
# pacman -Su
:: iniciando actualización completa del sistema...
resolviendo dependencias...
verificando conflictos...
Objetivos (7): libdrm-2.4.11-2 libgphoto2-2.4.6-1 pygobject-2.18.0-1 python-numpy-1.3.0-2 vlc-0.9.9a-4 xkeyboard-config-1.6-1 xorg-server-1.6.1.901-1
Tamaño total de descarga: 20,87 MB
Tamaño total instalado: 66,34 MB
¿Continuar con la instalación? [S/n]
Si no veis nada raro: pues adelante, tecleamos «s» y [ENTER] y a actualizar :)
:: Descargando paquetes desde extra...
libdrm-2.4.11-2-i686 182,8K 128,9K/s 00:00:01 [#########################################] 100%
libgphoto2-2.4.6-1-i686 3,9M 172,5K/s 00:00:23 [#########################################] 100%
pygobject-2.18.0-1-i686 577,4K 255,2K/s 00:00:02 [#########################################] 100%
python-numpy-1.3.0-... 2,1M 386,6K/s 00:00:05 [#########################################] 100%
vlc-0.9.9a-4-i686 9,5M 642,2K/s 00:00:15 [#########################################] 100%
xkeyboard-config-1.... 752,9K 304,9K/s 00:00:02 [#########################################] 100%
xorg-server-1.6.1.9... 3,9M 402,8K/s 00:00:10 [#########################################] 100%
Verificando la integridad de los paquetes...
(7/7) verificando conflictos entre archivos [#########################################] 100%
(1/7) actualizando libdrm [#########################################] 100%
(2/7) actualizando libgphoto2 [#########################################] 100%
NOTE
----
Add your user to group 'camera' to use camera devices.
(3/7) actualizando pygobject [#########################################] 100%
(4/7) actualizando python-numpy [#########################################] 100%
Dependencias Opcionales para python-numpy
python-nose: test suite
(5/7) actualizando vlc [#########################################] 100%
Dependencias Opcionales para vlc
libnotify
(6/7) actualizando xkeyboard-config [#########################################] 100%
(7/7) actualizando xorg-server [#########################################] 100%
Fijaos que os da mensajitos de cosas que debes hacer o revisar. En este caso me dice que me añada al grupo «camera». También muestra mensajes indicando si hay dependencias opcionales.
Bien, ya tenemos el sistema a la última moda. ¿Qué más se puede hacer? Vamos a ver … ¿Y si quiero instalar un paquete? Muy sencillo, vamos a hacerlo en dos pasos (aunque se puede hacer en un único paso). Lo primero es buscar el paquete:
pacman -Ss <texto>
Donde pongo <texto>
, puedes escribir lo que quieras y pacman busca en el nombre del paquete y en su descripción. Por ejemplo:
pacman -Ss video
Una vez localizado el paquete, lo instalamos:
pacman -S mplayerthumbs
Y ya está. Ya tenemos el sistema instalado, hemos instalado un paquete y ahora lo que queremos es ver todo lo que hay instalado:
pacman -Q
¡Hey! ¿Qué hace este paquete aquí? ¿Cómo se quita? Muy fácil:
pacman -R <nombre de paquete>
Ya está. ¡Ojo! Que la opción «R» en Arch es muy potente y nos deja hacer muchas cosas, como por ejemplo:
packman -Rn <paquete>
elimina los ficheros de configuración tambiénpackman -Rsn <paquete>
elimina los ficheros de configuración y sus dependencias innecesarias tambiénpacman -Rs <paquete>
elimina las dependencias tambiénpacman -Rd <paquete>
elimina el paquete y deja las dependenciaspacman -Rsc <paquete>
elimina sus dependencias y todos los paquetes que dependan de él. Este es muy peligroso, avisados estáis.
Ya tenemos nuestro sistema limpito, tal y como nos gusta y ahora queremos saber más de lo que tenemos instalado:
pacman -Qq
: lista los paquetes instalado SIN mostrar la versiónpacman -Qs
: muestra los paquetes y una breve descripciónpacman -Qs kde
: busca aquellos paquetes cuyo nombre o descripción tengan la cadena «kde»pacman -Ql
: muestra todos los ficheros que han instalado cada uno de los paquetes que hemos instaladopacman -Ql <paquete>
: muestra los ficheros que nos ha instalado el paquete en cuestiónpacman -Qo <nombre_de_fichero>
: muestra de qué paquete ha salido el fichero o, qué paquete es el dueño de dicho fichero
Ya para acabar, pacman nos deja hacer una cosa muy interesante: que es listar todos aquellos paquetes que han sido instalados como dependencias, pero que ya no se usan:
pacman -Qdt
Con esto podremos saber qué paqeutes podemos eliminar porque son dependencias que ya no se usan porque el paquete que las requería lo hemos eliminado. Y ay para nota, le decimos que muestre dichas dependencias y las quite:
pacman -Qdt | sed "s/ .*//" | sudo xargs pacman -Rs
o bien:
pacman -Rs $(pacman -Qdt | sed "s/ .*//")
Pues nada más por hoy. Espero que lo hayáis encontrado útil. Buen fin de semana a todo el mundo :D Os dejo unos enlaces para que no os aburráis:
http://wiki.archlinux.org/index.php/Official_Repositories
http://wiki.archlinux.org/index.php/Unofficial_user_repositories