Что такое "изображение приложения"? Как мне его установить?

Я только что прочитал Познакомьтесь С Etcher, Стильным USB-Инструментом Для Создания Изображений С Открытым Исходным Кодом. В нем говорится о загрузке изображения приложения.

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

Что такое изображения приложений? Чем они отличаются от снимков?

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

Что касается установки

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

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

Сделать его исполняемым

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

chmod a+x exampleName.AppImage

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

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

./exampleName.AppImage

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

О AppImage

Вы можете найти некоторую общую информацию о AppImage здесь.

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

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

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

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

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

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

Варианты использования

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

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

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

Цели

  1. Будьте Просты.

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

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

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

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

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

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

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

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

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

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

    Изображения приложений "перемещаемы", что позволяет пользователю сохранять и запускать их из любого места (включая компакт-диски, DVD-диски, съемные диски, USB-накопители).

  7. Сделайте приложения доступными только для чтения.

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

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

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

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

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

  10. Не требуется root.

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

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

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

How to make an AppImage executable

или

Использование командной строки

chmod a+x Some.Appimage

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

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

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

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

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

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

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

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

Я нахожу их особенно полезными в моей рабочей системе, где у меня нет 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), затем вы можете запустить приложение простым двойным щелчком мыши.

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

Установите ПРЕДОХРАНИТЕЛЬ

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

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

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

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

sudo zypper install fuse

Отступление

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

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

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

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

После установки вы захотите подключить его к меню вашего рабочего стола.

Чтобы быстро интегрироваться в меню вашего рабочего стола, один грязный трюк заключается в загрузке старого репозитория Debian (при условии, что в репозитории находится более старая версия), например,

$ sudo apt-get install digikam

Затем, как только это будет сделано, щелкните правой кнопкой мыши на вашем стартовом меню и выберите configure....

(Вот как это выглядит в Cinnamon. Ваш рабочий стол может выглядеть по-другому.)

enter image description here

Затем откройте menu editor.

enter image description here

Найдите приложение, отредактируйте его свойства и обновите команду: Измените ее на путь к вашему новому файлу AppImage.

enter image description here

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


...Теперь, чтобы убрать это:

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

  1. Найдите любые файлы рабочего стола digikam. Один из способов найти их - это с помощью locate:

    $ найдите digikam.desktop
    /usr/share/applications/org.kde.digikam.desktop
    ~/.local/share/applications/org.kde.digikam.desktop

Первый - это ваши системные настройки по умолчанию (для всех пользователей), а 2-й - только для вас. Второй (локальный) обычно отменяет первый, если они оба существуют.

И если вы измените их, вы заметите, что вы отредактировали только файл .local с помощью редактора меню, а не тот, который находится в /usr...

Более того, вам не нужно и то, и другое. Так что, если вы хотите, вы можете удалить .local один и полагаться только на /usr один. Это упрощает жизнь.

Самый простой способ исправить это - использовать move, который перезаписывается следующим образом:

$ cd /usr/share/applications  $ sudo mv ~/.local/share/applications/org.kde.digikam.desktop .  
  1. Затем вам нужно переименовать этот файл, чтобы средство очистки пакетов не удалило его, когда вы запустите его через мгновение. Обратите внимание, что как только вы сохраните свои правки или изменения в файле рабочего стола, меню автоматически найдет ваши изменения и обновится само.

    $ sudo mv org.kde.digikam.desktop org.kde.digikam.appimage.desktop

  2. Теперь загляните в него, чтобы найти название значка, которое он использует в данный момент (указывает на):

    $ sudo grep Значок org.kde.digikam.appimage.desktop # Примечание заглавные буквы "I"
    Значок=цифровая камера

  3. Теперь найдите соответствующие файлы значков

    $ найдите значки digikam | grep
    /usr/поделиться/иконки/hicolor/128x128/приложения/digikam.png
    /usr/поделиться/иконки/hicolor/16x16/приложения/digikam.png
    /usr/поделиться/иконки/hicolor/22x22/приложения/digikam.png
    /usr/поделиться/иконки/hicolor/256x256/приложения/digikam.png
    /usr/поделиться/иконки/hicolor/32x32/приложения/digikam.png
    /usr/поделиться/иконки/hicolor/48x48/приложения/digikam.png
    /usr/поделиться/иконки/hicolor/64x64/приложения/digikam.png
    /usr/share/иконки/цветные/масштабируемые/приложения/digikam.svgz
    /usr/поделиться/иконки/oxygen/база/128x128/приложения/digikam.png
    /usr/поделиться/иконки/oxygen/база/16x16/приложения/digikam.png
    /usr/поделиться/иконки/oxygen/база/22x22/приложения/digikam.png
    /usr/поделиться/иконки/oxygen/база/256x256/приложения/digikam.png
    /usr/поделиться/иконки/oxygen/база/32x32/приложения/digikam.png
    /usr/поделиться/иконки/oxygen/база/48x48/приложения/digikam.png
    /usr/поделиться/иконки/oxygen/база/64x64/приложения/digikam.png
    /var/lib/app-info/иконки/debian-buster-main/48x48/digikam_digikam.png
    /var/lib/app-info/иконки/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  

Сейчас AppImageLauncher делает запуск / создание файла на рабочем столе действительно простым и удобным. Попробуйте это сделать

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