Що таке "AppImage"? Як це встановити?


231

Я щойно прочитав Meet Etcher, стильний інструмент для запису зображень із відкритим кодом . У ньому йдеться про завантаження AppImage.

Так, Linux; пакети Linux поширюються у вигляді .appimage для 32-розрядних та 64-розрядних дистрибутивів, і вони повинні працювати у всіх основних дистрибутивах Linux без будь-яких проблем. Наразі команда не планує надавати вроджену програму .deb (або .rpm).

Що таке AppImages? Чим вони відрізняються від оснасток?


10
Я думаю, що appimageмітка може стати корисною, тому я її просто створив. У випадку, якщо він нам не знадобиться або не хочемо його зберігати, завжди буде можливість знову його спалити.
Командир байт

Відповіді:


283

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

Щодо установки

Я цитую сторінку проекту appImage тут:

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

Зробити його виконуваним

Ви можете зробити програму appImage виконуваною так:

chmod a+x exampleName.AppImage

Виконання цього

Ви можете виконати додаток зображення таким чином:

./exampleName.AppImage

Додаткова інформація

Про appImage

Ви можете знайти загальну інформацію про appImage тут .

Я цитую сторінку проекту appImage тут:

Ключова ідея формату AppImage - це одна програма = один файл. Кожен AppImage містить додаток і всі файли, які потрібно запустити. Іншими словами, кожен AppImage не має інших залежностей, ніж те, що включено в цільову базову операційну систему.

Вікіпедія додає

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

Він використовує один файл на додаток Кожна з них є автономною: вона включає всі бібліотеки, від яких залежить додаток і які не є частиною базової системи. У цьому плані він подібний до "віртуалізації додатків". Можна використовувати файл AppImage, навіть якщо він не є суперпользователем або використовує живий компакт-диск. Файли AppImage часто простіші, ніж компіляція та встановлення програми, оскільки фактично не відбулася установка. Файл AppImage - це стиснене зображення, яке тимчасово встановлено для доступу до програми, але не потребує витягування програми чи зміни базової системи.

README.mdЗ AppImageKit-проект пропонує багато додаткову інформацію , як Прецеденти , проблема простору і цілей .

Використовуйте випадки

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

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

  • Як автор програми або ISV, я хочу надати пакети для настільних систем Linux так само, як це робиться для Windows і OS X, без необхідності отримувати його "в" дистрибутив і не потребувати створення для gazillions різних дистрибутивів.

Цілі

  1. Будь простий.

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

  2. Підтримуйте бінарну сумісність.

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

  3. Будьте розподільно-агностичними.

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

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

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

  5. Тримайте програми стисненими постійно.

    Оскільки додаток постійно залишається упакованим, він ніколи не стискається на жорсткому диску. Комп'ютер розгортає програму під час руху під час доступу до неї. Оскільки декомпресія швидша, ніж зчитування з жорсткого диска в більшості систем, це додатково забезпечує швидкість, крім економії місця. Також час, необхідний для встановлення, повністю знімається.

  6. Дозволити розміщувати програми в будь-якому місці.

    AppImages є "переїзними", що дозволяє користувачеві зберігати та виконувати їх з будь-якого місця (включаючи CD-ROM, DVD, знімні диски, USB-накопичувачі).

  7. Робіть програми лише для читання.

    Оскільки програму AppImages призначена лише для читання, користувач може бути впевнений, що додаток не змінюється під час роботи.

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

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

  9. Тримайте базову операційну систему недоторканою.

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

  10. Не вимагають коріння.

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


4
Як додаток зберігає налаштування між запусками?
Дан Даскалеску

1
Не могли б ви детальніше розібратися у функції "лише для читання"? Чи можна зберегти зміни всередині AppImage? Або він втрачає їх близько, як LiveCD?
встепанюк

2
@DanDascalescu: Ваше питання заслуговує на повне запитання про AskUbuntu, а не просто коментар. Ви запитаєте це?
Курт Пфайфл

@vstepaniuk: Ваше запитання схоже на запитання Дана. Хтось із вас повинен задати це як "повне" питання, а не лише в коментарі ...
Курт Пфайфл

1
@KurtPfeifle: оскільки ви не хотіли просто йти вперед і запитати про це самі ... :)
Дан Даскалеску,

22

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

Деякі "великі", які мені спадають на думку:

  1. Безпека з точки зору ув'язнення . Пакети оснащення працюють у пісочниці, і їм не дозволяється виходити з неї та діставатися до інших частин системи, до яких вони не повинні торкатися. Це більш міцний рівень захисту, який працює паралельно системі дозволів. Очевидно, що це трохи засмучує справу з цим на початку (а також пізніше), але якщо ви думаєте про це з точки зору системного адміністрування, то це те, що адміністратор хоче для своїх користувачів.

  2. Безпека. Встановлення програмного забезпечення, взятого з мережі, так само безпечно, як і обходити облизування стовпів на вулицях. Іноді нічого не відбувається, іноді виникають дуже великі проблеми зі здоров’ям. Пакети оснащення мають свої належні сховища, які контролюються Canonical, як звичайні стандартні сховища Ubuntu. Ви можете продовжувати та встановлювати .debфайли з усієї сторони, але це буде ваш вибір, а не проблема дизайну.

  3. Установка. AppImages покликані бути еквівалентом "портативних виконуваних файлів Windows". Усі бібліотеки є автономними, і будь-який користувач може просто завантажити та виконати одну з них. З іншого боку, snapпакети є належними пакетами, і їх потрібно встановити (як root, або з sudo) через відповідний менеджер пакунків ( snap install tic-tac-toeвидає помилку: це потрібно sudo!)

  4. Видалення. Щоб видалити оснащений пакет, для цього потрібно скористатися менеджером пакунків snap remove ...з відповідними правами. Appimages, з іншого боку, вони просто "там". Отже, будь-який користувач не хоче цього Appimage? Він / вона просто видаляє файл, і він пропав.

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

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

Я трохи боюся, що якийсь злоякісний код справді міститься в них, тому я максимально перевірив особу видавця. Я не на 100% впевнений, що це програмне забезпечення є доброякісним, але я зробив усе, що міг.


2
В основному всі намагаються реалізувати упаковку програм для OSX на Linux, але нічого там не виходить.
OrangeDog

2
Я поняття не маю про те, як це працює :) Напевно, що оснащення та Appimages не працюють добре з програмним забезпеченням із багатьма залежностями, якими ділиться багато інших програмних засобів. Вони ідеально підходять із уже автономним програмним забезпеченням або з невеликими залежностями, але ризик - мати багато копій тієї самої бібліотеки, які виконують те саме завдання, як у Windows. Це слід вирішити у пакеті оснащення (програмне забезпечення, яке залежить від бібліотеки оснащення, встановлює цю бібліотеку з цією версією, тоді інше програмне забезпечення, яке потребує тієї ж версії бібліотеки, може використовувати її, як у звичайній системі).
dadexix86

Програми для OSX (та iOS) працюють як AppImage (просто завантажте один файл та запустити), але із захищеною швидкістю.
OrangeDog

OSX намагається позбутися від них і дозволяє лише встановлення з їх магазину.
LtWorf

AppImage дійсно повинен містити варіант для пісочного боксу. Сподіваємось, ми побачимо це в майбутньому.
Рой

20

Перш ніж запустити AppImage, потрібно зробити його виконуваним. Це функція безпеки Linux. Є два основні способи зробити виконуваний файл AppImage:

1. Використання графічного інтерфейсу

Як зробити AppImage виконуваним

або

2. У командному рядку

chmod a+x Some.Appimage

Тепер двічі клацніть файл, щоб запустити його АБО Клацніть правою кнопкою миші> Запустити


15

Хоча оснащення фокусується лише на Ubuntu, AppImage є крос-дистрибутивом, а також працює на Fedora, debian, openSUSE, CentOS тощо.

AppImage не потребує підтримки часу виконання чи інфраструктури з боку дистрибутиву Linux, а тому працює поруч. Це дозволяє авторам програм надсилати своє програмне забезпечення безпосередньо користувачам Linux, як це робиться для Windows та OS X; без Canonical або когось іншого "між" автором програмного забезпечення та кінцевим користувачем.

Якщо програма надається у форматі AppImage, користувач може перейти на оригінальний веб-сайт автора, щоб завантажити її, наприклад, MuseScore з https://musescore.org/uk/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
Щоправда, але для тих, хто просто хоче перевірити води, це, як пише сайт, тип "Привіт, світ".
ДК Босе

Відмінно. Після цього ви можете просто двічі клацнути. Оце, що мені було потрібно!
Dawoodjee

5

AppImages вимагає FUSE для запуску. Файлова система в просторі користувачів (FUSE) - це система, яка дозволяє користувачам, які не користуються коренем, монтувати файлові системи.

Встановіть 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

Якщо це не працює, у вас може бути експериментальний App 2 AppImage . Для цього потрібно перейти -o offset=...до mountкоманди. Запустіть програму AppImage, --appimage-offsetщоб з’ясувати правильне число для зміщення.


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

Привіт @Martin, в Ubuntu для екс. якщо ви намагаєтеся запустити i686 (32bit) AppImage в системі x86_64 (64bit), ви отримаєте цю помилку, якщо у вас не встановлені 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.