Maybaygiare.org

Blog Network

Snap (Gestor de pacotes)

Snap StoreEdit

o Snap Store permite aos programadores publicar as suas aplicações directamente aos utilizadores. Com abordagens tradicionais de gerenciamento de pacotes Linux como APT ou YUM, as aplicações são empacotadas e distribuídas como parte do sistema operacional. Isso cria um atraso entre o desenvolvimento da aplicação e sua implantação para os usuários finais. Em contraste, os desenvolvedores de aplicativos podem publicar suas aplicações no Snap Store e levá-las diretamente aos usuários sem qualquer intervenção dos mantenedores de distribuição.

Todos os aplicativos enviados para o Snap Store passam por testes automáticos, incluindo uma varredura de malware. No entanto, os aplicativos Snap não recebem o mesmo nível de verificação que o software nos arquivos Ubuntu regulares. Em um caso em maio de 2018, duas aplicações do mesmo desenvolvedor foram encontradas para conter um mineiro de criptomoeda que correu em segundo plano durante a execução da aplicação. Quando esta edição foi encontrada, a Canonical removeu as aplicações da Snap Store e transferiu a propriedade das Snaps para um terceiro confiável que re-publicou as Snaps sem o miner presente. Embora o Snap sandbox reduz o impacto de um aplicativo malicioso, a Canonical recomenda que os usuários apenas instalem fotos de editores confiados pelo Usuário.

Uma vez que os pacotes no Snap Store são mantidos pelos próprios desenvolvedores, mantenedores de distribuição não podem garantir que os pacotes cumprem os padrões de qualidade e são atualizados atempadamente. Em um caso, a Microsoft deixou uma versão desatualizada do Skype na loja Snapcraft por mais de um ano.

embora o Snap Store pela Canonical seja atualmente a única loja existente para snaps, o Snap pode ser usado sem uma loja. Pacotes Snap podem ser obtidos a partir de qualquer fonte, incluindo o site de um desenvolvedor. O funcionário da Red Hat Adam Williamson e líder do projeto Linux Mint Clement Lefebre criticaram a Canonical por manter algumas partes do lado do servidor da Snap Store de código fechado. Clement afirma que isso cria um conflito de interesses que prejudica a neutralidade do Snap, dado que a canônica desenvolve o Ubuntu.

Universal Linux packagesEdit

Snaps são pacotes auto-contidos que funcionam em uma série de distribuições Linux. Isso é diferente das abordagens tradicionais de gerenciamento de pacotes Linux, que requerem pacotes especificamente adaptados para cada distribuição Linux.

o formato do ficheiro snap é um único sistema de ficheiros comprimido usando o formato SquashFS com a extensão . Este sistema de arquivos contém a aplicação, bibliotecas de que depende, e metadados declarativos. Este metadado é interpretado pelo snapd para configurar uma caixa de areia segura de forma apropriada para essa aplicação. Após a instalação, o snap é montado pelo sistema operacional host e descomprimido no momento em que os arquivos são usados. Embora isso tenha a vantagem de snaps usar menos espaço em disco, também significa que algumas grandes aplicações começam mais devagar.

uma diferença significativa entre o Snap e outros formatos de embalagem universal Linux, como o Flatpak, é que o Snap suporta qualquer classe de Aplicação Linux, tais como aplicações de desktop, ferramentas de servidor, aplicativos de IoT e até mesmo Serviços de sistema, como a pilha de controladores de impressoras. Para garantir isso, o Snap baseia-se no systemd para recursos como a execução de serviços de sistemas ativados por socket em um Snap. Isto faz com que o Snap só trabalhe em distribuições que usam este sistema init.

sandboxEdit configurável

aplicações em um Snap executado em um container com acesso limitado ao sistema host. Usando Interfaces, os usuários podem dar a uma aplicação Acesso mediado a recursos adicionais do host, tais como gravação de áudio, acesso a dispositivos USB e gravação de vídeo. Estas interfaces mediam APIs Linux regulares para que as aplicações possam funcionar na caixa de areia sem necessidade de serem reescritas. Desktop applications can also use the XDG Desktop Portals, a standardized API originally created by the Flatpak project to give sandboxed desktop applications access to host resources. Estes portais muitas vezes fornecem uma melhor experiência do usuário em comparação com as APIs nativas Linux porque eles pedem ao usuário permissão para recursos como uma webcam no momento em que a aplicação os usa. A desvantagem é que as aplicações e ferramentas precisam ser reescritas, a fim de usar essas APIs mais recentes.

O Snap sandbox também suporta o compartilhamento de dados e sockets Unix entre Snaps. Isto é muitas vezes usado para compartilhar bibliotecas comuns e frameworks de aplicação entre Snaps para reduzir o tamanho das Snaps, evitando a duplicação.

O Snap sandbox depende fortemente do Módulo de segurança do AppArmor Linux do kernel Linux upstream. Como apenas um” grande ” módulo de segurança Linux (LSM) pode estar ativo ao mesmo tempo, o Snap sandbox é muito menos seguro quando outro LSM maior está habilitado. Como resultado, em distribuições como o Fedora que permitem o SELinux por padrão, o Snap sandbox é altamente degradado. Embora a Canonical esteja trabalhando com muitos outros desenvolvedores e empresas para tornar possível que vários LSMs funcionem ao mesmo tempo, esta solução ainda está a muito tempo de distância.

a caixa de areia Snap impede que as aplicações de desktop estaladas acedam aos temas do sistema operativo host para evitar problemas de compatibilidade. A fim de Snaps para usar um tema, ele também precisa ser embalado em um Snap separado. Muitos temas populares são empacotados pelos desenvolvedores Snap, mas alguns temas ainda não são suportados e temas incomuns têm que ser instalados manualmente. Se um tema não está disponível como um pacote Snap, os usuários têm que recorrer a escolher o melhor tema de correspondência disponível. O trabalho está em curso para tornar mais fácil para terceiros empacotar temas em um Snap e instalar automaticamente temas de Sistema pouco comuns.

updatesEdit automático e Atómico

várias vezes por dia, verifica no snapd as actualizações disponíveis de todas as Snaps e instala-as em segundo plano usando a operação atómica. Atualizações podem ser revertidas e usar codificação delta para reduzir o seu tamanho de download.

os editores podem lançar e atualizar várias versões de seu software em paralelo usando canais. Cada canal tem uma faixa específica e risco, que indicam a versão e a estabilidade do software lançado nesse canal. Ao instalar uma aplicação, O Snap usa por omissão o canallatest/stable, que irá actualizar automaticamente para novas versões importantes do software quando estiverem disponíveis. Os editores podem criar canais adicionais para dar aos usuários a possibilidade de se cingir a grandes lançamentos específicos de seu software. Por exemplo, um canal 2.0/stable permitiria que os usuários se mantivessem na versão 2.0 do software e apenas recebessem pequenas atualizações sem o risco de mudanças incompatíveis. Quando o editor libera uma nova versão principal em um novo canal, os usuários podem atualizar manualmente para a próxima versão quando eles escolherem.

embora as actualizações automáticas não possam ser desligadas, existem muitas formas de configurar as actualizações de acordo com necessidades específicas. O usuário pode optar por permanecer em uma versão principal específica do software, especificando o canal, eles podem configurar o intervalo de atualização para ter tempo para verificar manualmente atualizações, e eles podem manter atualizações por até 60 dias. Além disso, as atualizações também são automaticamente desativadas em conexões com medição. Mesmo com esses controles, um número de usuários expressaram suas queixas sobre a falta de uma opção para desligar as atualizações automáticas completamente.

SnapcraftEdit

snapcraft

Snapcraft Logo

Developer(s)

Canonical Ltd.

Initial release

29 October 2015; 5 years ago

Stable release
4.4.2 / 13 November 2020; 4 meses atrás

Repositório

https://github.com/snapcore/snapcraft

Escrito em

Python

sistema Operacional

Linux, macOS, Microsoft Windows

Licença

a GPLv3

Site

snapcraft.io

Snapcraft é uma ferramenta para programadores para empacotar seus programas no Snap formato. Ele funciona em qualquer distribuição Linux suportada pelo Snap, macOS e Microsoft Windows. Snapcraft cria os pacotes em uma Máquina Virtual usando Multipass, a fim de garantir que o resultado de uma compilação é o mesmo, independentemente de qual distribuição ou sistema operacional é construído. Snapcraft suporta um grande número de ferramentas de compilação e linguagens de programação como Go, Java, JavaScript, Python, C/C++ e Rust. Ele também permite a importação de metadados de aplicações de várias fontes, tais como AppStream, git, shell scripts e setup.py arquivos.

Deixe uma resposta

O seu endereço de email não será publicado.