removido
(usa Nenhuma)
Enviado em 07/01/2021 - 20:23h
brunojbpereira escreveu:
ricardogroetaers escreveu:
brunojbpereira escreveu: ... o diretório /opt não existe exatamente para organizar as bibliotecas e os arquivos necessários para um software comercial (ou livre mesmo) funcionar sem "contaminar" o resto do sistema?...
Boa pergunta.
O único software, que eu vi, que se instala automaticamente em "/opt" foi o Comodo antivirus.
Os outros, fui eu que coloquei lá manualmente. Ex. Uma compilação estática do ffmpeg.
Perguntei isso porque o Zoom e o Google Chrome são dois softwares que quando instalados, ficam dentro dos seus respectivos diretórios, dentro do diretório /opt e funcionam razoavelmente bem assim. A questão de empacotar tudo o que precisa dentro de um arquivo me pareceu estranha, se já temos exemplos de softwares comerciais que funcionam desse jeito.
Não é somente criar um pacote com tudo dentro. Se você conhece o Flatpak e o Snap sabe muito bem que os pacotes não tem tudo dentro não.
Existem várias questões envolvidas:
1) para que um determinado software funcione é necessário que o sistema satisfaça todas as dependências, e isso requer que as bibliotecas de quais o software depende estejam em versões compatíveis com aquelas esperada pelo software. No Linux é muito comum ter algum pacote tar.gz com binários, mas não há garantia nenhuma que esse binário vai rodar, apenas se o ambiente Linux usado é similar aquele que o desenvolvedor do software usou para criar o programa.
Os Snaps e Flatpaks consertam isso. Não, eles não trazem todas as dependências em um único pacote não, mas eles oferecem a reprodução de um mesmo ambiente Linux em qualquer distribuição. Se você tentar instalar um pacote Snap ou Flatpak que dependem de bibliotecas do Gnome, além do pacote do aplicativo que se deseja instalar também serão instalados os pacotes que possuem as bibliotecas do Gnome e do GTK, bem como outros pacotes que por acaso tal software dependa para executar. Se você instalar outro software que dependa das mesmas bibliotecas, não será necessário instalá-las novamente.
2) considerando a grande quantidade de distribuições existentes e versões diferentes da mesma distribuição (só o Ubuntu tem as seguintes versões sendo suportadas: 18.04, 20.04, 20.10 e a versão de desenvolvimento). Como garantir que um mesmo software rode em todas, ou ao menos na maioria dessas distribuições? O software terá que ser empacotado para cerca de 20 distribuições diferentes + suas versões? Isso não é muito trabalho? Ou vamos fazer como muitos desenvolvedores: só entrega o código fonte e o usuário que compile-o?
Novamente os Snaps e Flatpaks consertam isso, quando entregam um ambiente idêntico em qualquer distribuição e em qualquer versão suportada, fazendo com que o software precise ser empacotado uma única vez.
Para quem reclama da velocidade dos Flatpaks e Snaps: eu fiz um teste no meu computador. Instalei o Chromium através de um pacote .DEB, Flatpak e Snap. Após isso, fiz o arranque de cada um deles, a velocidade dos pacotes Flatpak e Snap foram bem similares (snap levou uma pequena vantagem), mas o Chromium instalado por pacote .DEB foi realmente mais rápido (iniciou 4 segundos mais rápido que o Chromium rodando através do Snap). Entretanto, após fechar o Chromium, executando-o novamente tive uma grata surpresa: o Chromium em Snap reexecutou quase instantaneamente (entre 3 e 4 segundos), o Chromium em Flatpak demorou um pouco mais (se não me engano, uns 5 segundos), mas o Chromium em pacote .DEB demorou 7 segundos para reexecutar (quase o dobro do Snap).
Há distribuições que adotam o Flatpak por padrão, que não há nenhuma outra forma de instalar aplicativos que não seja o Flatpak. É o exemplo do Endless OS, Releax e do Fedora Silverblue. E pasmem, nenhuma dessas distribuições é mais lenta que seus pares tradicionais.
Outra vantagem dos Flatpak e Snaps é a possibilidade de controlar os privilégios de softwares, tal como no Android, e rodá-los em sandbox. Junto com o Wayland há maior segurança.