Lançamento do sistema de pacotes autossuficientes Flatpak 1.6.0

Publicado uma nova ramificação estável da ferramenta Flatpak 1.6, que fornece um sistema para construir pacotes autossuficientes, independentes de distribuições específicas do Linux e executados em um contêiner especial, que isola o aplicativo do restante do sistema. O suporte à execução de pacotes Flatpak está disponível para Arch Linux, CentOS, 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 novidades na ramificação Flatpak 1.6:

  • Em Portal API método CreateUpdateMonitor adicionado, permitindo que os aplicativos monitorem a disponibilidade de atualizações e solicitem a instalação da atualização disponível.
    Para proibir o aplicativo de instalar atualizações automaticamente, pode-se usar o comando «flatpak permission-set flatpak updates $APPID no» (caso «ask» seja especificado em vez de «no», um diálogo de confirmação da atualização será exibido a cada vez);


  • Uma biblioteca foi proposta para simplificar a criação de manipuladores
    libportal, que permite o tratamento de eventos sem o uso direto do API Portal e da análise de sinais recebidos via D-Bus.
    Libportal fornece camadas simples que funcionam de maneira assíncrona para a maioria dos «portais«;
  • Um novo privilégio «—socket=cups» foi adicionado para fornecer acesso direto ao servidor de impressão CUPS;
  • O protocolo e o API para manipulação de autenticação foram alterados. Um autenticador para OCI (Open Container Initiative) foi adicionado. Suporte à instalação automática de autenticadores de repositórios externos do flatpak foi implementado. Um manipulador de callback foi adicionado ao FlatpakTransaction para usar autenticação por login e senha de maneira semelhante ao método de autenticação HTTP básico;
  • Suporte a aplicativos e sistemas protegidos, que exigem autenticação durante o carregamento, foi adicionado;
  • A camada utilizada para isolamento bubblewrap foi atualizada para a versão 0.4.0;
  • Suporte opcional a controle parental foi adicionado com a aplicação da biblioteca libmalcontent, permitindo restrições de acesso a determinados tipos de conteúdo;
  • As extensões agora são instaladas antes do aplicativo, permitindo que o aplicativo funcione imediatamente após a conclusão da sua instalação;
  • As operações com arquivos temporários foram reavaliadas, melhorando o desempenho em condições de espaço em disco insuficiente;
  • Para executar o comando «flatpak enter» não é mais necessário usar sudo;
  • Nos portais, foi adicionada a capacidade de executar ambientes isolados aninhados (sub-sandbox) para processos filhos;
  • Novos comandos «flatpak permission-set» e «permission-remove» foram adicionados para gerenciar a configuração de permissões;
  • Uma opção «flatpak install —or-update» foi adicionada, que realiza a atualização se o aplicativo já estiver instalado;
  • Adicionada a equipe «flatpak mask» para fixar a versão e proibir a instalação de atualizações;
  • Para imagens no formato OCI (Open Container Initiative), foi adicionada suporte para vinculação de rótulos, geração de histórico de alterações na imagem e inclusão de tipos mime do Docker, além dos tipos mime do OCI;
  • Nas configurações, foi adicionada a chave default-languages para definir a lista de idiomas utilizados, em adição à lista do sistema.

Vale lembrar que a Flatpak oferece aos desenvolvedores a possibilidade de simplificar a distribuição de seus programas que não estão nos repositórios padrão das distribuições, através da preparação 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á são construídos para LibreOffice, Firefox, 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 as dependências específicas do aplicativo, enquanto as bibliotecas gráficas e de sistema básicas (Gtk+, Qt, bibliotecas GNOME e KDE, etc.) são fornecidas como ambientes de execução típicos plugáveis. A principal diferença entre Flatpak e Snap é que o Snap utiliza componentes do ambiente do sistema principal 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 típicos (por exemplo, todas as bibliotecas necessárias para o funcionamento de programas GNOME ou KDE).

Além do ambiente de sistema típico (runtime), instalado por meio de um repositório, 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 OSTree, onde a imagem é atualizada atomicamente 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 por meio de uma camada especial rpm-ostree. 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 criado é completamente independente da distribuição utilizada e, com as configurações corretas do pacote, não tem acesso aos arquivos e processos do usuário ou do sistema principal, não pode acessar diretamente o hardware, exceto através da saída via DRI, e da subsistema de rede. A saída gráfica e a organização da entrada implementados 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 é utilizado uma camada Bubblewrap 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

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster