# Flatpak

Flatpak, conocido como xdg-app hasta mayo de 2016,es una utilidad para despliegue, administración de paquetes universales y virtualización de aplicaciones para entornos de escritorio de GNU/Linux. Esta herramienta informática proporciona un entorno de aislamiento de procesos llamado Bubblewrap, en el que los usuarios pueden ejecutar aplicaciones aisladas del resto del sistema. Flatpak es una manera de instalar aplicaciones independientes de la distribución o versión de Gnu/Linux. Las aplicaciones que utilizan Flatpak necesitan permiso del usuario para controlar dispositivos de hardware o acceder a los archivos del usuario.

## Historia

La idea fue propuesta en 2013 por el programador alemán de software libre Lennart Pöttering, quién publicó un artículo al respecto en el año 2014. Desarrollado como parte del proyecto freedesktop.org (anteriormente conocido como X Desktop Group o XDG), fue originalmente llamado xdg-app. El servidor de freedesktop.org se enmarca dentro del proyecto Flatpak.
Flatpak y xdg-app es lo mismo, se cambió el nombre porque los desarrolladores querían algo con un atractivo más amplio que el que xdg-app podía proporcionar. Por ello, como parte del lanzamiento formal de Flatpak como listo para usar, se decidió elegir un nombre más accesible.
En diciembre de 2019, 22 distribuciones soportaban esta herramienta.

## Tecnología

Flatpak es una tecnología que reúne muchas de las lecciones aprendidas por su creador, Alexander Larsson, durante su largo período como desarrollador de escritorio Linux y después de pasar tiempo dentro de Red Hat, trabajando en tecnologías de contenedores. Se basa en tecnologías existentes como cgroups, espacios de nombres, montajes de enlace y seccomp en el núcleo Linux, OSTree de Project Atomic y el formato OCI desarrollado por Open Container Initiative. También ha generado nuevas tecnologías como Bubblewrap, que se comparte entre Flatpak y Project Atomic.
Flatpak está diseñado para ejecutarse dentro de una sesión de escritorio, y no resulta ser una buena combinación para un servidor.
Es posible que las aplicaciones Flatpak coexistan con aplicaciones que están empaquetadas de otras maneras, en el mismo sistema host.

## Evolución

| Fecha | Suceso |
| Agosto-2007 | Alexander Larsson lanza Glick, su primer framework de agrupación de aplicaciones |
| Noviembre-2011 | Se lanza Glick 2, una versión modernizada del primer marco Glick |
| Julio-2012 | La sesión GNOME OS celebrada en GUADEC, incluye la planificación inicial de un nuevo formato de paquete de aplicaciones |
| Septiembre-2012 | Alexander Larsson lanza el marco experimental "bundler" |
| Enero-2013 | Propuesta de "Linux Apps" discutida en el hackfest GNOME Developer Experience, Bruselas |
| Diciembre-2014 | El trabajo comienza en xdg-app, que luego se convierte en Flatpak |
| Marzo-2015 | Lanzamiento de xdg-app 0.1, la primera versión de Flatpak |
| Diciembre-2015 | El Software de GNOME adquiere la capacidad de instalar aplicaciones xdg-app |
| Mayo-2016 | xdg-app renombrada a Flatpak, lanzada 0.6.0; el comunicado de prensa adjunto incluyó el respaldo de Red Hat, Endless Computers y Collabora |
| Junio-2016 | Comienza el trabajo en el marco de seguridad de portales de escritorio |
| Julio-2016 | GTK + 3.21.4 lanzado con soporte inicial para el marco de portales |
| Agosto-2016 | Endless OS 3.0 lanzado, el primer sistema operativo que usa Flatpak de forma predeterminada. |
| Noviembre-2016 | ClearLinux anuncia la adopción de Flatpak |
| Diciembre-2016 | Flatpak 0.8.0 lanzado, el comienzo de la primera serie estable con soporte a largo plazo |
| Mayo-2017 | Lanzamiento inicial del servicio de alojamiento Flathub |
| Octubre-2017 | Se lanza Flatpak 0.10.0, que marca el inicio de la segunda serie de versiones estables compatibles, KDE Plasma 5.11, "Discover" permite instalar aplicaciones Flatpak |
| Noviembre-2017 | Linux Mint 18.3 incluye integración de Flatpak |
| Agosto-2018 | Flatpak 1.0, el primer lanzamiento en una nueva serie estable, con nuevas características importantes; El período beta de Flathub termina; Freedesktop runtime 18.08 lanzado con una nueva política de período de soporte |

## Aplicaciones

Existen disponibles paquetes flatpak, oficiales o desarrollados por terceros, para cientos de aplicaciones. Entre ellas están las más populares como LibreOffice, VLC, Gimp, Inkscape, Blender, darktable, Krita, Audacity, FileZilla, MonoDevelop Las aplicaciones están disponibles en flathub.org. Hay también aplicaciones adicionales de entorno de oficina y también de juegos. Las versiones de estas app suelen estar actualizadas a las últimas versiones disponibles de manera rápida. Esto permite por ejemplo instalar las últimas versiones en distribuciones con ciclos de actualización más lentos de sus versiones en sus repositorios, además de evitar tener que adaptar las versiones de cada aplicación y sus actualizaciones a cada distribución.

## Órdenes más comunes

Comprobar la versión de Flatpak instalada:
Habilitar el repositorio Flathub:
Instalar aplicaciones (por ejemplo, Spotify):
Ejecutar aplicaciones:
Listar aplicaciones instaladas:
Listar solo las aplicaciones instaladas, no los entornos de ejecución:
Listar solo las aplicaciones disponibles en el repositorio:
Actualizar todas las aplicaciones:
Actualizar una aplicación específica:
Ver los detalles de una aplicación:
Eliminar una aplicación instalada:
Reparar una instalación de flatpak:
Eliminar entornos de ejecución no utilizados:
Eliminar todas las aplicaciones:

## Soporte

Flatpak soporta al menos las siguientes distribuciones de linux:

### Soporte por defecto

En estas distribuciones Flatpak está incluido en los paquetes por defecto:
* CentOS
* Clear Linux
* elementary OS
* Endless OS
* Fedora Workstation
* Fedora Silverblue
* Linux Mint
* Pop! OS
* PureOS
* SteamOS
* Ubuntu MATE
* Zorin OS

### Soportado

Flatpak se puede instalar manualmente en las siguientes distribuciones:
* AlmaLinux
* Alpine Linux
* Arch Linux
* Bodhi Linux
* Clear Linux
* Debian
* Deepin
* EndeavourOS
* Gentoo Linux
* KaOS Gnu/Linux
* KDE neon
* Kubuntu
* Mageia
* Manjaro
* MX Linux
* NixOS
* OpenMandriva Lx
* OpenSUSE
* Pardus
* PCLinuxOS
* Peppermint OS
* Raspberry Pi OS
* Red Hat Enterprise Linux
* Rocky Linux
* Solus
* SparkyLinux
* Ubuntu
* Void Linux
* Zenwalk