Что такое "AppImage"? Как мне это установить?
Я только что прочитал Meet Etcher, стильный USB-инструмент для записи изображений с открытым исходным кодом. Это говорит о загрузке AppImage.
Да, линукс; пакеты Linux распространяются как.appimage для 32-битных и 64-битных дистрибутивов и должны работать во всех основных дистрибутивах Linux без каких-либо проблем. В настоящее время команда не планирует предоставлять собственный установщик.deb (или.rpm).
Что такое AppImages? Чем они отличаются от снимков?
9 ответов
Основная информация
По поводу установки
Я цитирую страницу проекта 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, без необходимости помещать их "в" дистрибутив и без необходимости создавать для миллиардов различных дистрибутивов.
Цели
Будь простым.
AppImage предназначен для очень простого формата, который легко понять, создать и управлять.
Поддерживать бинарную совместимость.
AppImage - это формат для двоичного распространения программного обеспечения. Программное обеспечение, упакованное как AppImage, должно быть как можно более совместимым с бинарным приложением с максимально возможным количеством систем. Необходимость (пере) компиляции программного обеспечения должна быть значительно снижена.
Будь дистрибутивом-агостиком.
AppImage должен работать во всех базовых операционных системах (дистрибутивах), для которых он был создан (и более поздние версии). Например, вы можете одновременно использовать Ubuntu 9.10, openSUSE 11.2 и Fedora 13 (и более поздние версии), не создавая и не поддерживая отдельные пакеты для каждой целевой системы.
Уберите необходимость установки.
AppImages содержит приложение в формате, который позволяет запускать его непосредственно из архива без предварительной установки. Это сравнимо с Live CD. Перед Live CD, операционные системы должны были быть установлены в первую очередь, прежде чем их можно было использовать.
Держите приложения сжатыми все время.
Поскольку приложение постоянно упаковано, оно никогда не распаковывается на жесткий диск. Компьютер распаковывает приложение на лету при доступе к нему. Поскольку в большинстве систем распаковка выполняется быстрее, чем чтение с жесткого диска, это дает преимущество в скорости помимо экономии места. Также время, необходимое для установки, полностью исключено.
Разрешить размещать приложения в любом месте.
AppImages являются "перемещаемыми", что позволяет пользователю хранить и выполнять их из любого места (включая CD-ROM, DVD, съемные диски, USB-флешки).
Сделать приложения только для чтения.
Поскольку AppImages предназначены только для чтения, пользователь может быть уверен, что приложение не изменяет себя во время работы.
Не требует перекомпиляции.
AppImages должна быть в состоянии создать из уже существующих двоичных файлов, без необходимости перекомпиляции. Это значительно ускоряет процесс создания AppImage, поскольку не требуется задействовать компилятор. Это также позволяет третьим сторонам упаковывать приложения с закрытым исходным кодом как AppImages. (Тем не менее, для разработчиков вышестоящих приложений может быть полезно создавать исходные тексты специально для генерации AppImage.)
Держите базовую операционную систему нетронутой.
Поскольку AppImages предназначен для работы на простых системах, которые не были специально подготовлены администратором, AppImages может не требовать какой-либо необычной подготовки базовой операционной системы. Следовательно, они не могут полагаться на специальные исправления ядра, модули ядра или любые приложения, которые не поставляются с целевыми дистрибутивами по умолчанию.
Не требует рут.
Поскольку AppImages предназначены для запуска конечными пользователями, они не должны запрашивать административную учетную запись (root) для установки или использования. Однако они могут быть установлены администратором (например, в многопользовательских сценариях), если это необходимо.
Прежде чем вы сможете запустить AppImage, вы должны сделать его исполняемым. Это функция безопасности Linux. Существует два основных способа сделать исполняемый файл AppImage:
1. Использование графического интерфейса
или же
2. В командной строке
chmod a+x Some.Appimage
Теперь дважды щелкните файл, чтобы запустить его ИЛИ щелкните правой кнопкой мыши> Выполнить
Основная идея может выглядеть одинаково между двумя системами, но есть некоторые конструктивные различия между снимками и приложениями.
Некоторые "большие", которые приходят мне в голову:
Безопасность, с точки зрения содержания. Пакеты Snap запускаются в песочнице, и им не разрешается выходить из нее и достигать других частей системы, к которым они не должны прикасаться. Это более сильный уровень безопасности, который работает параллельно с системой разрешений. Очевидно, это немного расстраивает, когда имеешь дело с этим в начале (а также позже), но если вы думаете об этом с точки зрения системного администрирования, это то, что администратор хочет для своих пользователей.
Безопасность. Установка программного обеспечения, взятого из сети, так же безопасна, как и вылизывание столбов на улицах. Иногда ничего не происходит, иногда возникают очень серьезные проблемы со здоровьем. Пакеты Snap имеют свои собственные репозитории, которые контролируются Canonical, как и обычные стандартные репозитории Ubuntu. Вы можете пойти и установить
.deb
файлы со всего, но это будет ваш выбор, а не проблема дизайна.Монтаж. Предполагается, что AppImages является эквивалентом "переносимых исполняемых файлов Windows". Все библиотеки являются автономными, и любой пользователь может просто загрузить и выполнить одну из них. С другой стороны,
snap
пакеты являются правильными пакетами, и они должны быть установлены (какroot
или сsudo
через подходящего менеджера пакетов (snap install tic-tac-toe
выдает ошибку: нужноsudo
!)Удаление. Чтобы удалить пакет Snap, вам нужно использовать менеджер пакетов
snap remove ...
с соответствующими разрешениями на это. Образы, с другой стороны, они просто "там". Таким образом, любой пользователь не хочет, что Appimage? Он / она просто удаляет файл, и он ушел.
Хотя я настоятельно рекомендую соблюдать осторожность при использовании Appimages, некоторые из них я лично использую сам.
Я считаю их особенно полезными в моей рабочей системе, где у меня нет root
доступ (только администратор имеет это), но мне нужна последняя версия конкретного программного обеспечения, которое, к счастью, разработчик предоставил в форме Appimage.
Я немного боюсь, что в них действительно содержится какой-то вредоносный код, поэтому я проверил, насколько это возможно, личность издателя. Я не уверен на 100%, что это программное обеспечение является доброкачественным, но я сделал все, что мог.
В то время как 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
), тогда вы можете запустить приложение, просто дважды щелкнув.
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
чтобы узнать правильный номер для смещения.
Ни один из приведенных выше ответов не помог мне, потому что ни один из них не показал, как установить AppImage. Под установкой я обычно подразумеваю: поместить исполняемый файл туда, где исполняемые файлы обычно хранятся на диске, и сделать его доступным через панель запуска приложений.
На примере Arduino IDE:
- Сделать AppImage исполняемым
chmod +x ./arduino-ide_nightly-20230209_Linux_64bit.AppImage
- Переместите его в каталог приложений:
Ссылаясь на документы AppImage :
Важным моментом в формате AppImage является то, что вы можете хранить файлы AppImage где угодно. [...] Если вы не хотите оставлять их в $HOME/Загрузки, тогда $HOME/Applications — хороший выбор. Многие сторонние инструменты (особенно те, которые управляют интеграцией рабочего стола) также используют это расположение. Другие варианты включают $HOME/.local/bin и $HOME/bin, которые полезны в основном для инструментов CLI.
mv arduino-ide_nightly-20230209_Linux_64bit.AppImage ~/Applications/
- Добавляем его в панель запуска приложений:
Для этого нам нужно добавить Desktop Entry (подробнее здесь )
touch ~/.local/share/applications/arduino-ide.desktop
Откройте его в своем любимом текстовом редакторе и добавьте конфигурации, подобные этой:
[Desktop Entry]
Version=1.0
Name=Arduino IDE
Exec=/home/piotrek/Applications/arduino-ide_nightly-20230209_Linux_64bit.AppImage
Terminal=false
Type=Application
Categories=Utility;Development;
Просто не забудьте изменить «Exec», чтобы указать место, где хранится ваш AppImage.
- Сделать его исполняемым
chmod +x ~/.local/share/applications/arduino-ide.desktop
На этом этапе ваше приложение должно появиться в панели запуска приложений.
Если вы используете KDE, вам может потребоваться щелкнуть правой кнопкой мыши значок запуска приложений на панели задач, выбрать «Редактировать приложения» и просто нажать «Сохранить». Затем KDE обновит свой кеш, и приложение появится в панели запуска.
Теперь AppImageLauncher позволяет легко и удобно запускать/создавать файл рабочего стола. Попробуйте
После установки вы захотите подключить его к меню рабочего стола.
Чтобы быстро интегрироваться в меню рабочего стола, нужно загрузить старый репозиторий Debian (при условии, что в репозитории есть более старая версия), например,
$ sudo apt-get install digikam
Затем, как только это будет сделано, щелкните правой кнопкой мыши на стартовом меню и выберите configure...
.
(Вот как это выглядит в Cinnamon. Ваш рабочий стол может выглядеть иначе.)
Затем откройте menu editor
.
Найдите приложение, отредактируйте его свойства и обновите "Command:". Измените его на путь к вашему новому файлу appimage.
(!! Это оставляет старую версию на вашем диске, тратя впустую место, и есть способы сделать это более чистым, но это действительно быстро, чтобы ваше новое изображение приложения работало из вашего меню.)
... Теперь, чтобы очистить это:
Вы хотите удалить старый пакет, но при этом сохранить его рабочий стол и файлы значков.
Найдите любые файлы рабочего стола digikam. Один из способов найти их - с помощью
locate
:$ найдите digikam.desktop
/usr/share/applications/org.kde.digikam.desktop
~/.local / share / applications / org.kde.digikam.desktop
Первый - это настройки вашей системы по умолчанию (для всех пользователей), а второй - только для вас. Второй (локальный) обычно имеет приоритет над первым, если они оба существуют.
И если вы сравните их, вы заметите, что вы редактировали только.local с помощью редактора меню, а не тот, который находится в / usr...
Кроме того, вам не нужны оба. Так что, если хотите, можете удалить.local
один и полагаться только на /usr
один. Это упрощает работу.
Самый простой способ исправить это - сделать следующий ход:
$ cd /usr/share/applications
$ sudo mv ~/.local/share/applications/org.kde.digikam.desktop .
Затем вы должны переименовать этот файл, чтобы программа очистки пакетов не удаляла его, когда вы запускаете его через мгновение. Обратите внимание: как только вы сохраните правки или изменения в файле рабочего стола, меню автоматически найдет ваши изменения и обновится.
$ sudo mv org.kde.digikam.desktop org.kde.digikam.appimage.desktop
Теперь загляните в него, чтобы найти имя значка, которое он в настоящее время использует (указывает на):
$ sudo grep Icon org.kde.digikam.appimage.desktop # Заглавные буквы 'I'
Icon= digikamТеперь найдите соответствующие файлы значков
$ найти цифровикам | значки grep
/usr/share/icons/hicolor/128x128/apps/digikam.png
/usr/share/icons/hicolor/16x16/apps/digikam.png
/usr/share/icons/hicolor/22x22/apps/digikam.png
/usr/share/icons/hicolor/256x256/apps/digikam.png
/usr/share/icons/hicolor/32x32/apps/digikam.png
/usr/share/icons/hicolor/48x48/apps/digikam.png
/usr/share/icons/hicolor/64x64/apps/digikam.png
/usr/share/icons/hicolor/scalable/apps/digikam.svgz
/usr/share/icons/oxygen/base/128x128/apps/digikam.png
/usr/share/icons/oxygen/base/16x16/apps/digikam.png
/usr/share/icons/oxygen/base/22x22/apps/digikam.png
/usr / share / icons /xygen / base / 256x256 / apps / digikam.png
/usr/share/icons/oxygen/base/32x32/apps/digikam.png
/usr/share/icons/oxygen/base/48x48/apps/digikam.png
/usr / share / icons /xygen / base / 64x64 / apps /digikam.png
/var/lib/app-info/icons/debian-buster-main/48x48/digikam_digikam.png
/var/lib/app-info/icons/debian-buster-main/64x64/digikam_digikam.png
Те, о ком вы заботитесь, находятся в /usr/share/icons/
дерево.
Переименовать их сложно. Проще просто переименовать все дерево (чтобы сохранить его), удалить и вернуть дерево, когда вы закончите.
$ cd /usr/share
$ sudo mv icons icons~ # save icons tree
$ sudo apt-get purge digikam && sudo mv icons~ icons #uninstall & restore tree
Следуйте инструкциям ниже:
- Щелкните правой кнопкой мыши на AppImage
- Нажмите на свойства
- Нажмите на разрешения
- Затем нажмите Разрешить выполнение файла как программы
Использование терминала:
chmod u+x <appimage>
Вы можете прочитать больше здесь: https://citguru.hashnode.dev/heres-how-to-install-appimage-on-linux-cjwxozb1n003o1rs17epqop6g