O que é uma "AppImage"? Como instalo?

231

Acabei de ler o Meet Etcher, uma elegante ferramenta de gravador de imagem USB de código aberto . Ele fala sobre o download de um AppImage.

Sim, Linux; os pacotes Linux são distribuídos como uma imagem .app para distribuições de 32 e 64 bits e devem ser executados em todas as principais distribuições Linux sem problemas. Atualmente, a equipe não tem planos de fornecer um instalador nativo .deb (ou .rpm).

O que são AppImages? Como eles diferem dos snaps?

DK Bose
fonte
10
Eu acho que a appimagetag pode se tornar útil, então eu a criei. Se não precisarmos ou quisermos mantê-lo, sempre haverá a opção de gravá-lo novamente.
Byte Commander

Respostas:

283

Informação básica

Em relação à instalação

Estou citando a página do projeto appImage aqui:

O AppImages pode ser baixado e executado sem instalação ou necessidade de direitos de root.

Tornando-o executável

Você pode tornar o appImage executável da seguinte maneira:

chmod a+x exampleName.AppImage

Executando

Você pode executar uma appImage da seguinte maneira:

./exampleName.AppImage

informação adicional

Sobre appImage

Você pode encontrar algumas informações gerais sobre o appImage aqui .

Estou citando a página do projeto appImage aqui:

A ideia principal do formato AppImage é um aplicativo = um arquivo. Cada AppImage contém um aplicativo e todos os arquivos que o aplicativo precisa executar. Em outras palavras, cada AppImage não possui dependências além do que está incluído no (s) sistema (s) operacional (is) básico (s) de destino.

Wikipedia adiciona

O AppImage (e os antecessores klik e portablelinuxapps) não instalam software no sentido tradicional (isto é, não coloca arquivos em todo o lugar no sistema).

Ele usa um arquivo por aplicativo. Cada uma é independente: inclui todas as bibliotecas das quais a aplicação depende e que não fazem parte do sistema base. Nesse sentido, é semelhante à "virtualização de aplicativos". Pode-se usar um arquivo AppImage mesmo que não seja um superusuário ou esteja usando um CD ao vivo. Os arquivos AppImage geralmente são mais simples do que compilar e instalar um aplicativo, pois nenhuma instalação ocorreu de fato. O arquivo AppImage é uma imagem compactada que é montada temporariamente para permitir o acesso ao programa, mas não é necessário extrair o programa ou modificar o sistema subjacente.

O README.mddo -projeto AppImageKit oferece muito informações adicionais, como casos de uso , o espaço do problema e objetivos .

Casos de Uso

  • Como usuário, eu quero ir para uma página de download upstream, baixar um aplicativo do autor original e executá-lo no meu sistema desktop Linux, como faria com um aplicativo Windows ou Mac.

  • Como testador, desejo poder obter a versão mais recente de um aplicativo a partir de um servidor de compilação contínua e testá-la no meu sistema, sem precisar compilar e sem ter que me preocupar que eu possa atrapalhar meu sistema.

  • Como autor de aplicativos ou ISV, desejo fornecer pacotes para sistemas de desktop Linux, assim como faço para Windows e OS X, sem a necessidade de inseri-lo em uma distribuição e sem ter que criar bilhões de distribuições diferentes.

Objetivos

  1. Seja simples.

    O AppImage pretende ser um formato muito simples e fácil de entender, criar e gerenciar.

  2. Mantenha a compatibilidade binária.

    AppImage é um formato para distribuição de software binário. O software empacotado como AppImage deve ser o mais binário compatível possível com o maior número possível de sistemas. A necessidade de (re) compilação de software deve ser bastante reduzida.

  3. Seja independente de distribuição.

    Uma AppImage deve ser executada em todos os sistemas operacionais básicos (distribuições) para os quais foi criada (e versões posteriores). Por exemplo, você pode ter como alvo o Ubuntu 9.10, o openSUSE 11.2 e o Fedora 13 (e versões posteriores) ao mesmo tempo, sem precisar criar e manter pacotes separados para cada sistema de destino.

  4. Remova a necessidade de instalação.

    O AppImages contém o aplicativo em um formato que permite que ele seja executado diretamente do arquivo morto, sem precisar ser instalado primeiro. É comparável a um Live CD. Antes dos Live CDs, os sistemas operacionais tinham que ser instalados primeiro antes de poderem ser usados.

  5. Mantenha os aplicativos compactados o tempo todo.

    Como o aplicativo permanece empacotado o tempo todo, nunca é descompactado no disco rígido. O computador descompacta o aplicativo on-the-fly enquanto o acessa. Como a descompressão é mais rápida que a leitura do disco rígido na maioria dos sistemas, isso tem uma vantagem de velocidade, além de economizar espaço. Além disso, o tempo necessário para a instalação é totalmente removido.

  6. Permitir colocar aplicativos em qualquer lugar.

    O AppImages é "relocável", permitindo ao usuário armazená-lo e executá-lo em qualquer local (incluindo CD-ROMs, DVDs, discos removíveis, pen drives).

  7. Tornar os aplicativos somente leitura.

    Como o AppImages é somente leitura por design, o usuário pode ter certeza razoável de que um aplicativo não se modifica durante a operação.

  8. Não requer recompilação.

    O AppImages deve ser possível criar a partir de binários já existentes, sem a necessidade de recompilação. Isso acelera bastante o processo de criação do AppImage, pois nenhum compilador precisa estar envolvido. Isso também permite que terceiros empacotem aplicativos de código fechado como AppImages. (No entanto, pode ser benéfico para os desenvolvedores de aplicativos upstream criar a partir da fonte especificamente com o objetivo de gerar uma AppImage.)

  9. Mantenha o sistema operacional básico intocado.

    Como o AppImages deve ser executado em sistemas simples que não foram especialmente preparados por um administrador, o AppImages pode não exigir nenhuma preparação incomum do sistema operacional básico. Portanto, eles não podem confiar em patches de kernel especiais, módulos de kernel ou em nenhum aplicativo que não seja fornecido com as distribuições de destino por padrão.

  10. Não requer raiz.

    Como o AppImages deve ser executado pelos usuários finais, eles não devem solicitar uma conta administrativa (raiz) para ser instalada ou usada. No entanto, eles podem ser instalados por um administrador (por exemplo, em cenários multiusuários), se assim o desejar.

dufte
fonte
4
Como uma imagem de aplicativo persiste nas configurações entre os lançamentos?
Dan Dascalescu 14/01
1
Você poderia elaborar um pouco sobre o recurso "somente leitura"? Posso salvar as alterações dentro do AppImage? Ou perde-os de perto como o LiveCD?
vstepaniuk
2
@ DanDascalescu: Sua pergunta merece ser elevada a uma pergunta completa no AskUbuntu, não apenas a um comentário. Você vai perguntar isso?
Kurt Pfeifle
@vstepaniuk: Sua pergunta é semelhante à de Dan. Um dos você deve perguntar isso como uma questão "cheia", não apenas em um comentário ...
Kurt Pfeifle
1
@KurtPfeifle: desde que você não quer apenas ir em frente e pedir-lhe a si mesmo ... :)
Dan Dascalescu
22

A idéia básica pode parecer semelhante entre os dois sistemas, mas existem algumas diferenças de design entre snaps e Appimages.

Alguns "grandes" que vêm à minha mente são:

  1. Segurança , em termos de confinamento . Snap executar pacotes em uma caixa de areia e eles não estão autorizados a escapar dele e chegar a outras partes do sistema que eles deveriam não tocar. Essa é uma camada de segurança mais forte que corre paralela ao sistema de permissões. Obviamente, é um pouco frustrante ao lidar com isso no início (e também mais tarde), mas se você pensar sobre isso em termos de administração do sistema, é isso que um administrador deseja para seus usuários.

  2. Segurança. Instalar software retirado da rede é tão seguro quanto andar por aí lambendo postes nas ruas. Às vezes nada acontece, às vezes você tem alguns problemas de saúde muito grandes. Os pacotes Snap têm seus repositórios adequados, que são controlados pela Canonical, como os repositórios Ubuntu comuns. Você pode instalar e instalar .debarquivos a partir de qualquer lugar, mas isso será sua escolha, e não um problema de design.

  3. Instalação. O AppImages deve ser o equivalente aos "executáveis ​​portáteis do Windows". Todas as bibliotecas são independentes e qualquer usuário pode apenas baixar e executar uma delas. Por outro lado, snappacotes são pacotes adequados e precisam ser instalados (como rootou com sudo) através do gerenciador de pacotes apropriado ( snap install tic-tac-toegera um erro: ele precisa sudo!)

  4. Remoção. Para remover um pacote snap, você precisa usar o gerenciador de pacotes snap remove ...com as permissões corretas para fazer isso. Appimages, por outro lado, eles estão apenas "lá". Então, qualquer usuário não quer esse Appimage? Ele apenas remove o arquivo e ele se foi.

Embora eu sugira ser cauteloso ao usar o Appimages, eu pessoalmente uso alguns deles pessoalmente.

Acho-os particularmente úteis no meu sistema de trabalho, onde não tenho rootacesso (apenas o administrador tem), mas preciso da versão mais recente de um software específico que, felizmente, o desenvolvedor forneceu no formulário Appimage.

Eu tenho um pouco de medo de que algum código maligno esteja realmente contido neles, então verifiquei o máximo possível a identidade do editor. Não tenho 100% de certeza de que este software seja benigno, mas fiz tudo o que pude.

dadexix86
fonte
2
Basicamente, todo mundo está tentando implementar o empacotamento de aplicativos OSX no Linux, mas nada chega lá.
OrangeDog
2
Não tenho idéia de como isso funciona :) Com certeza, o Snap e o Appimages não funcionam bem com software com muitas dependências compartilhadas entre muitos outros softwares. Eles estão perfeitamente bem com softwares já independentes ou com poucas dependências, mas o risco é ter muitas cópias da mesma biblioteca que executam a mesma tarefa, como no Windows. Isso deve ser resolvido em pacotes de snap (um software que depende da biblioteca de snap instala essa biblioteca com essa versão, então outro software que precisa da mesma versão de biblioteca pode usá-la, como no sistema usual).
Dadexix86
Os aplicativos OSX (e iOS) funcionam como o AppImage (basta fazer o download de um único arquivo e executar), mas com a segurança do snap na caixa de areia.
OrangeDog
O OSX está tentando se livrar deles e apenas permite instalações de sua loja.
LtWorf
AppImage deve realmente conter a opção para Sand Boxing. Espero que vejamos isso no futuro.
Royi 28/05
20

Antes de executar uma AppImage, é necessário torná-la executável. Este é um recurso de segurança do Linux. Existem duas maneiras principais de tornar um AppImage executável:

1. Usando a GUI

Como tornar um AppImage executável

ou

2. Na linha de comando

chmod a+x Some.Appimage

Agora clique duas vezes no arquivo para executá-lo OU clique com o botão direito do mouse> Executar

probono
fonte
15

Enquanto o snap se concentra apenas no Ubuntu, o AppImage é de distribuição cruzada e também é executado no Fedora, debian, openSUSE, CentOS etc.

O AppImage não precisa de suporte em tempo de execução ou infraestrutura da distribuição Linux e, portanto, é executado em quase todos os lugares. Ele permite que os autores do aplicativo enviem seus softwares diretamente aos usuários do Linux, como fazem o Windows e OS X; sem a Canonical ou qualquer outra pessoa "entre" o autor do software e o usuário final.

Se um aplicativo for fornecido no formato AppImage, o usuário poderá acessar o site do autor original para fazer o download, por exemplo, MuseScore, em https://musescore.org/en/download . Torne o AppImage executável (usando o gerenciador de arquivos ou chmod a+x ./yourAppImage), para que você possa executar o aplicativo clicando duas vezes.

probono
fonte
Então, se eu quiser instalar o Leafpad, clico em "Configurar-me"? O que acontecerá então? E como posso desinstalar uma AppImage? Estou olhando para bintray.com/probono/AppImages, mas não encontrei a resposta. Se você não se importa, pode editar sua resposta para incluir as informações e qualquer outra coisa que você acha que os usuários gostariam de saber.
DK Bose
2
Não tenho certeza se isso seria uma solução para você também - mas o leafpad está disponível nas fontes 16.04 prontas para uso (versão: 0.8.18.1). A versão do leafpad oferecida pelo bintray é 'only' 0.8.17 - portanto, ainda mais antiga.
Dufte 19/05/19
1
É verdade, mas para alguém que quer apenas testar as águas, é, como o site diz, uma coisa do tipo "Olá, Mundo".
DK Bose
Excelente. Depois disso, você pode simplesmente clicar duas vezes. Era disso que eu precisava!
Dawoodjee
5

O AppImages exige que o FUSE seja executado. O sistema de arquivos no espaço do usuário (FUSE) é um sistema que permite que usuários não raiz montem sistemas de arquivos.

Instale o FUSE

Muitas distribuições têm uma configuração funcional do FUSE pronta para uso. No entanto, se não estiver funcionando para você, pode ser necessário instalar e configurar o FUSE manualmente.

Por exemplo, no Ubuntu:

sudo apt-get install fuse
sudo modprobe fuse
sudo usermod -a -G fuse $USER

Por exemplo, no openSUSE:

sudo zypper install fuse

Cair pra trás

Se você não quiser instalar o FUSE, poderá montar ou extrair a AppImage.

Para montar o AppImage e executar o aplicativo, basta executar

sudo mount -o loop Some.AppImage /mnt
/mnt/AppRun

Se isso não funcionar, você pode ter uma AppImage experimental do tipo 2 . Isso exige que você passe -o offset=...para o mountcomando. Execute o AppImage com --appimage-offsetpara descobrir o número correto para o deslocamento.

inscrição
fonte
Depois de escrever a terceira linha ( sudo usermod -a -G fuse) seguida pelo meu nome de usuário, continuo recebendo a usermod: group 'fuse' does not exist... Alguma idéia de por que?
Martin
Oi @ Martin, No Ubuntu para ex. se você estiver tentando executar uma AppImage i686 (32 bits) em um sistema x86_64 (64 bits), receberá esse erro, a menos que as bibliotecas de 32 bits estejam instaladas. Você provavelmente deve especificar o sistema operacional e o aplicativo que você está tentando executar na próxima vez para obter assistência.
Leo
Olá @Leo, foi há muito tempo, mas eu apenas digitei as sudo apt-get install fuse sudo modprobe fuse sudo usermod -a -G fuse $USERlinhas no meu Windows 10 64. A resposta que estou comentando não faz nenhuma especificação 32/64 e não vejo onde devo especificar isso ou por que ...
Martin