¿Qué es una biblioteca (o «library») en una distribución GNU/Linux?

Las bibliotecas son una de las partes más esenciales del software, y es una palabra que posiblemente hayas visto en tu gestor de paquetes. ¿En qué consisten realmente?

En raras ocasiones, en GNU/Linux te encontrarás mensajes de error o de advertencia que hacen referencia a palabras como biblioteca o library. También en español se le suele llamar librería, y aunque desde el punto de vista pragmático se refiere al mismo concepto, algunas personas cuestionan este nombre porque la traducción correcta de library es biblioteca. Sin embargo, una pregunta más importante independientemente del nombre es: ¿qué es esto? En este post voy a tratar de definirlo en conceptos simples y sin dar mucha vuelta.

¿Qué es una biblioteca de software?

Una biblioteca de software es una pieza de software que aunque ofrece funcionalidad, igual que la que puedes encontrarte en un programa tradicional, no puede ser clasificado como programa porque como tal no lo puedes lanzar haciendo doble clic sobre su icono o escribiendo un comando de terminal.

El rol de la biblioteca es proporcionar servicios que puedan ser usados por otras piezas de software. Estos servicios a menudo se corresponden con código que es ejecutado por el ordenador a petición de un programa o de otra biblioteca. De este modo, la biblioteca recibe lo que se podría denominar una petición de servicio para que haga una operación, y eso hará que nuestro ordenador procese cierto código máquina proporcionado por la biblioteca para generar un resultado del servicio.

Por poner un ejemplo, en cualquier distribución GNU/Linux podemos identificar varios editores fotográficos, como son GIMP, Inkscape o Krita. Sin embargo, la realidad es que ninguno de estos programas que menciono sabe cómo transformar los ceros y unos que hay dentro de una foto de tipo JPEG en los colores que luego se ven por pantalla. En su lugar, usan los servicios de una biblioteca de manipulación de imágenes JPEG. Esta biblioteca puede ser, por ejemplo, libjpeg.

libjpeg es una biblioteca experta en el manejo de imágenes JPEG. Sabe cómo transformar esos unos y ceros en píxeles, y sabe cómo volver a codificar píxeles para crear una foto nueva. Sin embargo, no puedes interactuar directamente con una biblioteca. No hay un icono para abrir libjpeg, ni tampoco puedes simplemente escribir en la terminal de tu sistema operativo el comando libjpeg para interactuar con este software.

¿Por qué existen las bibliotecas de software?

Puede ser visto desde fuera como poco educado que un programa se aproveche de las funciones de otro para hacer su trabajo. Sin embargo, en realidad esta situación no sólo es ventajosa sino que por evolución hemos llegado a ella. Existen varias razones por las cuales las bibliotecas de software tienen aceptación y se suelen utilizar para distribuir software.

Una de las ventajas es que permite reducir el tamaño de un programa. Si cada programa del mercado tuviese que incorporar su propio descodificador de imágenes JPEG, por ejemplo, los paquetes de software ocuparían más espacio de almacenamiento debido a que cada programa tiene que incluir sus propias instrucciones de procesador para que el ordenador pueda hacer esas tareas. Hoy en día no es un problema tan grande como antes, pero cuando los ordenadores tenían discos duros más pequeños sí que era de agradecer. Incluso hoy en día, en algunas placas de computación y otro tipo de microordenadores, suele ser importante medir para qué se usa cada byte de almacenamiento.

Por otra parte, que la comunidad centre sus esfuerzos en una biblioteca común que sólo sepa hacer bien una cosa pero que la haga bien, facilita que las mejoras que se incorporen a las bibliotecas estén disponibles a la vez para todos los programas que usen sus servicios, algo que hace que todos los programas se beneficien a la vez. Imagina que un día se inventa un algoritmo nuevo que es capaz de decodificar imágenes JPEG mucho más rápido. Si hay que enseñarle ese algoritmo a cada programa, tendríamos programas descompensados que serían más lentos. Si se hace esa mejora en la biblioteca, todos los programas que usen sus servicios pueden verse favorecidos a la vez.

También está el tema de la seguridad. A veces los procedimientos de cálculo que ejecutan los programas pueden ser arriesgados, y un programa malicioso puede aprovecharse de ciertos errores de computación en algunos de estos programas para hacer cosas inapropiadas. Es más sano corregir el error una vez y que todos los programas que dependan de ella se vean beneficiados a la vez, a tener que arreglar por separado cada programa, puesto que algunos no se actualizarán tan deprisa y podría suponer un riesgo de seguridad a los usuarios.

¿Por qué a veces las bibliotecas de software dan problemas?

Las bibliotecas de software no siempre funcionan bien. En ocasiones, puede ocurrir que un servicio se presta diferente en la versión 1.0 de una biblioteca, que en la versión 2.0 de la misma biblioteca. Si un programa ha determinado que necesita la versión 1.0, pero otro programa necesita usar la versión 2.0, será complicado satisfacer ambas demandas sin instalar a la vez ambas versiones.

Soluciones como AppImage buscan precisamente solucionar estos problemas haciendo que cada paquete de software traiga consigo mismo una copia separada de la biblioteca, a costa de perder las ventajas para el usuario final. Los programas que se distribuyen como AppImage pesan más, y si se instalan varios puede ocurrir que ocupen más espacio. Sin embargo, resulta útil para solucionar este tipo de problemas por lo que al final del día, dado el tamaño de los medios de almacenamiento típicos de la actualidad, no se considera un problema.

Flatpak y Snap resuelven este problema de forma más limpia, permitiendo que múltiples versiones de una misma biblioteca estén instaladas a la vez en el ordenador pero en lugares separados, y utilizando un sofisticado sistema de resolución para que un programa indique de forma exacta qué versión de una biblioteca necesita que le proporcione servicios.

Planner es el organizador para que empieces el año bien

En este post reviso Planner y te doy un tour por la aplicación, para que puedas decidir si es la aplicación que te puede ayudar a ser una persona más productiva en 2023.

El año nuevo suele ser una época de propósitos, y si uno de esos propósitos es llevar un estilo de vida más organizado, la tecnología puede ayudarnos a que sea más fácil enumerar las cosas que tenemos pendientes de hacer, como obligaciones para nuestras tareas diarias, o llevar a cabo nuestros planes personales para mejorar durante 2023.

El catálogo de aplicaciones de Flathub está repleto de aplicaciones para orgnaizar tareas, así que si la pantalla de nuestro ordenador es una de las que más miramos, podemos utilizar nuestro ordenador para llevar a cabo este control de las tareas. Una de las aplicaciones que nos encontramos es Planner, y se trata de un gestor de taras diseñado con sistemas operativos como elementaryOS en mente. Es igualmente compatible con cualquier distribución GNU/Linux, aunque se llevará especialmente bien con aquellas que usen GNOME. De hecho, en el futuro piensan integrarse todavía más con las bibliotecas del sistema de GNOME y su posible inclusión en el programa GNOME Circle, y el equipo está considerando un cambio de nombre y de icono para la próxima versión.

Hasta entonces, hablemos de Planner. Está ligada a la metodología GTD (Getting Things Done), una forma de organizarse y de ser una persona productiva basada en algunos conceptos importantes como la bandeja de entrada, donde se van a ir depositando las tareas que nos vayan entrando o que vayamos descubriendo. Esta bandeja luego es organizada, las tareas son clasificadas, y periódicamente existe un procedimiento de revisión para comprobar que no se está olvidando nada importante. Y, por supuesto, la etapa de la ejecución de las tareas.

Captura de pantalla de Planner
Aspecto principal de Planner.

Sin embargo, la aplicación no es perfecta. Ninguna lista de tareas lo es. Y esto ocurre, en parte, debido a que cada persona tiene formas de trabajar diferentes. Planner se siente muy cercano a la metodología GTD (Getting Things Done), pero si no eres una persona que utilice la metodología GTD, probablemente la aplicación te obligue a trabajar de formas para las que no tengas costumbre, o pretenda que cambies tu manera de hacer las cosas.

El principal atractivo de Planner es conectarlo con Todoist, un servicio cloud similar que te permite organizar tareas en la nube y sincronizarlas con todos los dispositivos. Con esto puedes conseguir integrar tu ordenador y tu móvil, si tienes la aplicación de Todoist instalada en él, para sincronizar automáticamente tus tareas en todas tus pantallas.

Algunas limitaciones de Planner que te vas a encontrar, no obstante:

  • Una vez que respondas a si quieres usar tareas locales, conectarte a Todoist o a un entorno CalDAV, ya no es posible volver a responder a esa pregunta sin borrar antes todos los datos de la aplicación, perdiendo todas las tareas que hayas metido hasta entonces.
  • ¿Exportar información? Es posible, pero no es tan fácil como parece.
  • En este momento no es posible crear tareas programadas que se repitan con el tiempo.

Dentro de Planner, la forma de organizar la información más allá de la bandeja de entrada es en proyectos y etiquetas. Puedes crear ambas cosas desde la interfaz. Les puedes asignar un color y una etiqueta. A los proyectos también les puedes asignar hasta un emoji para representar visualmente cada proyecto.

Interfaz de creación de proyectos.

Una vez hagas eso, vas a poder colocar en esos proyectos las tareas que crees, y vas a poder asignarles etiquetas a esas tareas. Después, con la barra lateral vas a poder filtrar tanto por proyecto como por tareas.

En la parte de arriba de la barra lateral también encuentras cuatro botones para aplicar filtros especiales:

  • Inbox: tareas que no forman parte de ningún proyecto todavía.
  • Today: tareas que han sido configuradas para hoy.
  • Scheduled: te da acceso a un calendario donde puedes ver las tareas configuradas para cada día, y recorrer con la línea del tiempo los días.
  • Pinboard: te deja filtrar por tareas que han sido marcadas como fijada, que son las que siempre van a ser visibles.

En definitiva, Planner, si bien tiene algunas limitaciones a nivel de cómo está programado, puede ser una alternativa para personas que busquen una forma simple de integrar una aplicación de tareas en su ordenador para poder recordar las cosas que hay que hacer inmediatamente.

Puedes descargar Planner desde Flathub y desde la tienda de aplicaciones de elementaryOS.

Flatseal: controla los permisos de tus apps Flatpak

Si utilizas con regularidad aplicaciones Flatpak seguramente ya sepas que muchas de estas aplicaciones vienen por seguridad limitadas para que no tengan acceso más allá de donde realmente les haga falta. De este modo, si una aplicación todo lo que va a hacer es mostrar una página web dentro de algún tipo de ventana Electron, no habría por qué darle permisos para acceder a la carpeta personal (como mucho a la carpeta de descargas) o a los dispositivos de hardware como webcams o micrófonos.

Sin embargo, en algunas ocasiones nos podemos encontrar con aplicaciones que tienen más o menos permisos de lo que consideramos aceptable. ¿Por qué una aplicación de reloj debería tener acceso a internet? O por el lado contrario, si una aplicación de telecomunicaciones no tiene acceso por defecto a la webcam y al micrófono, difícilmente vamos a poder iniciar videollamadas.

Para este tipo de situaciones existen herramientas como Flatseal. Se trata de una aplicación gráfica que todo lo que hace es permitir hacer mediante clics lo que de otro modo tendríamos que hacer desde una terminal con la ayuda del comando flatpak override. Permite modificar los permisos que se le entregan a las aplicaciones instaladas desde Flatpak para así, o agregarle permisos para que puedan acceder a directorios adicionales que no se vieron venir si están provocando problemas de ejecución, o restringir todavía más los permisos de una aplicación si no confiamos del todo en ella.

Hay que tener en cuenta que, si bien algunas distribuciones se preocupan más del software que portan sus gestores de paquetes, Flatpak se ha convertido en el lugar del que descargar clientes gráficos de aplicaciones no tan libres y donde se desconoce del todo su funcionamiento. No estoy diciendo con esto que las aplicaciones de Flatpak sean inseguras, pero en algunos casos no se pierde nada por restringir a una aplicación cloud, como Discord, para que no tenga acceso a nada más que la carpeta de descargas, o para que no pueda ver la lista de procesos en ejecución, por si acaso están compartiendo esa información con terceras personas.

Captura de pantalla de Flatseal ajustando permisos
Flatseal mostrando una ventana de permisos.

La forma de utilizar Flatseal es sencilla. Después de instalarla desde Flathub, la ejecutas. Encontrarás en el panel de la izquierda una lista de las aplicaciones que tienes instaladas en tu equipo. También habrá una opción global arriba que te permitirá ajustar los permisos de todas las aplicaciones.

Una vez tengas marcada una aplicación, el panel de la derecha puede usarse para revocar permisos proporcionados por defecto cuando la aplicación se instala, o para proporcionarle permisos extra. Admisiblemente, no todos los permisos son fáciles de comprender. Esta es la razón por la que Flatseal tiene en su página de GitHub una documentación en forma de manual que te enseña para qué vale cada cosa y qué consecuencias puede tener encender o apagar una opción.

Tienes que tener en cuenta, para acabar, que no todas las aplicaciones van a reaccionar igual de bien a que se le prive de un permiso que da por sentado. Por ejemplo, es posible que algunas aplicaciones empiecen a fallar de formas feas si no tienen permiso para abrir la carpeta de descargas y esperan que puedan. En caso de que una aplicación deje de comportarse como lo normal, siempre puedes utilizar el botón Restablecer que hay en Flatseal para volver a dejarlo todo como estaba.

dnfdragora es el verdadero gestor de software gráfico para Fedora

dnfdragora es una interfaz gráfica alternativa para instalar paquetes en Fedora sin pasar por la línea de comandos.

DNF es el gestor de paquetes estandar de Fedora. Por lo general, cuando quieres instalar un paquete en tu instalación de Fedora recién instalado, tienes dos opciones: utilizas DNF desde la línea de comandos, o te vas a GNOME Software. Sin embargo, si has pasado el suficiente tiempo en GNOME Software, te habrás dado cuenta de que no muestra todo el software que puede instalarse en el sistema. En particular, parece que GNOME Software solamente tiene interés en mostrarte software gráfico, pero te va a esconder comandos que sean de línea de comandos.

Si en algún momento necesitas visualmente una forma de poder listar los paquetes que tienes instalados en el ordenador, posiblemente te preguntes si existe alguna alternativa en Fedora que sea equivalente al Synaptic que los usuarios de distribuciones basadas en Debian tienen a mano si se instala desde el centro de software, cuando es que no venga preinstalado por defecto. DNF es un programa bueno, pero a veces escanear la información resulta un poco complicado.

En el caso de DNF, existe una herramienta visual llamada dnfdragora que puede hacer las veces precisamente de esa herramienta visual. dnfdragora la encuentras (irónicamente) en la aplicación GNOME Software, y una vez instalada es una aplicación que puedes usar para listar todos los paquetes disponibles a través de DNF, sean gráficos o no.

Interfaz de usuario principal de dnfdragora
La interfaz de usuario de dnfdragora es simple y dentro de lo esperable para este tipo de programas.

Si algo en contra tiene dnfdragora, es su poca estabilidad. Navegar por el programa es como recorrer un campo de minas, en tanto que de vez en cuando te encontrarás con que el programa muestra un mensaje de error sin venir a cuento al cambiarse de categoría o navegar por las aplicaciones, que cierra todo el programa.

Sin embargo, si tienes la suficiente suerte, puedes utilizar dnfdragora para buscar paquetes que cumplan un determinado propósito. En este sentido, cuando no tenemos muy claro lo que tenemos que instalar, dnfdragora puede resultar una forma más fácil de localizar estos paquetes ya que visualmente podemos ver todos los resultados de una búsqueda en una tabla que podemos consultar de forma fácil y visual.

Resultados de búsqueda
Resultados de una búsqueda con dnfdragora.

dnfdragora también nos permite, a través de su sistema de menús, modificar los repositorios activos, lo cual es práctico si tenemos repositorios extra y queremos temporalmente apagar o encender algunos, aunque se echa en falta una opción para agregar repositorios. Una de las ventajas de dnfdragora es que hace fácil encontrar paquetes que estén en varios repos a la vez, por ejemplo en fedora, updates y un repo de terceras fuentes que hayamos agregado.

Cuando hayamos marcado lo que queremos instalar, o desmarcado lo que queremos desinstalar, podemos usar el botón Apply para ver los cambios que se van a producir en el sistema, y finalmente aceptar si estamos de acuerdo para ejecutar los cambios, como si estuviésemos usando el comando desde la terminal.

Captura de pantalla del resultado de la transacción
dnfdragora nos pedirá confirmar la transacción antes de instalar o desinstalar paquetes

El nuevo Thunderbird 102 ya está aquí

Thunderbird 102 es la última versión del veterano cliente de correo Thunderbird. Incluye cambios estilísticos nuevos para poner al día visualmente la aplicación, y también novedades que lo continúan haciendo un cliente serio.

Ayer 28 de junio de 2022 se publicó de forma estable la última versión de Thunderbird, el veterano cliente de correo, que también puede hacer cosas como gestionar calendarios y listas de tareas, leer grupos de noticias NNTP y mantenerte al día con feeds RSS. La versión 102 incluye cambios estilísticos nuevos para poner al día visualmente la aplicación, y también novedades que lo continúan haciendo un serio competidor a las interfaces web a la hora de leer email.

Se nota muchísimo que Thunderbird hoy en día está en muy buenas manos a nivel de mejora de producto y evolución de interfaz, y esta nueva versión es la prueba de ello, puesto que visualmente incluye un aspecto mucho más moderno sin olvidar el tipo de producto que es Thunderbird.

Captura de pantalla de la barra de Spaces de Thunderbird
La nueva barra Spaces

Una de las principales novedades visuales de Thunderbird 102 es la nueva barra lateral Spaces. Esta barra sustituye los botones que antes se mostraban en varios puntos de la interfaz, y unifica la forma de acceder a las distintas áreas del programa, para hacerlas también más sencillas de descubrir. La barra es compacta y tiene un diseño minimalista. Si no nos gusta, siempre la podemos ocultar para mostrar en su lugar un único botón en la barra de pestañas superior de la aplicación.

Los iconos también han sido revisados, y ahora tienen más color, para hacerlos más fáciles de identificar. En general, la barra lateral donde se muestran las carpetas y las cuentas de correo ha recibido también cambios estéticos, incorporando una barra de herramientas nueva dedicada al panel de carpetas.

Captura de pantalla de la barra de carpetas de Thunderbird.
La nueva barra de herramientas de la vista de carpetas.

Esta barra lateral te permite acceder a un modo interesante que, si bien no es nuevo, antes estaba más escondido, hasta el punto de que posiblemente ni siquiera te sonase: el modo unificado, con el que puedes ver una vista unificada de tus bandejas de entrada si es que tienes varias. Algo que, sin duda, puede mejorar tu experiencia si tienes que leer de varias carpetas de correo.

También se ha aprovechado para mejorar una de las secciones que suelen pasar más desapercibidas del programa, pero que suele ser necesaria para toda persona que envíe e-mail con frecuencia: la libreta de direcciones. No solamente se puede asociar un nombre y una dirección de correo electrónico a un contacto, sino que ahora permitirá modificar más datos que pueden guardarse en la ficha de un contacto, como su teléfono, su dirección o su foto, utilizando el formato estándar vCard. Si tu libreta de contactos está sincronizada con otros dispositivos, como tu teléfono, agradecerás esta función.

Captura de pantalla de la libreta de contactos de Thunderbird 102.
La nueva libreta de contactos de Thunderbird 102.

Sin embargo, esta versión no solamente pone un sombrero nuevo, ya que también introduce mejoras en cuanto a la funcionalidad ofrecida por la propia aplicación. Ahora es posible conectarse a salas de chat de Matrix desde la propia sección de Chat. Hasta ahora Thunderbird solo soportaba de forma nativa protocolos como IRC o XMPP, pero en los últimos años, Matrix se ha convertido en una alternativa interesante para tener «chats modernizados» al estilo de otros competidores privativos como Slack o Discord.

También se ha dado visibilidad a secciones que antes estaban más escondidas. Por ejemplo, ahora hay un nuevo asistente para importar y exportar datos de la aplicación, con el objetivo de hacer más fácil la transición entre otra suite de oficina y Thunderbird o viceversa. Y si utilizas grupos de discusión NNTP, ahora hay un botón más claro de encontrar en la pantalla de bienvenida para dar de alta este tipo de cuentas sin tener que ir a la sección «Otras cuentas».

Tienes más información en el post oficial y las notas de versión completas. Puedes descargar Thunderbird desde su página oficial y se espera que en pocas semanas llegue al resto de canales de distribución, como Flathub o distribuciones rolling release.