uma nova ramificação estável da ferramenta , que fornece um sistema para construir pacotes autossuficientes, não vinculados a distribuições específicas do Linux e executados em um contêiner especial que isola o aplicativo do restante do sistema. O suporte para a execução de pacotes Flatpak é garantido para Arch Linux, , Debian, Fedora, Gentoo, Mageia, Linux Mint e Ubuntu. Pacotes com Flatpak estão incluídos no repositório Fedora e são suportados pelo gerente de aplicativos padrão GNOME.
Principais na ramificação Flatpak 1.8:
- Simplificada a implementação da instalação em modo P2P (permite organizar o download de aplicativos e conjuntos de runtime através de nós ou dispositivos intermediários para sistemas sem conexão de rede). O suporte à instalação através de hosts intermediários na rede local foi encerrado. Desabilitado por padrão o download automático de repositórios (sideload) armazenados em pen drives USB locais. Para ativar repositórios locais intermediários, é necessário configurar o repositório criando um link simbólico de /var/lib/flatpak/sideload-repos ou
/run/flatpak/sideload-repos. Изменение позволило упростить внутреннюю реализацию режима P2P и повысить его эффективность. - Adicionado um unit do systemd opcional para a detecção automática de repositórios adicionais em dispositivos USB externos conectados.
- Para aplicativos que têm acesso ao sistema de arquivos, o diretório /lib do ambiente host é passado para /run/host/lib.
- Novas permissões de acesso ao FS foram adicionadas - "host-etc" e "host-os", permitindo acesso aos diretórios do sistema /etc e /usr.
- Para gerar um código de análise de arquivos GVariant mais eficiente, foi utilizado .
- No script de configuração de construção foi adicionada a possibilidade de compilar sem
libsystemd; - Montagem de sockets do Journal em modo somente leitura foi garantida.
- No exportação de documentos foi adicionada a suporte para exportação de diretórios.
- Acesso direto aos dispositivos de áudio ALSA para aplicativos com acesso ao Pulseaudio foi permitido.
- Na API adicionada o sinal "install-authenticator", que pode ser usado pelos clientes para instalar autenticadores necessários para realizar a transação.
- O uso de dados sobre o fuso horário com base em /etc/localtime do sistema host foi garantido, resolvendo problemas relacionados ao fuso horário em alguns aplicativos.
- A instalação do arquivo env.d do gdm foi encerrada, já que os geradores do systemd lidam melhor com essa tarefa.
- No utilitário create-usb, exportação de commits parciais foi habilitada por padrão.
- Fornecido o arquivo sysusers.d para a criação através do systemd dos usuários necessários.
- Nos comandos «flatpak remote-add» e «flatpak modify» foi adicionada a opção «—[no-]follow-redirect» para proibir/permitir redirecionamento para outro repositório.
- No sistema
foi adicionado o API Spawn para obter o identificador real do processo (PID) de um aplicativo em execução. - Todos os repositórios OCI (Open Container Initiative) foram transferidos para utilizar o autenticador flatpak-oci-authenticator.
- Nos comandos «flatpak remote-info» e «flatpak update» foi adicionada a opção «—commit=» para definir uma versão específica dos repositórios OCI.
- Foi adicionada a suporte inicial para atualizações delta para repositórios OCI.
- Foi adicionada a comando «flatpak upgrade», que é um alias para o comando «flatpak update».
- Implementados scripts de complemento de entrada para o shell fish.
Recordamos que o Flatpak oferece aos desenvolvedores de aplicativos a possibilidade de simplificar a distribuição de seus programas, que não estão incluídos nos repositórios padrão das distribuições, através de um único contêiner universal sem a formação de builds separados para cada distribuição. Para os usuários preocupados com a segurança, o Flatpak permite executar aplicativos questionáveis em um contêiner, fornecendo acesso apenas às funções de rede e arquivos do usuário relacionados ao aplicativo. Para os usuários interessados em novidades, o Flatpak permite instalar as versões de aplicativos mais recentes e estáveis sem a necessidade de modificar o sistema. Por exemplo, atualmente os pacotes Flatpak já para LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio, etc.
Para reduzir o tamanho do pacote, ele inclui apenas dependências específicas do aplicativo, enquanto as bibliotecas gráficas e do sistema base (Gtk+, Qt, bibliotecas GNOME e KDE, etc.) são disponibilizadas como ambientes de runtime conectáveis padrão. A principal diferença entre Flatpak e Snap é que o Snap usa componentes do ambiente do sistema base e isolamento baseado na filtragem de chamadas de sistema, enquanto o Flatpak cria um contêiner separado do sistema e opera com grandes conjuntos de runtime, fornecendo como dependências não pacotes, mas ambientes de sistema padrão (por exemplo, todas as bibliotecas necessárias para rodar programas GNOME ou KDE).
Além do ambiente de sistema típico (runtime), instalado por meio de um , são fornecidas dependências adicionais (bundle) necessárias para o funcionamento do aplicativo. No total, runtime e bundle formam o conteúdo do contêiner, sendo que o runtime é instalado separadamente e vinculado a vários contêineres, o que permite evitar a duplicação de arquivos de sistema comuns aos contêineres. Em um sistema, podem ser instalados vários runtimes diferentes (GNOME, KDE) ou várias versões de um único runtime (GNOME 3.26, GNOME 3.28). O contêiner com o aplicativo, como dependência, usa apenas a vinculação a um runtime específico, sem considerar os pacotes individuais dos quais o runtime é composto. Todos os elementos ausentes são empacotados diretamente junto com o aplicativo. Ao formar o contêiner, o conteúdo do runtime é montado como a partição /usr, enquanto o bundle é montado no diretório /app.
O conteúdo do runtime e dos contêineres de aplicativos é formado usando a tecnologia , onde a imagem é atualizada de forma atômica a partir de um repositório semelhante ao Git, permitindo aplicar métodos de controle de versão aos componentes da distribuição (por exemplo, é possível reverter rapidamente o sistema a um estado anterior). Os pacotes RPM são traduzidos para o repositório OSTree com a ajuda de uma camada especial . A instalação e atualização separada de pacotes dentro do ambiente de trabalho não é suportada; o sistema é atualizado não ao nível de componentes individuais, mas como um todo, mudando seu estado de maneira atômica. São fornecidas ferramentas para a aplicação incremental de atualizações, eliminando a necessidade de substituir completamente a imagem a cada atualização.
O ambiente isolado gerado é completamente independente da distribuição utilizada e, com as configurações apropriadas do pacote, não tem acesso aos arquivos e processos do usuário ou do sistema base, não pode se comunicar diretamente com o hardware, exceto pela saída através do DRI, e da subsistema de rede. A saída gráfica e a organização de entrada usando o protocolo Wayland ou através de um redirecionamento do socket X11. A interação com o ambiente externo é baseada em um sistema de troca de mensagens DBus e uma API Portals especial. Para isolamento uma camada e as tecnologias tradicionais de virtualização em contêineres para Linux, baseadas no uso de cgroups, espaços de nomes (namespaces), Seccomp e SELinux. Para a saída de áudio, utiliza-se o PulseAudio.
Fonte: opennet.ru
