Três perguntas de alguém que chegou no mundo Linux a 1 mês. Quem puder me ajudar a entender, série bastante grato:
O empacotamento serve pra você instalar um programa em um único pacote (algo como .exe) que sirva em qualquer distribuição, é isso?
Pelo que percebi nesse um mês de Linux, os empacotamentos principais são .deb e .rpm. Não seria mais fácil haver um repositório com esses 2 pacotes dos programas, uma vez que eles são os melhores para seus sistemas?
Qual a diferença entre flatpak e snaps? Dizem que o Flatpak é melhor. Porquê? E não seria melhor para a Canonical simplesmente incorporar e apoiar o Flatpak? Pra que toda essa dor de cabeça?
Hey! Vamos lá para minha tentativa de responder essas perguntas:
Mais ou menos isso. O pacote, tanto .deb quanto .rpm, possui todos os arquivos do programa (o executável, as libs, configurações, traduções, …), tudo já compilado, e um arquivo especial contendo as dependências do pacote, o que exige a instalação de outros pacotes. O que o gerenciador de pacotes faz é extrair esses arquivos para os diretórios corretos, rodar alguns scripts de pré/pós-instalação, e instalar esses pacotes de dependências. A diferença para o .EXE é que o pacote não se “auto-executa”, precisando de um instalador de pacotes para ser instalado, mas a ideia é parecida.
Sim e não. Esses tipos de pacotes foram desenvolvidos logo no início das distros Linux, sem a previsão de alguns problemas de segurança, de múltiplas arquiteturas e/ou diferentes versões do sistema, conflito de versões entre as versões exigidas por um pacote com as existentes no sistema, … Então mesmo sendo os mais comuns e mais integrados ao sistema, não são necessariamente os mais fáceis de se empacotar e os mais seguros.
O caso mais notório atualmente é o do pacote do Chromium, que a Canonical desistiu de empacotar em .deb, porque a cada duas semanas (tempo entre os lançamentos do Chromium) o time de empacotamento tinha que preparar, empacotar e testar os pacotes do Chromium para até 4 versões do sistema (16.04, 18.04, 19.10 e 20.04) para múltiplas arquiteturas, o que consome bastante recursos. Já com o Snap, eles argumentam que só precisam empacotar um vez (um snap) e o mesmo irá funcionar em todas as distros.
Ai é uma pergunta quase impossível de responder, sem um embate bastante técnico. A ideia dos dois é a mesma: Executar os programas em “sand-boxes” (caixas-de-areia), ou seja, em compartimentos isolados do resto do sistema. Cada pacote contém a maior parte das dependências já embutidas no próprio pacote, sem exigir a instalação de muitos outros pacotes (ainda existem dependência, no entanto). Como que cada um faz isso, porém, é bem diferente, mas puramente técnico. Isso aumenta bastante a segurança e praticidade, pois reduz muito o problema de conflitos e dependências, e ainda permite a instalação de múltiplas versões do mesmo programa e até mesmo o backup da versão anterior ao instalar uma nova.
A única grande diferença mais “polêmica” é que o Snap usa soluções fechadas e um único servidor para armazenagem e distribuição dos pacotes, não sendo possível criar outros servidores e nem analisar o existente, e o Flatpak, por outro lado, usa uma infra-estrutura completamente aberta (open-source). O Snap é desenvolvido unicamente pela Canonical, e o Flatpak é desenvolvido pela comunidade. Por isso que algumas distros torcem o nariz para o Snap e aceitam melhor o Flatpak.
Adendo:
No canal Diolinux do YT tem alguns vídeos sobre o tema com mais informações, se você estiver interessado:
Muito obrigado, muito esclarecedor. Vou procurar sobre o tema no canal dele. Foi através dele que conheci esse mundo Linux.
Aliás, torço muito para que o market share dos desktops continue crescendo bastante com Linux e ultrapasse os 5% (7-8% seria demais) e o Linux ganhe atenção dos desenvolvedores de desktop.
Também torço muito para que algumas distros amadureçam e evoluam ainda mais, tornando-se uma ponte para leigos utilizarem Linux com facilidade de uso (o calcanhar de Aquiles do Linux ao meu ver, UX).
Tem esse vídeo aqui também, que é bem detalhado, mas é em inglês e não tem legendas. Qqer coisa dá para ativar as legendas automáticas com tradução, para ter um noção melhor:
Na verdade, a maioria dos usuários do Mint usam espelhos locais ─ pois isso é uma das primeiras coisas que o mintUpdate oferece.
Então, a maior parte das atualizações vêm, digamos, dos servidores da UFPR ─ que hospeda tanto espelhos do Ubuntu quanto do Mint. ─ Pouquíssima coisa vem dos repositórios principais: só algumas atualizações de segurança.
Em nenhum momento o termo “sugamento” foi indireta a vc amigo… deixo isso claro… Mas é que não é de hoje que alguns bajuladores da Cannonical acham a empresa o “Deus” do mundo Linux e procuram passar pano em tudo o que fazem, ou querem justificar atacando outras distros…
Em relação à novela dos Snaps, não uso esse formato… mas me confirmem que usa, pq pelo que andei lendo, o Clem resolveu “destravar” o processo de instalação do Snapd, pelo fato que existem usuários que usam o formato, e num possível upgrade do 19.3 p/ o 20 poderia quebrar ou algo deixar de funcionar no sistema de alguém…
Enfim… mais alguma dúvida sobre quem se preocupa mais com os usuários ? Pq a Cannonical não quis nem saber quando entregou uma loja de aplicativos bugada s/ opção de escolher os Flatpaks (a não ser instalando a Gnome-Software)
A gente não usa o reporitório “original” (principal), lá na Inglaterra, ou Irlanda, ou EUA, ou etc., pois a velocidade de download pode ficar muito lenta.
A gente usa um “espelho”, situado no Brasil ─ nos servidores da USP, da UFSCar, da UnB, da UFAM, da UFPR, ou da Globo etc. ─ Uns são pagos pelos nossos impostos, outros são de empresas privadas que esperam tirar disso algum lucro.
O que vem dos repositórios “principais”, é mínimo.
Esse é o meu raciocínio. A grande maioria dos usuários do Mint ao redor do mundo não estão “dando despesa” aos servidores da Canonical. Pelo contrário. Se fôssemos fazer essa conta na ponta do lápis, a Canonical é que deveria pagar às universidades e outras instituições ao redor do mundo.
Fique tranquilo, sei que não era indireta.
É que eu tinha concordado (em parte) com essa observação do Dionatan. Mas depois, ao fazer uma atualização, lembrei que baixamos pouquíssima coisa diretamente da Canonical.
Logo que a gente abre o mintUpdate pela primeira vez, ele já propõe mudar para um espelho mais próximo.
Fiquei na dúvida pq além de ler algo do tipo, eu até vi um review da versão final e o cara instalou o snapd s/ precisar deletar arquivo algum… como só tenho ele instalado em máquinas reais, ainda não fiz o teste, mas se está nas notas de lançamento…
AppImage sim, na verdade é melhor porque nada sai do executável, snaps e flatpaks tem pelo menos uma dependência, fora AppImages e Orbs os gestores de pacotes não tem absolutamente nada a ver com os .exe
Na verdade não, pacotes .deb e .rpm além de modificar o sistema dependem de versões específicas da GLibC além de cada pacote depender de versões diferentes… enfim um inferno (literalmente é esse o nome dado)
No ponto pacote e forma de execução, os snaps são arquivos comprimidos (squashfs como os AppImages) que são montados durante o boot, além disso a sandbox é diferente do Flatpak mas fora isso não tem nenhuma diferença grande significativa
Os flatpaks são mais rápidos na primeira execução e simulam uma integração visual com o sistema, além disso não obrigam o usuário a atualizar os programas
Não faz muito sentido, o snap tem funções bem interessantes pra quem usa IoT que o Flatpak não tem ou não faz direito, apesar de não ser útil pro desktop rende uma boa (tipo muito boa) grana pra Canonical
Porque vale a pena economicamente, além do mais considerando que só 5 devs/empresas (Endless, Winepak, Nuvola, GNOME e Lirios) distribuem flatpaks de forma pura (com objetos ostree), eu penso que tem algo relacionado a forma como são distribuidos… POSSO estar ERRADO, mas…
Não acho nem um pouco certo a Canonical querer obrigar o uso de snaps no ubuntu.
Essa do Chromium, muito errado, se você usa o apt, você espera que ele baixe pacote em .deb, não em snap, se eu quisesse pacote em snap, usava o sudo snap, eles não conseguem empacotar um chromium em .deb, mas conseguem empacotar mais de 10.000 mil pacotes para 3 versões do Ubuntu, e melhor admitir e falar que fez isso com o Chromium porque queria obrigar todo mundo a usar snap mesmo. E outra, se eu quisesse ser obrigado a algo, ficaria no Windows 10.
O único detalhe é que o Chromium não só precisa ser constantemente atualizado na melhor das situações o Chromium leva 8 horas pra ser compilado some isso a ter que compilar ou outros 10000 pacotes + kernel e vc tem uma empresa torrando dinheiro a toa
Canonical obrigar a usar snap??? Totalmente sem sentido sua afirmação e eu vou mostrar! Uma coisa é a canonical dar preferência a um tipo de pacote, sendo que vc tem a opção de instalar a versão deb se quiser. Quer dizer q seu eu baixar o debian ele vai estar me obrigando a usar .deb já q todos os pacotes dele são deb? sendo q eu quero usar .rpm. Ou seja, dar preferência a um formato não é tirar seu direito de usar outro. N quer usar deb? Escolhe fedora. Se o Ubuntu prefere dar suporte ao chromium usando snap ela tem o direto já q desenvolve o sistema. Mas ela n te impede de baixar o código fonte do chromium e passar 6 dias compilando. O problema é q vcs querem controlar aspectos do sistema sendo que nem ajudam no desenvolvimento do mesmo.
Acho q o Linux mint perde mt tempo com questões bobas, poderiam focar essa energia em melhorar o aspecto visuak do sistema e do site, que vamos combinar é bem feio msm.