Удобное исполнение загруженного файла в Linux - PullRequest
1 голос
/ 05 ноября 2019

На моем веб-сайте мне нужно дать пользователям возможность загружать и легко запускать мой исполняемый файл (бинарный файл AppImage) в Linux. Для Windows версии это просто .exe, который работает после загрузки и нажатия:

  1. Загрузить файл
  2. Нажмите на файл на панели загрузки браузера, чтобы запустить его

Для пользователя Linux теперь необходимо сделать следующее:

  1. Загрузить файл
  2. Открыть папку с файлом на панели загрузки браузера
  3. Щелкните правой кнопкой мыши, чтобы добавитьразрешение exec
  4. Установите флажок «Разрешить выполнение этого файла»
  5. Нажмите Ok
  6. Нажмите на файл, чтобы запустить его

Это сложноЧтобы объяснить этот поток для обычного пользователя, он заставляет пользователей уйти.

Возможно ли свести его к минимуму кликов, как в Windows?

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

Я думал об использовании .deb. Это ограничит приложение только для Debian, но главная проблема в том, что я не нашел возможности запустить постинсталляцию в приложение exec, и я не хочу просить пользователя войти в меню Пуск.

1 Ответ

2 голосов
/ 05 ноября 2019

Исполняемые биты - это основная мера безопасности UNIX, поэтому обойти это непросто (по уважительной причине). Думая об этом, для конкретного случая загружаемых файлов Windows также применяет некоторые ограничения (специальный поток NTFS, который сообщает проводнику Windows, чтобы предупредить об опасностях исполняемого файла из Интернета).

Вы, конечно, можете предоставитьваше приложение в виде .tar.something архива и хранит там исполняемые файлы. После извлечения у них обычно будут установлены правильные биты выполнения.

Опция с deb-package также может решить вашу проблему (для некоторых пользователей), но немного сложнее:

  • Пользователь загружает пакет deb
  • Пользователь нажимает на пакет deb, и на нем установлена ​​некоторая программа, которая предоставляет графический интерфейс для установки пакетов (например, gdebi). Как и в Windows, будет некоторая «проверка безопасности» в виде диалогового окна, в котором пользователю необходимо ввести пароль (sudo). После этого apt установит пакет
  • . Если пакет создан правильно, он может правильно перенести исполняемый бит, так что после этого не требуется явного изменения разрешения. Если по какой-то причине необходимо выполнить что-то после установки, пакеты Debian могут предоставить postinst сценарии, которые запускаются (от имени root!) В конце установки пакета.

В любом случае,поскольку работа с исполняемыми файлами - это обычная процедура в Linux, она может не отпугнуть стольких пользователей, как ожидалось. Если вы хотите, чтобы пользователям было удобно, предоставьте пакет так, как они ожидают. В Windows я бы подумал, что это пакет .msi, а в Linux я предпочитаю пакет, соответствующий моему дистрибутиву (.deb, .rpm).

Если вы хотите, чтобы пользователи регулярно обновляли свои пакеты(хорошо для безопасности), тогда полезно предоставить «хранилище», из которого пользователи могут добавлять и устанавливать ваш пакет. Конечно, «лучшим» является наличие пакета как части дистрибутива, но это довольно трудоемкое и требует много «ворот контроля качества»:)

...