Co to jest „AppImage”? Jak to zainstalować?

231

Właśnie przeczytałem Meet Etcher, stylowe narzędzie do zapisywania obrazów na USB . Mówi o pobieraniu AppImage.

Tak, Linux; pakiety Linux są dystrybuowane jako .appimage dla dystrybucji 32-bitowych i 64-bitowych i powinny działać bez problemu we wszystkich głównych dystrybucjach Linuksa. Zespół obecnie nie planuje udostępnienia natywnego instalatora .deb (lub .rpm).

Co to są AppImages? Czym różnią się od zatrzasków?

DK Bose
źródło
10
Myślę, że appimagetag może się przydać, więc właśnie go utworzyłem. W przypadku, gdy nie będziemy potrzebować ani nie będziemy chcieli go zachować, zawsze istnieje możliwość ponownego spalenia go.
Bajt Dowódca

Odpowiedzi:

283

Podstawowe informacje

Jeśli chodzi o instalację

Cytuję tutaj stronę projektu appImage:

AppImages można pobrać i uruchomić bez instalacji lub bez uprawnień administratora.

Dzięki temu jest wykonywalny

Możesz ustawić appImage jako wykonywalny w następujący sposób:

chmod a+x exampleName.AppImage

Wykonywanie tego

Możesz uruchomić appImage w następujący sposób:

./exampleName.AppImage

Dodatkowe informacje

Informacje o appImage

Można znaleźć kilka ogólnych informacji o appImage tutaj .

Cytuję tutaj stronę projektu appImage:

Kluczową ideą formatu AppImage jest jedna aplikacja = jeden plik. Każdy AppImage zawiera aplikację i wszystkie pliki, które aplikacja musi uruchomić. Innymi słowy, każdy AppImage nie ma żadnych zależności innych niż zawarte w docelowym podstawowym systemie operacyjnym.

Wikipedia dodaje

AppImage (i poprzednicy klik i portablelinuxapps) nie instalują oprogramowania w tradycyjnym znaczeniu (tzn. Nie umieszczają plików w całym systemie).

Wykorzystuje jeden plik na aplikację. Każda z nich jest samodzielna: zawiera wszystkie biblioteki, od których zależy aplikacja i które nie są częścią systemu podstawowego. Pod tym względem jest podobny do „wirtualizacji aplikacji”. Można użyć pliku AppImage, nawet jeśli nie jest on superużytkownikiem lub używa płyty CD na żywo. Pliki AppImage są często prostsze niż kompilowanie i instalowanie aplikacji, ponieważ w rzeczywistości nie odbyła się żadna instalacja. Plik AppImage to skompresowany obraz, który jest tymczasowo montowany w celu umożliwienia dostępu do programu, ale bez konieczności rozpakowywania programu ani modyfikowania systemu.

README.mdZ AppImageKit projekcie oferuje wiele dodatkowych informacji takich jak przypadki użycia , przestrzeni problemu i celów .

Przypadków użycia

  • Jako użytkownik chcę przejść do strony pobierania, pobrać aplikację od oryginalnego autora i uruchomić ją na moim systemie Linux, tak jak zrobiłbym to z aplikacją Windows lub Mac.

  • Jako tester chcę mieć możliwość pobierania najnowszej, najnowocześniejszej wersji aplikacji z serwera z ciągłą kompilacją i testowania jej w moim systemie, bez potrzeby kompilacji i bez obawy, że mogę zepsuć mój system.

  • Jako autor aplikacji lub niezależny dostawca oprogramowania chcę dostarczać pakiety dla komputerów stacjonarnych z systemem Linux, tak jak robię to dla systemów Windows i OS X, bez potrzeby wprowadzania ich do dystrybucji i bez konieczności tworzenia miliardów różnych dystrybucji.

Cele

  1. Bądź prosty.

    AppImage ma być bardzo prostym formatem, który jest łatwy do zrozumienia, tworzenia i zarządzania.

  2. Zachowaj zgodność binarną.

    AppImage to format do dystrybucji oprogramowania binarnego. Oprogramowanie spakowane jako AppImage ma być jak najbardziej kompatybilne binarnie z jak największą liczbą systemów. Konieczność (ponownej) kompilacji oprogramowania powinna zostać znacznie zmniejszona.

  3. Bądź niezależny od dystrybucji.

    AppImage powinien działać na wszystkich podstawowych systemach operacyjnych (dystrybucjach), dla których został stworzony (i późniejszych wersjach). Na przykład możesz jednocześnie atakować Ubuntu 9.10, openSUSE 11.2 i Fedorę 13 (i nowsze wersje), bez konieczności tworzenia i utrzymywania osobnych pakietów dla każdego systemu docelowego.

  4. Usuń potrzebę instalacji.

    AppImages zawiera aplikację w formacie, który umożliwia jej uruchomienie bezpośrednio z archiwum, bez konieczności wcześniejszej instalacji. Jest to porównywalne z Live CD. Przed Live CD, systemy operacyjne musiały być najpierw zainstalowane, zanim będą mogły być używane.

  5. Zachowaj kompresję aplikacji przez cały czas.

    Ponieważ aplikacja pozostaje cały czas w pakiecie, nigdy nie jest rozpakowywana na dysku twardym. Komputer rozpakowuje aplikację w locie podczas uzyskiwania do niej dostępu. Ponieważ dekompresja jest szybsza niż odczyt z dysku twardego w większości systemów, ma to dodatkową zaletę prędkości, oprócz oszczędności miejsca. Czas potrzebny na instalację jest całkowicie usunięty.

  6. Pozwól na umieszczanie aplikacji w dowolnym miejscu.

    AppImages są „relokowalne”, dzięki czemu użytkownik może je przechowywać i uruchamiać z dowolnego miejsca (w tym CD-ROM, DVD, dyski wymienne, pamięci USB).

  7. Ustaw aplikacje tylko do odczytu.

    Ponieważ AppImages są projektowane tylko do odczytu, użytkownik może mieć pewność, że aplikacja nie zmodyfikuje się podczas działania.

  8. Nie wymaga ponownej kompilacji.

    AppImages musi być możliwe do utworzenia z już istniejących plików binarnych, bez potrzeby ponownej kompilacji. To znacznie przyspiesza proces tworzenia AppImage, ponieważ nie wymaga udziału kompilatora. Pozwala to również stronom trzecim na pakowanie aplikacji o zamkniętym źródle jako AppImages. (Niemniej jednak może być korzystne dla twórców aplikacji, aby budowali ze źródła specjalnie w celu wygenerowania AppImage).

  9. Nie zmieniaj podstawowego systemu operacyjnego.

    Ponieważ AppImages są przeznaczone do działania na zwykłych systemach, które nie zostały specjalnie przygotowane przez administratora, AppImages może nie wymagać żadnego niezwykłego przygotowania podstawowego systemu operacyjnego. Dlatego nie mogą polegać na specjalnych łatach jądra, modułach jądra lub aplikacjach, które domyślnie nie są dostarczane z docelowymi dystrybucjami.

  10. Nie wymaga rootowania.

    Ponieważ AppImages są przeznaczone do uruchamiania przez użytkowników końcowych, nie powinni oni wymagać konta administracyjnego (root) do zainstalowania lub używania. Mogą one jednak zostać zainstalowane przez administratora (np. W scenariuszach dla wielu użytkowników), jeśli jest to pożądane.

dufte
źródło
4
W jaki sposób appimage zachowuje ustawienia między uruchomieniami?
Dan Dascalescu
1
Czy mógłbyś rozwinąć nieco funkcję „tylko do odczytu”? Czy mogę zapisać zmiany w AppImage? A może traci je blisko jak LiveCD?
vstepaniuk
2
@DanDascalescu: Twoje pytanie zasługuje na postawienie pełnego pytania na AskUbuntu, a nie tylko komentarza. Zapytasz
Kurt Pfeifle
@vstepaniuk: Twoje pytanie jest podobne do pytania Dana. Jeden z was powinien zadać to pytanie jako „pełne”, nie tylko w komentarzu ...
Kurt Pfeifle
1
@KurtPfeifle: skoro nie chciałeś po prostu iść dalej i sam o to zapytać ... :)
Dan Dascalescu
22

Podstawowa idea może wyglądać podobnie między dwoma systemami, ale istnieją pewne różnice projektowe między snapami a Appimages.

Niektóre „duże”, które przychodzą mi do głowy:

  1. Bezpieczeństwo pod względem zamknięcia . Pakiety Snap działają w piaskownicy i nie mogą z niego uciec i dotrzeć do innych części systemu, których nie powinny dotykać. Jest to silniejsza warstwa bezpieczeństwa, która działa równolegle do systemu uprawnień. Oczywiście jest to trochę frustrujące, gdy zajmujemy się tym na początku (a także później), ale jeśli myślisz o tym pod względem administrowania systemem, to jest to, czego administrator chce dla swoich użytkowników.

  2. Bezpieczeństwo. Instalowanie oprogramowania pobranego z sieci jest tak samo bezpieczne, jak obchodzenie się z lizaniem kijów na ulicach. Czasami nic się nie dzieje, czasami masz bardzo duże problemy zdrowotne. Pakiety Snap mają swoje właściwe repozytoria, które są kontrolowane przez Canonical, podobnie jak zwykłe standardowe repozytoria Ubuntu. Możesz kontynuować i instalować .debpliki z dowolnego miejsca, ale to będzie twój wybór, a nie problem projektowy.

  3. Instalacja. AppImages mają być odpowiednikiem „przenośnych plików wykonywalnych systemu Windows”. Wszystkie biblioteki są samodzielne i każdy użytkownik może po prostu pobrać i uruchomić jedną z nich. Z drugiej strony, snappakiety są poprawnymi pakietami i należy je zainstalować (jako rootlub z sudo) za pomocą menedżera pakietów aplikacji ( snap install tic-tac-toegeneruje błąd: potrzebuje sudo!)

  4. Usuwanie. Aby usunąć pakiet przystawki, musisz użyć menedżera pakietów snap remove ...z odpowiednimi uprawnieniami. Z drugiej strony Appimages są po prostu „tam”. Więc każdy użytkownik nie chce tej aplikacji? On / ona po prostu usuwa plik i go nie ma.

Chociaż zdecydowanie zalecam ostrożność podczas korzystania z Appimages, osobiście korzystam z niektórych z nich.

Uważam je za szczególnie przydatne w moim systemie pracy, do którego nie mam rootdostępu (tylko administrator to ma), ale potrzebuję najnowszej wersji konkretnego oprogramowania, które na szczęście deweloper dostarczył w formie Appimage.

Trochę się boję, że rzeczywiście zawiera w sobie jakiś złośliwy kod, więc sprawdziłem w jak największym stopniu tożsamość wydawcy. Nie jestem w 100% pewien, że to oprogramowanie jest łagodne, ale zrobiłem wszystko, co mogłem.

dadexix86
źródło
2
Zasadniczo wszyscy próbują zaimplementować pakiet aplikacji OSX na Linuksie, ale nic tam nie dociera.
OrangeDog
2
Nie mam pojęcia, jak to działa :) Na pewno snap i Appimages nie działają dobrze z oprogramowaniem z wieloma zależnościami współdzielonymi przez wiele innych programów. Doskonale sobie radzą z już samodzielnym oprogramowaniem lub z kilkoma zależnościami, ale istnieje ryzyko, że wiele kopii tej samej biblioteki wykona to samo zadanie, jak w systemie Windows. Powinno to zostać rozwiązane w pakietach Snap (oprogramowanie, które zależy od biblioteki Snap, instaluje tę bibliotekę z tą wersją, wtedy inne oprogramowanie, które potrzebuje tej samej wersji biblioteki, może z niej korzystać, jak w zwykłym systemie).
dadexix86
Aplikacje OSX (i iOS) działają jak AppImage (wystarczy pobrać pojedynczy plik i uruchomić), ale z zabezpieczeniem piaskownicy.
OrangeDog
OSX próbuje się ich pozbyć i zezwala tylko na instalacje ze swojego sklepu.
LtWorf,
AppImage powinien rzeczywiście zawierać opcję Sand Boxing. Mamy nadzieję, że zobaczymy to w przyszłości.
Royi
20

Przed uruchomieniem AppImage musisz uczynić go wykonywalnym. Jest to funkcja bezpieczeństwa systemu Linux. Istnieją dwa główne sposoby na wykonanie pliku AppImage:

1. Korzystanie z GUI

Jak zrobić plik wykonywalny AppImage

lub

2. W wierszu poleceń

chmod a+x Some.Appimage

Teraz kliknij dwukrotnie plik, aby go uruchomić LUB Kliknij prawym przyciskiem myszy> Uruchom

probono
źródło
15

Podczas gdy snap koncentruje się tylko na Ubuntu, AppImage jest dystrybucją krzyżową i działa również na Fedorze, debian, openSUSE, CentOS itp.

AppImage nie potrzebuje środowiska wykonawczego ani wsparcia infrastruktury z dystrybucji Linuksa, dlatego działa prawie wszędzie. Umożliwia autorom aplikacji wysyłanie oprogramowania bezpośrednio do użytkowników systemu Linux, podobnie jak w przypadku systemów Windows i OS X; bez Canonical lub kogokolwiek innego „pomiędzy” autorem oprogramowania a użytkownikiem końcowym.

Jeśli aplikacja jest dostarczana w formacie AppImage, użytkownik może przejść do oryginalnej witryny autora, aby ją pobrać, np. MuseScore z https://musescore.org/en/download . Uczyń AppImage wykonywalnym (albo za pomocą menedżera plików lub chmod a+x ./yourAppImage), a następnie możesz uruchomić aplikację, klikając dwukrotnie.

probono
źródło
Więc jeśli chcę zainstalować Leafpad, czy klikam „Ustaw mnie”? Co się wtedy stanie? Jak mogę odinstalować AppImage? Patrzę na bintray.com/probono/AppImages, ale nie znalazłem odpowiedzi. Jeśli nie masz nic przeciwko, możesz edytować swoją odpowiedź, aby zawierała informacje, a także wszelkie inne informacje, które użytkownicy mogą chcieć wiedzieć.
DK Bose
2
Nie jestem pewien, czy byłoby to dla Ciebie rozwiązanie - ale leafpad jest dostępny w źródłach 16.04 od razu po wyjęciu z pudełka (wersja: 0.8.18.1). Wersja leafpad oferowana przez bintray jest „tylko” 0.8.17 - więc jeszcze starsza.
dufte
1
To prawda, ale dla kogoś, kto chce tylko przetestować wody, jest to, jak mówi strona, rodzaj „Witaj, świecie”.
DK Bose
Doskonały. Następnie możesz po prostu dwukrotnie kliknąć. Właśnie tego potrzebowałem!
Dawoodjee
5

AppImages wymaga FUSE do uruchomienia. System plików w przestrzeni użytkownika (FUSE) to system, który pozwala użytkownikom innym niż root montować systemy plików.

Zainstaluj BEZPIECZNIK

Wiele dystrybucji ma działającą konfigurację BEZPIECZNIKA po wyjęciu z pudełka. Jeśli jednak to nie działa, konieczne może być ręczne zainstalowanie i skonfigurowanie BEZPIECZNIKA.

Na przykład w systemie Ubuntu:

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

Na przykład w openSUSE:

sudo zypper install fuse

Fallback

Jeśli nie chcesz instalować BEZPIECZNIKA, możesz zamontować lub wyodrębnić AppImage.

Aby zamontować AppImage i uruchomić aplikację, po prostu uruchom

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

Jeśli to nie zadziała, być może masz eksperymentalny typ 2 AppImage . Wymagają one przejścia -o offset=...do mountpolecenia. Uruchom AppImage z, --appimage-offsetaby znaleźć prawidłową liczbę dla przesunięcia.

insygnia
źródło
Po napisaniu trzeciej linii ( sudo usermod -a -G fuse), po której następuje nazwa użytkownika, ciągle pojawia się usermod: group 'fuse' does not exist... Wiesz, dlaczego?
Martin
Cześć @ Martin, w Ubuntu np. jeśli próbujesz uruchomić aplikację i686 (32-bitową) AppImage w systemie x86_64 (64-bitowym), otrzymasz ten błąd, chyba że masz zainstalowane biblioteki 32-bitowe. Prawdopodobnie powinieneś określić system operacyjny i aplikację, którą próbujesz uruchomić następnym razem, aby uzyskać pomoc.
Lew
Cześć @Leo, to było dawno temu, ale właśnie wprowadziłem sudo apt-get install fuse sudo modprobe fuse sudo usermod -a -G fuse $USERwiersze na moim Windows 10 64. Odpowiedź, którą komentuję, nie zawiera specyfikacji 32/64 i nie widzę, gdzie powinienem to określić lub dlaczego ...
Martin