Что такое «AppImage»? Как мне это установить?


232

Я только что прочитал Meet Etcher, стильный USB-инструмент для записи изображений с открытым исходным кодом . Это говорит о загрузке AppImage.

Да, линукс; пакеты Linux распространяются как .appimage для 32-битных и 64-битных дистрибутивов и должны работать во всех основных дистрибутивах Linux без каких-либо проблем. В настоящее время команда не планирует предоставлять собственный установщик .deb (или .rpm).

Что такое AppImages? Чем они отличаются от снимков?


10
Я думаю, что appimageтег может стать полезным, поэтому я просто создал его. В случае, если мы не будем нуждаться в этом или не захотим его сохранить, всегда будет возможность снова сжечь его.
Byte Commander

Ответы:


283

Основная информация

По поводу установки

Я цитирую страницу проекта appImage здесь:

AppImages можно загружать и запускать без установки или без необходимости получения прав root.

Делаем его исполняемым

Вы можете сделать appImage исполняемым следующим образом:

chmod a+x exampleName.AppImage

Выполнение этого

Вы можете выполнить appImage следующим образом:

./exampleName.AppImage

Дополнительная информация

О приложенииImage

Вы можете найти некоторые общие сведения о appImage здесь .

Я цитирую страницу проекта appImage здесь:

Основная идея формата AppImage - одно приложение = один файл. Каждый AppImage содержит приложение и все файлы, необходимые для запуска приложения. Другими словами, каждый AppImage не имеет никаких зависимостей, кроме того, что включено в целевую базовую операционную систему (ы).

Википедия добавляет

AppImage (и его предшественники klik и portablelinuxapps) не устанавливают программное обеспечение в традиционном смысле (то есть не размещают файлы повсюду в системе).

Он использует один файл на приложение. Каждая из них является автономной: она включает в себя все библиотеки, от которых зависит приложение, и которые не являются частью базовой системы. В этом отношении он похож на «виртуализацию приложений». Можно использовать файл AppImage, даже если они не являются суперпользователем или используют live CD. Файлы AppImage часто проще, чем компилировать и устанавливать приложение, так как фактически никакой установки не было. Файл AppImage представляет собой сжатый образ, который временно монтируется для обеспечения доступа к программе, но не требует извлечения программы или изменения базовой системы.

README.mdИз AppImageKit-проект предлагает много дополнительную информацию , как Прецеденты , проблема пространства и целей .

Сценарии использования

  • Как пользователь, я хочу перейти на верхнюю загрузочную страницу, загрузить приложение от первоначального автора и запустить его на своей настольной системе Linux, как если бы я делал это с приложением Windows или Mac.

  • Как тестировщик, я хочу иметь возможность получать новейшую версию приложения с сервера непрерывной сборки и тестировать его в моей системе, без необходимости компилировать и не беспокоиться о том, что я могу испортить свою систему.

  • Как автор приложения или независимый разработчик ПО, я хочу предоставлять пакеты для настольных систем Linux точно так же, как я делаю это для Windows и OS X, без необходимости помещать их «в» дистрибутив и без необходимости создавать для миллиардов различных дистрибутивов.

Цели

  1. Будь простым.

    AppImage предназначен для очень простого формата, который легко понять, создать и управлять.

  2. Поддерживать бинарную совместимость.

    AppImage - это формат для двоичного распространения программного обеспечения. Программное обеспечение, упакованное как AppImage, должно быть как можно более совместимым с бинарным приложением с максимально возможным количеством систем. Необходимость (пере) компиляции программного обеспечения должна быть значительно снижена.

  3. Быть независимым от распределения.

    AppImage должен работать во всех базовых операционных системах (дистрибутивах), для которых он был создан (и более поздние версии). Например, вы можете одновременно использовать Ubuntu 9.10, openSUSE 11.2 и Fedora 13 (и более поздние версии), не создавая и не поддерживая отдельные пакеты для каждой целевой системы.

  4. Уберите необходимость установки.

    AppImages содержит приложение в формате, который позволяет запускать его непосредственно из архива без предварительной установки. Это сравнимо с Live CD. Перед Live CD, операционные системы должны были быть установлены в первую очередь, прежде чем их можно было использовать.

  5. Держите приложения сжатыми все время.

    Поскольку приложение постоянно упаковано, оно никогда не распаковывается на жесткий диск. Компьютер распаковывает приложение на лету при доступе к нему. Поскольку в большинстве систем распаковка выполняется быстрее, чем чтение с жесткого диска, это дает преимущество в скорости помимо экономии места. Также время, необходимое для установки, полностью исключено.

  6. Разрешить размещать приложения в любом месте.

    AppImages являются «перемещаемыми», что позволяет пользователю хранить и выполнять их из любого места (включая CD-ROM, DVD, съемные диски, USB-флешки).

  7. Сделать приложения только для чтения.

    Поскольку AppImages предназначены только для чтения, пользователь может быть уверен, что приложение не изменяет себя во время работы.

  8. Не требует перекомпиляции.

    AppImages должна быть в состоянии создать из уже существующих двоичных файлов, без необходимости перекомпиляции. Это значительно ускоряет процесс создания AppImage, поскольку не требуется задействовать компилятор. Это также позволяет третьим сторонам упаковывать приложения с закрытым исходным кодом как AppImages. (Тем не менее, для разработчиков вышестоящих приложений может быть полезно создавать исходные тексты специально для генерации AppImage.)

  9. Держите базовую операционную систему нетронутой.

    Поскольку AppImages предназначен для работы на простых системах, которые не были специально подготовлены администратором, AppImages может не требовать какой-либо необычной подготовки базовой операционной системы. Следовательно, они не могут полагаться на специальные исправления ядра, модули ядра или любые приложения, которые не поставляются с целевыми дистрибутивами по умолчанию.

  10. Не требует рут.

    Поскольку AppImages предназначены для запуска конечными пользователями, они не должны запрашивать административную учетную запись (root) для установки или использования. Однако они могут быть установлены администратором (например, в многопользовательских сценариях), если это необходимо.


4
Как приложение сохраняет настройки между запусками?
Дан Даскалеску

1
Не могли бы вы рассказать немного о функции «только для чтения»? Могу ли я сохранить изменения внутри AppImage? Или он теряет их при закрытии, как LiveCD?
встепанюк

2
@DanDascalescu: Ваш вопрос заслуживает того, чтобы перейти к полному вопросу о AskUbuntu, а не просто к комментарию. Вы спросите это?
Курт Пфайфл

@vstepaniuk: Ваш вопрос похож на вопрос Дэна. Один из вас должен задать его как «полный» вопрос, а не просто как комментарий ...
Курт Пфайфл,

1
@KurtPfeifle: так как вы не хотели просто идти вперед и спросить себя ... :)
Дэн Даскалеску

22

Основная идея может выглядеть одинаково между двумя системами, но есть некоторые конструктивные различия между снимками и приложениями.

Некоторые "большие", которые приходят мне в голову:

  1. Безопасность , с точки зрения содержания . Пакеты Snap запускаются в песочнице, и им не разрешается выходить из нее и достигать других частей системы, к которым они не должны прикасаться. Это более сильный уровень безопасности, который работает параллельно с системой разрешений. Очевидно, это немного расстраивает, когда имеешь дело с этим в начале (а также позже), но если вы думаете об этом с точки зрения системного администрирования, это то, что администратор хочет для своих пользователей.

  2. Безопасность. Установка программного обеспечения, взятого из сети, так же безопасна, как и вылизывание столбов на улицах. Иногда ничего не происходит, иногда возникают очень серьезные проблемы со здоровьем. Пакеты Snap имеют свои собственные репозитории, которые контролируются Canonical, как и обычные стандартные репозитории Ubuntu. Вы можете продолжать и устанавливать .debфайлы со всего мира, но это будет ваш выбор, а не проблема дизайна.

  3. Монтаж. Предполагается, что AppImages является эквивалентом «переносимых исполняемых файлов Windows». Все библиотеки являются автономными, и любой пользователь может просто загрузить и выполнить одну из них. С другой стороны, snapпакеты являются правильными пакетами, и их нужно устанавливать (как rootили с sudoпомощью) через менеджер пакетов подходящего типа ( snap install tic-tac-toeвыдает ошибку: это необходимо sudo!)

  4. Удаление. Чтобы удалить пакет моментальных снимков, вам нужно использовать менеджер пакетов snap remove ...с соответствующими правами для этого. Образы, с другой стороны, они просто "там". Таким образом, любой пользователь не хочет, что Appimage? Он / она просто удаляет файл, и он ушел.

Хотя я настоятельно рекомендую соблюдать осторожность при использовании Appimages, некоторые из них я лично использую сам.

Я считаю их особенно полезными в моей рабочей системе, где у меня нет rootдоступа (это имеет только администратор), но мне нужна последняя версия определенного программного обеспечения, которую, к счастью, разработчик предоставил в форме Appimage.

Я немного боюсь, что в них действительно содержится какой-то вредоносный код, поэтому я проверил, насколько это возможно, личность издателя. Я не уверен на 100%, что это программное обеспечение является доброкачественным, но я сделал все, что мог.


2
В принципе, все пытаются внедрить упаковку приложений OSX в Linux, но ничего не получается.
OrangeDog

2
Я понятия не имею, как это работает :) Наверняка оснастка и Appimages плохо работают с программным обеспечением со многими зависимостями, разделяемыми между многими другими программами. Они отлично подходят для уже автономного программного обеспечения или с небольшим количеством зависимостей, но есть риск, что многие копии одной и той же библиотеки будут выполнять одну и ту же задачу, как в Windows. Это должно быть решено в пакетах моментальных снимков (программное обеспечение, которое зависит от библиотеки моментальных снимков, устанавливает эту библиотеку с этой версией, затем другое программное обеспечение, для которого требуется та же версия библиотеки, может использовать ее, как в обычной системе).
dadexix86

Приложения OSX (и iOS) работают так же, как AppImage (просто скачайте один файл и запустите), но с изолированной изолированной защитой.
OrangeDog

OSX пытается избавиться от них и разрешить установку только из своего магазина.
LtWorf

AppImage действительно должен содержать опцию для Sand Boxing. Надеюсь, мы увидим это в будущем.
Рой

20

Прежде чем вы сможете запустить AppImage, вы должны сделать его исполняемым. Это функция безопасности Linux. Существует два основных способа сделать исполняемый файл AppImage:

1. Использование графического интерфейса

Как сделать исполняемый файл AppImage

или же

2. В командной строке

chmod a+x Some.Appimage

Теперь дважды щелкните файл, чтобы запустить его ИЛИ щелкните правой кнопкой мыши> Выполнить


15

В то время как Snap фокусируется только на Ubuntu, AppImage является кросс-дистрибутивным, а также работает на Fedora, Debian, OpenSUSE, CentOS и т. Д.

AppImage не требует поддержки времени выполнения или инфраструктуры из дистрибутива Linux и поэтому работает почти везде. Это позволяет авторам приложений поставлять свое программное обеспечение непосредственно пользователям Linux, как это делается для Windows и OS X; без Canonical или кого-либо еще «между» автором программного обеспечения и конечным пользователем.

Если приложение предоставляется в формате AppImage, то пользователь может перейти на веб-сайт оригинального автора, чтобы загрузить его, например MuseScore с https://musescore.org/en/download . Сделайте AppImage исполняемым (с помощью вашего файлового менеджера или chmod a+x ./yourAppImage), после чего вы сможете запустить приложение, просто дважды щелкнув мышью.


Итак, если я хочу установить Leafpad, я нажимаю «Настроить меня»? Что будет потом? И как я могу удалить AppImage? Я смотрю на bintray.com/probono/AppImages, но не нашел ответа. Если вы не возражаете, вы можете отредактировать свой ответ, включив в него информацию, а также все, что, по вашему мнению, пользователи хотели бы узнать.
ДК Бозе

2
Не уверен, что это будет решением для вас, но листовка доступна в источниках 16.04 из коробки (версия: 0.8.18.1). Версия для планшетов, предлагаемая bintray, «только» 0.8.17 - так что даже старше.
dufte

1
Это правда, но для тех, кто просто хочет испытать воду, это, как говорит сайт, что-то вроде «Hello, World».
ДК Бозе

Отлично. После этого вы можете просто дважды щелкнуть. Вот что мне нужно!
Дауджи Джи

5

AppImages требуют FUSE для запуска. Файловая система в пользовательском пространстве (FUSE) - это система, которая позволяет пользователям без полномочий root монтировать файловые системы.

Установить FUSE

Многие дистрибутивы имеют готовую настройку FUSE из коробки. Однако, если это не работает для вас, вам может потребоваться установить и настроить FUSE вручную.

Например, в Ubuntu:

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

Например, на openSUSE:

sudo zypper install fuse

Отступать

Если вы не хотите устанавливать FUSE, вы можете либо смонтировать, либо извлечь AppImage.

Чтобы смонтировать AppImage и запустить приложение, просто запустите

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

Если это не сработает, у вас может быть экспериментальный тип 2 AppImage . Это требует от вас, чтобы перейти -o offset=...к mountкоманде. Запустите AppImage, --appimage-offsetчтобы узнать правильный номер смещения.


После написания 3-й строки ( sudo usermod -a -G fuse) и моего имени пользователя я продолжаю получать usermod: group 'fuse' does not exist... Есть идеи, почему?
Мартин

Привет @Martin, в Ubuntu для бывших. если вы пытаетесь запустить i686 (32-битный) AppImage в x86_64 (64-битной) системе, вы получите эту ошибку, если у вас не установлены 32-битные библиотеки. Вам, вероятно, следует указать ОС и приложение, которое вы пытаетесь запустить в следующий раз для получения помощи.
Лев

Привет, @Leo, это было давно, но я только что ввел sudo apt-get install fuse sudo modprobe fuse sudo usermod -a -G fuse $USERстроки на своем Windows 10 64. Я комментирую ответ, который не дает никакой спецификации 32/64, и я не вижу, где я должен указать это или почему ...
Мартин

1

Следуйте инструкциям ниже:

  • Щелкните правой кнопкой мыши на AppImage
  • Нажмите на свойства
  • Нажмите на разрешения
  • Затем нажмите Разрешить выполнение файла как программы

Использование терминала:

chmod u+x <appimage>

Вы можете прочитать больше здесь: https://citguru.hashnode.dev/heres-how-to-install-appimage-on-linux-cjwxozb1n003o1rs17epqop6g

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.