Migrando el sistema de 32 a 64 bits en Arch Linux sin reinstalar

Desde que instalé Arch no lo he cambiado para nada. Me gusta la idea de tener una distro sin tener que hacer reinstalaciones por nuevas versiones, moda u otra razón.

El único problema que tenía, es que al instalarlo no especifiqué la arquitectura correcta y terminé usando un sistema de 32 bits. Esto significaba que Linux sólo me reconocía 3GB de RAM y la demás simplemente no se usaba.

Así que investigando un poco,  me topé con una entrada en la wiki (en inglés) de Archlinux.org. Hay dos formas:

  1. Disco de instalación.
  2. Actualización vía Internet.

En mi caso usé la segunda porque tengo una aceptable conexión a internet y no me quiero andar complicando la vida.

1.- Preparativos:

1.1.- Tener espacio suficiente en disco para alojar los paquetes nuevos en el caché de pacman.

En el directorio /var/cache/pacman/pkgs/ es donde pacman almacena los paquetes que corresponden al sistema. Si no dispones de mucho espacio en la raíz, recomiendo alojar la carpeta en otro lugar en donde tenga al menos 3GB disponibles.La wiki recomienda usar gparted y crear una partición para alojar el caché. En lo personal, recomiendo mover el caché a una partición montana en donde tengamos mucho espacio, para después crear un enlace simbólico. Así que aplicamos los siguientes comandos:

# Movemos el caché al directorio de paquetes (en mi caso es /home)
sudo mv /var/cache/pacman/pkg /home/pkgs
# Creamos el enlace simbólico
sudo ln -s /home/pkgs /var/cache/pacman/pkg

Estos cambios son temporales, al final volveremos a poner todo en su lugar.

1.2.- Quitar los paquetes de AUR o similares.

Esto me dio problemas al momento de instalar los nuevos paquetes de 64 bits debido a que no los podía encontrar en los repositorios, así que recomiendo desinstalar y volverlos a reinstalar cuando tengan listo el sistema de 64 bits.

# Eliminamos los paquetes que no estén registrados en las bds de pacman
sudo pacman -Rs  $(pacman -Qmq)

Si tienes plymouth instalado, recomiendo quitarlo de los flags de tu “mkinitcpio..conf“.

1.3.- Actualizamos y cacheamos los paquetes del sistema de 32 bits

Si eres de los que borra el caché, tendrás que bajar de nuevo todos los paquetes para tenerlos de respaldo por si la migración falla.

# Primero actualizamos el sistema y la lista de paquetes
sudo pacman -Syu
# Después descargamos al caché los paquetes faltantes
pacman -Sw $(comm -23 <(pacman -Qq|sort) <(pacman -Qmq|sort))

Tendrán que techer paciencia con la descarga, que puede llegar a ser algo tardada.

2.- Ejecutando la migración a 64 bits

2.1.- Modificando a pacman

2.1.1.- Cambiando la arquitectura

Editamos el archivo de configuración de pacman que se encuentra en la siguiente ruta:

sudo nano /etc/pacman.conf

Buscamos la línea en donde se encuentre la palabra “Architecture” y cambiamos el valor a x86_64. Al final debe quedar:

Architecture = x86_64

Seguimos con el archivo abierto debido a que haremos más cambios.

2.1.2.- Habilitando el repositorio multilib

Con el pacman.conf abierto, buscamos al final la línea con la palabra “multilib“. Las líneas aparecerán comentadas, así que deberemos quitarlas para tener el siguiente resultado:

[multilib]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

Una vez hecho esto, guardamos y cerramos el archivo.

La razón de activar este repositorio, es debido a que el nuevo sistema tendrá que trabajar con paquetes de 32 bits en el próximo arranque.

2.1.3.- Actualizamos la lista de paquetes

Ahora sincronizaremos las bases de datos de pacman con los repositorios activados:

# La última "y" indica sincronización forzada
sudo pacman -Syy

2.2.- Instalamos el entorno de rescate

pacman -S busybox

2.3.- Instalando el kernel de 64 bits

Invocamos a pacman y hacemos una instalación del nuevo kernel de 64 bits. Esto lo hice como root para ver la salida de mkinitcpio.

pacman -S linux

2.4.- Instalando las librerías de compatibilidad de 32 bits.

pacman -S lib32-glibc

2.5.- Reinicio y comprobación del correcto funcionamiento

Reiniciamos el equipo para ver el inicio del sistema con el nuevo kernel. Una vez hecho esto, abrimos una terminal y tecleamos:

uname -m

Si la salida es x86_64, entonces salió correcta la primera fase de la migración.

2.6.- Instalando el nuevo pacman

Iniciamos sesión como root e instalaremos el nuevo pacman mediante el uso de pactree:

pactree -l pacman | pacman -S -

Después de pacman, seguiremos con wget para que pueda descargar los paquetes de 64 bits

pactree -l wget | pacman -S -

2.7.- Completando la instalación

Seguimos en la sesión de root.Ahora sólo falta reinstalar los paquetes que hacen falta. Les recomiendo tener paciencia porque es algo tardado porque depende de la cantidad de cosas que tengan instaladas.

pacman -S $(pacman -Qq)

Tras terminar con la instalación, reinician otra vez y verifican el correcto funcionamiento de la paquetería instalada.

3.- Dando los toques finales

Recomiendo que prueben el sistema por un rato mientras ven si todo funciona bien. Si en dado caso no funciona todo, desinstalen y vuelvan a reinstalar paquetes.

Si todo va bien, es tiempo de quitar busybox y lib32

sudo pacman -Rcn busybox lib32-glibc

Después limpiamos el caché de pacman con un:

sudo pacman -Sc

Para terminar, eliminamos el enlace simbólico que creamos al inicio y colocamos el caché en su posición original:

sudo rm /var/cache/pacman/pkg
# Devolvemos el caché a su lugar origen
sudo mv /home/pkgs /var/cache/pacman/pkg

Y listo. Con esto ya tendremos un sistema funcionando con la arquitectura de 64 bits y usando más de 3GB de memoria RAM.

Anuncios

Añadiendo las sesiones de LXDE a KDM

Como en estos días ando usando más a KDE que a LXDE como entorno de escritorio principal , decidí poner a KDM para que maneje el inicio de sesión.

El único detalle era que KDM no mostraba a LXDE en la lista de tipos de sesión. Así que leyendo un poco, simplemente hay que añadir un archivo a los tipos de sesión que maneja KDM.

Abriendo una ventana de terminal, ejecutamos el siguiente comando:

sudo cp /usr/share/xsessions/LXDE.desktop /usr/share/apps/kdm/sessions/

Con eso añadimos la descripción de la sesión y la próxima vez que KDM inicie, nos mostrará a LXDE en la lista de tipos de sesión.

Actualizando a Yaourt 1.2.1

Muchos archeros se dieron cuenta de que algo no funcionaba y estaban en toda la razón. AUR estaba offline y por lo tanto no podían usar yaourt.

Hace unas horas todo volvió a la normalidad y se lanzó una nueva versión de yaourt en los repositorios de Archlinuxfr.

Si no tienes activado el repositorio Archlinuxfr, basta con agregar estas líneas a tu archivo “pacman.conf”:

[archlinuxfr]
# The French Arch Linux communities packages.
Server = http://repo.archlinux.fr/$arch

Después de eso, basta con actualizar pacman y actualizar yaourt .

sudo pacman -Sy yaourt

Actualizando a Clementine 1.0.1.7 en Archlinux

Hoy actualicé el paquete clementine en el Arch de la laptop. Como siempre, tuve problemas al momento de lanzar Clementine después de la actualización.

El motivo es la falta de la librería “libGLEW.so”. El paquete que proporciona dicha librería se llama glew, así que deben instalarlo con pacman. Pero aparte de eso, Clementine adiciona otros paquetes, así que les recomendaría instalar todas las dependencias de Clementine de un solo jalón.

sudo pacman -S glew gstreamer0.10-base gvfs hicolor-icon-theme libcdio libgpod libimobiledevice liblastfm libmtp libplist protobuf qca qca-ossl qjson qt taglib usbmuxd

Ya con eso pueden volver a usar Clementine.

Wicd no conecta en todas las redes inalámbricas en ArchLinux

Ya me había dado cuenta de este problema, pero no lo había confirmado hasta que me no pude conectarme a la red de un restaurante en donde pasaba el rato.

El problema es simple: Wicd realiza la autentificación con el router, pero no puede establecer la IP por medio de DHCP.

La wiki de Arch indica que este problema de debe que dhcpd falla al obtener la IP para Wicd (aún con todo y que la clave WEP/WPA esté bien escrita). Y lo que recomienda es cambiar el cliente DHCP por uno llamado dhclient.

Lo instalamos con un:

sudo pacman -S dhclient

Ahora vamos a configurarlo desde el tray icon. Denle clic al icono (feo) que aparece en la zona de notificación ->

Nos aparecerá el cuadro de diálogo, y buscamos el botón que nos muestre la flecha en donde al dar clic aparecerá la lista de opciones extra. De esa lista, elegimos la opción “Propiedades”.

En la nueva ventana que se abrirá, buscamos la pestaña “Programas externos”. Ya en esa pestaña, en la sección de Cliente DHCP elegimos la opción dhclient.

Aceptamos los cambios y se cerrará la ventana. Luego (desde la terminal) reiniciamos el demonio Wicd:

sudo rc.d restart wicd

Ya con esto debe conectarnos a cualquier red que esté dentro de nuestro rango. Lo he probado con las de mis vecinos y funciona.

Instalando Xarchiver en Arch Linux

Como ando usando LXDE, tengo que usar diferentes aplicaciones hechas para otros entornos de escritorio para tener digamos que “un entorno de escritorio completo”.

En este caso, andaba navegando con Firefox y tenía que descargar un archivo comprimido. Bueno, no tengo un programa que me permita visualizar gráficamente los comprimidos, así que tendremos que usar el gestor que usa XFCE4: Xarchiver.

Al usar pacman, me informa que no lo encuentra en los repos de “core”, “extra” y “community”, así que la opción que sigue es por medio de yaout.

En la terminal, tecleen

yaourt xarchiver

Nos pedirá elegir la versión a instalar, así que elegimos la opción 4.

Después les mostrará diversos mensajes indicando si desean modificar los archivos de instalación de xarchiver. En mi caso les dije que no (n) a todo lo que fuera edición, y sí (S) a todo lo que fuera instalación o resolución de dependencias del paquete.

Al final, yaourt hará todo por nosotros e instalará Xarchiver.