2016/06/15

Snaps do Ubuntu alastram-se a outras distribuições de Linux


As inúmeras distribuições Linux e a complexidade de muitos programas, que dependem da presença de outros para funcionar, tornam a instalação de software numa tarefa nem sempre simples. O Snaps da Ubuntu quer resolver este problema e já está a conquistar outras distribuições Linux.

Instalar software em Linux é algo que tanto pode ser simples, como depressa se tornar num pesadelo, quando aquilo que pretendemos instalar inclui dependências de outras coisas que têm que ser instaladas (e que podem elas próprias ter outras dependências). Junte-se a possibilidade de algumas dessas dependências poderem ser de versões que entram em conflito com outros programas que já se tenham instalado, e rapidamente ficamos com uma dor de cabeça que nos faz desejar que todos os programas fossem tão simples de instalar e remover como as apps nos dispositivos móveis.

O Snaps da Canonical pretende fazer isso mesmo, e embora se tenha estreado no Ubuntu, começa a ganhar mais fãs e já é apoiado por inúmeras empresas e entidades (incluindo a Dell, Samsung, e Linux Foundation) e suportado por múltiplas distribuições de Linux. Actualmente já funciona nativamente em Arch, Debian, Fedora, e as inúmeras variedades de Ubuntu (Kubuntu, Lubuntu, Ubuntu GNOME, Ubuntu Kylin, Ubuntu MATE, Ubuntu Unity, e Xubuntu) e está a ser testado para chegar também ao CentOS, Elementary, Gentoo, Mint, OpenSUSE, OpenWrt e RHEL. Uma expansão que seria muito bem vinda e facilitar o processo de distribuição, instalação e utilização de programas.

Com estes Snaps, os utilizadores não têm que se preocupar com a questão das dependências, pois temos um "pacote" integrado com tudo o que é preciso para executar o programa, sem complicações nem possibilidade de conflitos com outros programas - o que também facilita o processo de actualizações e até a capacidade de facilmente se reverter para uma versão anterior caso haja algum problema. Capacidades que também se tornam bastante atractivas para a "Internet of Things", onde o potencial para actualizações desastrosas pode ter consequências bem mais complicadas.

Vamos lá ver se estes Snaps se tornam no formato "standard" para distribuição de programas em Linux...

3 comentários:

  1. Existe um sistema alternativo que é suportado pela Red Hat, Fedora e desenvolvido pela Gnome Foundation chamado de Flatpaks.

    http://www.phoronix.com/scan.php?page=article&item=ubuntu-snaps-fedora&num=1

    O suporte em Fedora não foi feito pela Red Hat. Mas sendo open-source aceitam a contribuição. :)

    Os Snaps têm um ligeiro problema. No estado actual ocupam uma barbaridade de espaço.
    Exemplo, o Snap de LibreOffice ocupa 1.1GB. O package tradicional para Debian/Ubuntu? 229Mb...

    ResponderEliminar
  2. Então perde-se uma razão pela qual o Linux é bom, dependenias partilhadas.
    Era uma das coisas que me emnervava no windows, eu podia facilmente encontrar 10x a mesma .dll na pasta dos programas.
    Ou por exemplo o android, cada App do facebook inclui mb's de .so que são repetidas por todas elas, FB, Messenger, Pages, etc...

    Sei que por vezes é complicado, e acontece um "dependency hell"
    Mas no geral funciona bem.

    Agora imaginem cada programa que corre usando as bibliotecas do Qt ter a sua propria distribuição de .so? Repetidas no sistema. Breve precisamos de um disco de 1TB só para programas... Os 40Gb da partição raiz do meu SSD até ver chegam muito bem...

    ResponderEliminar
    Respostas
    1. Como em tudo, há vantagens e desvantagens. A vantagem dos "containers" é que se garante que tudo funciona como é devido, sem depender de mais nada; sendo irrelevante se depois outros programas precisam doutras versões das dependências, etc. etc.
      Sim, ocupa mais espaço, mas o espaço em disco é algo que hoje em dia se pode considerar "económico" e para muitas coisas compensará gastar mais espaço e ganhar na conveniência dos snaps - especialmente para que, como eu, já para evitar as "contaminações" de programas que não sabemos que se comportam, praticamente crio uma máquina virtual com base numa máq. virtual base, para cada um deles.

      Eliminar