Портативное приложение

редактировать
Тип компьютерной программы A USB-накопитель может переносить портативные приложения

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

Портативные приложения могут храниться на любом устройстве хранения данных, включая внутреннее массовое хранилище, файловое хранилище, облачное хранилище или внешнее хранилище, такое как USB-накопители и гибкие диски - хранящие свои программные файлы и любую конфигурационную информацию и данные только на носителе. Если информация о конфигурации не требуется, переносимая программа может быть запущена из хранилища только для чтения, такого как CD-ROM и DVD-ROM. Некоторые приложения доступны как в устанавливаемой, так и в переносной версиях.

Некоторые приложения, которые по умолчанию не переносимы, поддерживают дополнительную переносимость с помощью других механизмов, наиболее распространенными из которых являются аргументы командной строки. Примеры могут включать / portable, чтобы просто указать программе вести себя как переносимая программа, или --cfg = / path / inifile, чтобы указать расположение файла конфигурации.

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

В зависимости от операционной системы, переносимость более или менее сложно реализовать; для операционных систем, таких как AmigaOS, все приложения по определению переносимы.

Содержание
  • 1 Переносимые приложения Windows
  • 2 Переносимость в Linux и Unix-подобных системах
  • 3 См. Также
  • 4 Ссылки
Переносимые приложения Windows

Переносимое приложение может не оставлять свои файлы или настройки на главном компьютере и не изменять существующую систему и ее конфигурацию. Приложение не записывает в реестр Windows и не сохраняет свои файлы конфигурации (такие как INI-файл ) в профиле пользователя ; вместо этого он хранит свои файлы конфигурации в переносном каталоге. Еще одно требование, поскольку пути к файлам часто будут отличаться при смене компьютеров из-за различий в назначении букв дисков, это необходимость для приложений хранить их в относительном формате.. Хотя в некоторых приложениях есть опции для поддержки такого поведения, многие программы не предназначены для этого. Распространенным методом для таких программ является использование программы запуска для копирования необходимых настроек и файлов на главный компьютер при запуске приложения и перемещения их обратно в каталог приложения при его закрытии.

Альтернативной стратегией достижения переносимости приложений в Windows, не требующей изменения исходного кода приложения, является виртуализация приложения : приложение «упорядочивается» или «упаковывается» на уровне среды выполнения, который прозрачно перехватывает вызовы файловой системы и реестра, а затем перенаправляют их в другое постоянное хранилище без ведома приложения. При таком подходе само приложение остается неизменным, но переносимым.

Тот же подход используется для отдельных компонентов приложения: библиотеки времени выполнения, компоненты COM или ActiveX, а не только для всего приложения. В результате, когда отдельные компоненты переносятся таким образом, они могут быть: интегрированы в исходные переносимые приложения, многократно созданы (виртуально установлены) с разными конфигурациями / настройками в одной и той же операционной системе (ОС) без взаимные конфликты. Поскольку перенесенные компоненты не влияют на связанные с ОС объекты (реестр и файлы), компоненты не требуют прав администратора для установки и управления.

Microsoft увидела необходимость в реестре для конкретных приложений для своей операционной системы Windows еще в 2005 году. В конечном итоге она включила часть этой технологии, используя упомянутые выше методы, через свою базу данных совместимости приложений с использованием кода Detours библиотеку в Windows XP. Он не делал какие-либо из этих технологий доступными через свои системные API-интерфейсы.

Переносимость в Linux и Unix-подобных системах

Программы, написанные на основе Unix-подобных, часто не делают никаких предположений. В то время как многие программы Windows предполагают, что пользователь является администратором, что было очень распространено во времена Windows 95 /98 /ME (и в некоторой степени в Windows XP / 2000, но не в Windows Vista или Windows 7 ) - это быстро приведет к ошибкам «Permission denied» в 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, которая разрешает относительный путь поиска в библиотеке.

Не все программы соблюдают это - некоторые полностью игнорируют $ HOME и вместо этого выполняют поиск пользователя в / etc / passwdдля поиска домашнего каталога, что затрудняет переносимость.

Существуют также форматы пакетов для разных дистрибутивов, которые не требуют прав администратора для запуска, например Autopackage, klik (теперь называется AppImage) или CDE, но которые получил лишь ограниченное признание и поддержку в сообществе Linux в 2000-х. Примерно в 2015 году идея переносимой и независимой от дистрибутива упаковки для экосистемы Linux стала более популярной, когда Линус Торвальдс обсудил эту тему на DebConf 2014 и позже поддержал AppImage для его журнал погружений приложение Subsurface. Например, в 2016 году последовали MuseScore и Krita, которые начали использовать сборки AppImage для развертывания программного обеспечения. RedHat выпустила в 2016 году систему Flatpak, которая является преемником блестящего проекта Александра Ларссона, вдохновленного klik (теперь AppImage). Аналогичным образом, Canonical, выпущенный в 2016 году, Snap-пакеты для Ubuntu и многих других дистрибутивов Linux.

Многие приложения Mac, которые можно установить с помощью перетаскивания, по своей сути переносимы в виде пакетов приложений Mac. Примеры включают Mozilla Firefox, Skype и Google Chrome, которые не требуют доступа администратора и не должны размещаться в центральной ограниченной области. Приложения, помещенные в / Users / username / Applications(~ / Applications), регистрируются в macOS LaunchServices так же, как приложения, помещенные в основную папку / Applications. Например, щелкнув файл правой кнопкой мыши в Finder и выбрав «Открыть с помощью...», вы увидите приложения, доступные как в / Applications, так и в ~ / Applications. Разработчики могут создавать установщики продуктов Mac, которые позволяют пользователю выполнить установку из домашнего каталога с пометкой «Установить только для меня» в пользовательском интерфейсе установщика. Такая установка выполняется как пользователь.

См. Также
Ссылки
Последняя правка сделана 2021-06-02 11:51:25
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте