Desaventuras en la tierra de Linux, parte 18

En el pasado he hablado de LibreOffice y cómo se encuentra a años luz de estar siquiera a la altura de, digamos, MS Office XP, la versión de MS Office de hace 20 años. El problema con LibreOffice es que, como todo proyecto promedio para Linux, en lugar de tener unas cuantas características sólidas y bien implementadas, tiene miles de características inútiles a medio implementar.

Read More

Desaventuras en la tierra de Linux, parte 17

En el post anterior de Desaventuras mencioné cómo tuve problemas con mi PC debido a un disco duro problemático y cómo pude solucionar el problema gracias a LVM. Ya que estaba metido en esto, decidí que era hora también de retirar el disco duro en el que instalé Linux originalmente “para probarlo”. He estado usando Linux por los últimos años y parecía un buen momento para quitar ese viejo disco duro IDE de 10 GB y reemplazarlo con algo de mayor capacidad. Antes de quitar el disco debía usar una vez más LVM para mover los datos de /dev/mapper/sdb5_crypt al nuevo disco duro. Antes que nada hay que recordar verificar que el nuevo disco tenga suficiente espacio disponible, siempre de acuerdo  a pvdisplay, para poder mover los datos de la partición que se va a eliminar. Después de verificar el espacio disponible, el proceso para retirar el disco duro del LVM es el mismo descrito en el post anterior así que no lo repetiré. Al final del proceso sólo tendré un disco duro en el ‘volume group’ debian-vg y hay que recordar que se debe actualiza /etc/crypttab para reflejar los cambios:

monstruosoft@debian:~$ sudo pvmove /dev/mapper/sdb5_crypt
monstruosoft@debian:~$ sudo vgreduce debian-vg /dev/mapper/sdb5_crypt
monstruosoft@debian:~$ cat /etc/crypttab 
sdb2_crypt UUID=d181b00e-a351-45f0-9cce-9cfdcfdead1a none luks
monstruosoft@debian:~$ sudo update-initramfs -u -k all

Ahora el ‘volume group’ debian-vg contiene únicamente un volumen físico y, después de remover el volumen y actualizar el archivo /etc/crypttab, puedo actualizar la imagen de arranque con update-initramfs y puedo finalmente quitar el viejo disco IDE de 10 GB de mi PC.

Aún quedaban algunos problemas pendientes que resolver; cuando empezó a fallar el disco duro, el gestor de paquetes quedó inutilizable ya que los problemas ocurrieron precisamente mientras instalaba algunos paquetes. Si bien el gestor de paquetes me indicaba que debía correr manualmente dpkg para corregir el problema, hacerlo mientras el disco dañado estaba conectado siempre resultaba en el mismo error. Ahora que he removido el disco que causaba problemas, debería poder corregir también el problema con el gestor de paquetes, o al menos eso espero:

monstruosoft@debian:~$ sudo dpkg --configure -a
...
Processing triggers for initramfs-tools (0.130) ...
update-initramfs: Generating /boot/initrd.img-4.9.0-4-amd64
update-initramfs: deferring update (trigger activated)
Generating grub configuration file ...
Found background image: .background_cache.png
Found linux image: /boot/vmlinuz-4.9.0-4-amd64
Found initrd image: /boot/initrd.img-4.9.0-4-amd64
done
update-initramfs: Generating /boot/initrd.img-4.9.0-4-amd64

Como era de esperarse esta vez no hubo errores, el gestor de paquetes funciona nuevamente y puedo finalmente continuar usando mi equipo con normalidad.

 

Compilar programas para Windows desde Linux – Parte 1

¿Eres un usuario de Linux y disfrutas haciendo tus programitas en C o C++ pero quieres compartirlos con el resto del mundo que seguramente usa Windows?. Compartirles el código es una posibilidad pero el usuario promedio no sabría qué hacer con él así que tus opciones se reducen a entregarles un ejecutable listo para usar en Windows. Por suerte, compilar tus programas para Windows es relativamente fácil en Linux, sobre todo si alguna vez usaste MinGW en Windows. MinGW es, por así decirlo, el gcc para Windows. MinGW ofrece compiladores para C y C++ (entre otros) que generan archivos ejecutables .exe para Windows así que, como te imaginarás, solamente tenemos que instalar MinGW para poder usarlo para generar ejecutables para Windows desde nuestra distro de Linux. Para instalar MinGW en Debian Stretch, basta con instalar el paquete mingw-w64 desde el gestor de paquetes.

Read More

Previsualizar archivos de Markdown para github

Si estás escribiendo un archivo de Markdown para tu repositorio de github, por ejemplo, README.md, puedes usar el editor en línea de github, pero si estás trabajando offline es muy probable que quieras previsualizar el resultado antes de subirlo a github. Por suerte existe grip para esa tarea. grip es un paquete de python que puedes instalar usando pip pero que en Linux también lo puedes instalar desde el gestor de paquetes instalando el paquete grip.

Una vez instalado basta con que te dirijas al directorio en el que tienes tu archivo de Markdown y ejecutes el comando grip. Al ejecutarlo, grip montará un localhost que te permitirá previsualizar tu archivo en el navegador. Si tu archivo de Markdown tiene un nombre distinto a README.md, puedes especificar el nombre en la línea de comandos:

monstruosoft@debian:~/mi-proyecto$ grip LEEME.md 
* Running on http://localhost:6419/ (Press CTRL+C to quit)

Ahora puedes abrir la dirección indicada en tu navegador para previsualizar tu archivo de Markdown. Así de fácil.

GIMP 2.10 en Debian Stretch

Como lo he escrito múltiples ocasiones en otros posts, los repositorios estables son a la vez la mejor y la peor parte de Debian. Por un lado, el software en los repositorios estables está, en teoría, garantizado que funcione sin problemas pero por otro lado eso significa no es raro encontrarse con que el software en los repositorios estables es software con varios años de antigüedad 😦 . GIMP es un ejemplo de esto, la versión en el repositorio estable de Debian es la 2.8.18 a pesar de que la versión 2.10 ya fue lanzada de forma oficial hace tiempo, así que si quieres probar la nueva versión de GIMP, los repositorios estables no son una opción.

Es posible que la versión más reciente de GIMP esté disponible en repositorios como el de backports o el de debian-multimedia pero ahora la página oficial de GIMP ofrece un link a la versión para Flatpak que es lo más cercano a tener un ejectuable oficial. Para instalar y ejecutar GIMP para Flatpak basta ejecutar los comandos que aparecen en la página oficial de GIMP:

flatpak install https://flathub.org/repo/appstream/org.gimp.GIMP.flatpakref 
flatpak run org.gimp.GIMP//stable

Ya en el pasado hice un post sobre Flatpak también relacionado con GIMP, sobra mencionar que debes tener Flatpak instalado en tu sistema y que lo puedes instalar desde el gestor de paquetes de Debian Stretch. Si es la primera vez que instalas o ejecutas un programa de Flatpak se instalará una máquina virtual de Flatpak ya que, si recuerdas los posts anteriores, Flatpak es un sistema que ofrece una forma de virtualización que permite ejecutar programas aislados del resto del sistema y, sobre todo, gracias al uso de máquinas virtuales o runtimes, permite usar librerías diferentes a las instaladas en el sistema sin que estas causen conflictos.

gimp-2.10

La versión de Flatpak es lo más cercano que tendremos a un ejecutable oficial de GIMP para Linux y sin duda es mejor y más sencillo que tener que compilarlo manualmente como lo hicimos alguna vez con la versión de desarrollo 2.9. Sin embargo, sabemos que me gusta tomar el camino más difícil así que decidí intentar compilar GIMP manualmente y crear un ejecutable nativo para Debian Stretch.

El proceso fue largo y difícil ya que GIMP 2.10 tiene como dependencias muchas librerías que no están en el repositorio estable de Debian; además, muchas, si no es que la mayoría, de esas librerías también tienen versiones mínimas requeridas que son superiores a las que usamos antes para compilar GIMP 2.9 por lo que las versiones que usamos para compilar GIMP 2.9 ya no sirven. Después de cazar versiones recientes de muchas librerías, sistemas de compilación como meson y todas sus dependencias, después de luchar para compilar librerías que requieren opciones que no son nada obvias y de instalarlas en rutas personalizadas ajustando las respectivas variables de entorno, finalmente fui capaz de compilar exitosamente el GIMP 2.10 en Debian Stretch y, aunque escribí una larga lista de instrucciones detalladas para compilarlo, no creo que valga la pena obligar a nadie a pasar por todo eso ahora que existe la versión oficial para Flatpak. Todo ese trabajo para compilar GIMP 2.10 manualmente aún puede ser de utilidad si quieres probar la versión de desarrollo más reciente… tengo planeado un post sobre eso.

Ripear DVD con FFmpeg, Recargado

Hace tiempo escribí algunos posts con instrucciones para ripear un DVD usando FFmpeg. En esos posts mencionaba que primero deberías probar con Handbrake antes de intentar ripear el DVD de la forma difícil desde la línea de comandos usando MPlayer y FFmpeg. Entonces, ¿cuál es la razón para escribir este post? ¿Cuál es el problema con Handbrake?. El problema de Handbrake es el típico problema de Linux de interfaces de usuario terribles 😦 . Si eres como yo y quieres ripear todos los títulos de un DVD, con Handbrake tienes que seleccionar un título, configurar las opciones, agregarlo a la cola de tareas y después seleccionar el siguiente título y repetir 😦 . Aunque el proceso puede tomar solamente unos cuantos clicks, cuando te encuentras con un DVD con muchos títulos, esos son algunos cientos de clicks más de los que quiero hacer; sin mencionar que tienes que escribir manualmente el nombre para cada uno de los archivos de salida ya que Handbrake te sugerirá el mismo nombre para todos los títulos sin importar si ya tienes uno con ese nombre en la cola de tareas. No entiendo como el programa “especializado” para ripear DVDs no tiene una opción para seleccionar varios o todos los títulos de un DVD 😦 .

Read More