Портативное приложение
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
( Портативное приложение portable app ), иногда также называемое автономным программным обеспечением , представляет собой компьютерную программу, предназначенную для работы без изменения других файлов или необходимости установки другого программного обеспечения. Таким образом, его можно легко добавить, запустить и удалить с любого совместимого компьютера без настройки и побочных эффектов. [1]
На практике портативное приложение часто хранит созданные пользователем данные и настройки конфигурации в том же каталоге, в котором оно находится. Это упрощает перенос программы с предпочтениями и данными пользователя между разными компьютерами. Программа, не имеющая каких-либо параметров конфигурации, также может быть портативным приложением. [1]
Портативные приложения можно хранить на любом устройстве хранения данных , включая внутреннее запоминающее устройство , общий файловый ресурс , облачное хранилище или внешнее хранилище, такое как USB-накопители , флэш-накопители. [2] и дискеты — хранящие программные файлы и любую конфигурационную информацию и данные только на носителе данных. Если информация о конфигурации не требуется, переносимую программу можно запустить из хранилища только для чтения, такого как компакт-диски и DVD-диски . Некоторые приложения доступны как в устанавливаемой , так и в портативной версии.
Некоторые приложения, которые по умолчанию не являются переносимыми, поддерживают дополнительную переносимость с помощью других механизмов, наиболее частыми из которых являются аргументы командной строки . Примеры могут включать в себя /portable
просто указать программе вести себя как переносимая программа, или --cfg=/path/inifile
чтобы указать расположение файла конфигурации.
В зависимости от операционной системы переносимость реализовать может быть более или менее сложно; для таких операционных систем, как AmigaOS , все приложения по определению переносимы.
Портативные приложения для Windows
[ редактировать ]Большинство переносимых приложений не оставляют файлы или настройки на главном компьютере и не изменяют существующую систему и ее конфигурацию. Приложение может не записывать в реестр Windows [3] или хранить его файлы конфигурации (например, файл INI пользователя ) в профиле , но сегодня многие портативные устройства так и делают; однако многие по-прежнему хранят свои файлы конфигурации в переносном каталоге. Другая возможность, поскольку пути к файлам часто различаются на разных компьютерах из-за различий в назначении букв дисков , заключается в том, что портативные приложения могут хранить их в относительном формате. Хотя в некоторых приложениях есть опции для поддержки такого поведения, многие программы не предназначены для этого. Распространенным методом для таких программ является использование программы запуска для копирования необходимых настроек и файлов на главный компьютер при запуске приложения и перемещения их обратно в каталог приложения при его закрытии.
Альтернативной стратегией достижения переносимости приложений в Windows без необходимости изменения исходного кода приложения является виртуализация приложений : приложение «упорядочивается» или «упаковывается» на уровне среды выполнения, который прозрачно перехватывает вызовы его файловой системы и реестра, а затем перенаправляет их на другие постоянное хранилище без ведома приложения. Такой подход оставляет само приложение неизменным, но при этом переносимым.
Тот же подход используется для отдельных компонентов приложения: библиотек времени выполнения , COM- компонентов или ActiveX , а не только для всего приложения. [4] В результате, когда отдельные компоненты портируются таким образом, их можно: интегрировать в исходные переносимые приложения, многократно создавать (виртуально устанавливать) с разными конфигурациями/настройками в одной и той же операционной системе (ОС) без взаимных конфликтов. Поскольку перенесенные компоненты не влияют на связанные объекты, защищенные ОС (реестр и файлы), для установки и управления компонентам не потребуются права администратора.
Microsoft увидела необходимость в реестре для конкретных приложений для своей операционной системы Windows еще в 2005 году. [5] В конечном итоге компания внедрила некоторые из этих технологий, используя упомянутые выше методы, через свою базу данных совместимости приложений. [6] используя свои обходные пути [7] библиотеку кода в Windows XP. Компания не сделала ни одну из этих технологий доступной через свои системные API .
Переносимость в Unix-подобных системах
[ редактировать ]Программы, написанные с учетом Unix-подобной базы, часто не делают никаких предположений. Хотя многие программы Windows предполагают, что пользователь является администратором (что было очень распространено во времена Windows 95 / 98 / ME (и в некоторой степени в Windows XP / 2000 , хотя и не в Windows Vista или Windows 7 ), это быстро привело бы к Ошибки «Отказано в доступе» в Unix-подобных средах, поскольку пользователи гораздо чаще будут находиться в непривилегированном состоянии. Поэтому программы обычно разрабатываются для использования HOME
переменная среды для хранения настроек (например, $HOME/.w3m
для браузера w3m ). Динамический компоновщик предоставляет переменную среды LD_LIBRARY_PATH
которые программы могут использовать для загрузки библиотек из нестандартных каталогов. Предполагая /mnt
содержит переносимые программы и настройки, командная строка может выглядеть так:
HOME=/mnt/home/user LD_LIBRARY_PATH=/mnt/usr/lib /mnt/usr/bin/w3m www.example.com
Приложение Linux без необходимости взаимодействия с пользователем (например, адаптации сценария или переменной среды) на различных путях каталогов может быть создано с помощью GCC Linker . опции $ORIGIN
который позволяет использовать относительный путь поиска библиотеки. [8]
Не все программы соблюдают это — некоторые полностью игнорируют $HOME и вместо этого выполняют поиск пользователя в /etc/passwd
чтобы найти домашний каталог, что препятствует переносимости.
Существуют также форматы пакетов для разных дистрибутивов, для запуска которых не требуются права администратора, такие как Autopackage , AppImage или CDE, но которые получили лишь ограниченное признание и поддержку в сообществе Linux в 2000-х годах. [9] [10] [11] Примерно в 2015 году идея портативной и независимой от дистрибутива упаковки для экосистемы Linux получила еще большую поддержку, когда Линус Торвальдс обсуждал эту тему на DebConf 2014 и позже одобрил AppImage для своего для журнала погружений приложения Subsurface . [12] [13] [14] Например, в 2016 году последовали MuseScore и Krita , которые начали использовать сборки AppImage для развертывания программного обеспечения. [15] [16] RedHat выпустила в 2016 году систему Flatpak , которая является преемницей проекта glick Александра Ларссона , вдохновленного klik (теперь называемого AppImage). [17] Аналогичным образом, Canonical выпустила в 2016 году пакеты Snap для Ubuntu и многих других дистрибутивов Linux.
Многие приложения Mac, которые можно установить путем перетаскивания, по своей сути переносимы в виде пакетов приложений Mac. [18] Примеры включают Mozilla Firefox , Skype и Google Chrome , которые не требуют доступа администратора и не должны размещаться в центральной зоне с ограниченным доступом. Заявки, размещенные в /Users/username/Applications
( ~/Applications
) регистрируются в macOS LaunchServices так же, как и приложения, помещенные в основной /Applications
папка. Например, если щелкнуть правой кнопкой мыши файл в Finder и затем выбрать «Открыть с помощью...», отобразятся приложения, доступные как из /Applications, так и из ~/Applications. Разработчики могут создавать установщики продуктов Mac, которые позволяют пользователю выполнять установку из домашнего каталога с пометкой «Установить только для меня» в пользовательском интерфейсе установщика. [19] Такая установка выполняется от имени пользователя.
См. также
[ редактировать ]- Загрузочный диск
- Список портативного программного обеспечения
- Создатели портативных приложений
- Виртуализация приложений
- Живой USB
- Переносимость данных
- Совместимость
Ссылки
[ редактировать ]- ^ Перейти обратно: а б «Что такое портативное приложение?» . Портативные приложения.com. Определение . Проверено 15 ноября 2022 г.
- ^ «Бесплатные портативные приложения и игры для USB ▷ Pendrive Software» . pendriveapps.com . 8 января 2007 г. Проверено 17 июня 2024 г.
- ^ " "Что такое портативное приложение?" " . Портативные приложения.com. Рекомендации . Проверено 15 ноября 2022 г.
- ^ «Технология преобразования портативных приложений» . Программное обеспечение Сфинкс. Архивировано из оригинала 7 сентября 2010 года . Проверено 19 января 2012 г.
- ^ «Реестр портативных приложений» . ip.com . Проверено 19 января 2012 г.
- ^ Ионеску, Алекс. «Секреты базы данных совместимости приложений (SDB) – Часть 1» . Проверено 19 января 2012 г.
- ^ «Объезды» . Исследования Майкрософт . Проверено 19 января 2012 г.
- ^ Хустведт, Эскилд (8 февраля 2009 г.). «Наш новый способ соответствовать LGPL» . Архивировано из оригинала 20 февраля 2009 г. Проверено 9 марта 2011 г.
Вы можете использовать специальное ключевое слово $ORIGIN, чтобы указать «относительно фактического местоположения исполняемого файла». Внезапно мы обнаружили, что можем использовать -rpath $ORIGIN/lib, и это сработало. Игра загружала правильные библиотеки, поэтому была стабильной и переносимой, но теперь полностью соответствовала духу LGPL и букве!
- ^ Вининг, Николас (13 октября 2010 г.). «Дорогое Linux-сообщество: нам нужно поговорить» . Игры с газовыми лампами . Проверено 30 января 2011 г.
Сообщество Linux, в своей бесконечной мудрости, продолжает разжигать огонь по CDE. [...] «Мы все должны просто использовать управление пакетами». Вот что я хочу сказать, и пусть мои слова донесутся с вершин гор, написанные на крошечных каменных табличках: Управление пакетами — не универсальная панацея.
- ^ Байфилд, Брюс (12 февраля 2007 г.). «Автопакет изо всех сил пытается получить признание» . Linux.com. Архивировано из оригинала 31 марта 2008 г. Проверено 21 января 2012 г.
Если Хирн прав, настоящий урок Autopackage заключается не в том, как улучшить установку программного обеспечения, а в сложности – возможно, даже невозможности – крупномасштабных изменений в архитектуре Linux на столь позднем этапе ее истории. Это отрезвляющее и разочаровывающее завершение проекта, который когда-то казался таким многообещающим.
- ^ «AppImages» . Элементарный проект. Архивировано из оригинала 13 декабря 2010 года . Проверено 19 января 2012 г.
- ^ Линус Торвальдс (29 августа 2014 г.). «Вопросы и ответы с Линусом Торвальдсом» (видео) . DebConf 2014, Портленд . Debian.net . 6:28 . Проверено 14 мая 2016 г.
Я видел это на собственном опыте в другом проекте, в котором я участвую, — моем приложении для журнала погружений. Мы создаем двоичные файлы для Windows и OSX, но практически не делаем двоичные файлы для Linux. Почему? Потому что создание двоичных файлов для настольных приложений Linux — это чертовски большая заноза в заднице.
- ^ Торвальдс, Линус . «Это просто очень круто» . Гугл+ .
Наконец-то я нашел время поиграться с версией +Subsurface «AppImage», и она действительно «просто работает».
- ^ Хондел, Дирк (25 ноября 2015 г.). «Это просто очень круто» . Гугл+ .
Я, как специалист по сопровождению приложения, больше не хочу, чтобы мое приложение было включено в дистрибутив. Слишком много боли и абсолютно нулевая выгода. Всякий раз, когда я получаю отчет об ошибке, мой первый вопрос: «Ой, какая версия какого дистрибутива? Какая версия какой библиотеки? Какой набор безумных патчей был применен к этим библиотекам?». Нет, Windows и Mac понимают это правильно. Я контролирую библиотеки, с которыми работает мое приложение. [...] С помощью AppImage я могу дать им именно это. Что-то, что работает на их компьютере.
- ^ Вайс, Исаак. «Выпущена версия MuseScore 2.0.3» . MuseScore.org . MuseScore. Архивировано из оригинала 23 апреля 2016 г. Проверено 5 апреля 2016 г.
- ^ «Выпущена Крита 3.0» . Создать.орг . Крит. 31 мая 2016 г.
- ^ Эксперименты с пакетами вневременных приложений Алекса Ларссона (2007).
- ^ «Распространение вашего приложения» . разработчик.apple.com . Проверено 23 мая 2017 г.
- ^ «Справочник по XML для распространения» . разработчик.apple.com . Проверено 23 мая 2017 г.