Путь:

Блог НовостиКак создать Portable версию любого приложения.

Статья опубликована достаточно давно и может некорректно отображаться либо содержать неточности и устаревшие данные.
4 3

Новости

Cameyo-Make-a-portable-version-of-any-software-470-x-342Недавно я натолкнулся на статью «Portable — вот она, радость», где было рассказано, как из практически любой программы можно сделать портируемую версию, которая будет запускаться без установки, записать ее на флешку и всегда носить с собой. В ход была пущена дорогостоящая утилита Thinstall. Позже этот проект был куплен компанией VMware, и весь его функционал сейчас представлен в приложении VMware ThinApp. Как и другие продукты этой компании, ThinApp занимается виртуализацией, а точнее — виртуализацией приложений. Задача такой операции в том, чтобы создать виртуальное окружение для отдельно взятого приложения.

Это приложение не должно подозревать о том, что запущено на другом компьютере; оно может, как и задумано разработчиками, обращаться к реестру, файловой системе и находить там ключи и файлы, которые были добавлены во время процедуры установки. Файлы приложения и все необходимые данные помещаются в единственный исполняемый .ЕХЕ-файл. Во время его запуска в системе развертывается виртуальное окружение, которое эмулирует нужные ключи реестра, DLL’ки, библиотеки сторонних разработчиков, всевозможные фреймворки, а приложение запускается, как ни в чем не бывало.

При этом никакие драйвера в систему не устанавливаются, в реестр изменения не вносятся — приложение полностью работает внутри виртуального окружения. Хороший подход, и ThinApp отлично его реализует, но одна загвоздка — решение стоит как минимум $6050. Не кисло, да?

Впрочем, аппетит компании, возможно, в скором времени утихнет, потому как в Сети недавно появилось реальная альтернатива для виртуализации приложений. Программа Cameyo делает ровно то же самое, что и ThinApp, с одной лишь разницей — ничего за это не просит. И знаешь, на месте VMware я бы начинал бояться. Сложно представить, как можно сделать процесс портирования еще проще, чем это реализовано в Cameyo. После установки из 1,5 Мб дистрибутива пользователю предлагается интерфейс с двумя кнопками: одна для создания нового контейнера, а другая — для модификации ранее созданных пакетов. Если нажать на первую (“Capture installation”) программа начнет делать слепок (snapshot) системы, сохраняя для себя состояние файловой системы и реестра — от этой информации ей придется отталкиваться.

Как только snapshot будет сделан, Cameyo предложит приступить к установке приложения, для которого необходимо сделать Portable-версию. Пусть это будет Opera, а для полноты картины — еще и Flash-плеер для нее, а также Java-плагин. Тут никаких заморочек, просто устанавливаем все, как обычно; если требуется перезагрузка — смело ребутимся (это корректно обрабатывается). Как только установка и настройка закончены, можно нажимать на кнопку «lnstall done». В этот момент Cameyo еще раз сделает слепок системы, чтобы сравнить, какие изменения произошли, и на основе этих данных создать Portable-пакет. Процесс может занять несколько минут, после чего программа обрадует сообщением «Package successfully created».

Вот, собственно, и все. Получившийся ЕХЕ’шник можно попробовать запустить на любой Windows-системе и убедиться, что и сам браузер, и все дополнительно установленные плагины работают. Можно записывать на флешку и без каких-либо проблем использовать на любом компьютере. Правда, есть один нюанс — в контейнер помещается довольно много различных данных, поэтому вес пакета может быть довольно внушительным. Например, получившийся у меня пакет с Opera 10.62 весит аж 139 Мб. Но тут есть секрет: если изучить содержимое контейнера, легко обнаружить в нем файлы, которые Cameyo поместил в него по ошибке, и на самом деле никакой необходимости в их виртуализации нет.

Скажем, в мой пакет с Opera попал файл с индексом Dropbox’a, который весит почти 15 Мб, а ведь это десятая часть всего объема получившегося пакета. Посмотреть, что находится внутри контейнера, и внести изменения можно через Cameyo, кликнув по второй (и последней) доступной кнопке «Edit existing package». На вкладках «Files» и «Registry» легко увидеть, какие файлы и ветки реестра эмулируются. При необходимости любой элемент можно удалить или наоборот, что-то добавить.

Интересная опция доступна на самой первой вкладке «General» — это «Isolation Mode». По умолчанию любое Portable-приложение работает полностью изолированно и не может вносить изменения в систему. Однако при необходимости режим пакета можно изменить на «Full Access», и тогда у программы появится полноценный доступ к файлам и реестру, как и у любого другого приложения. Помимо самого Cameyo, на сайте разработчика есть SDK для разработчика. С помощью простого API вполне реально автоматизировать процесс, полностью заточить его под свои нужды. С помощью простых функций легко получить список файлов внутри пакета, работать с ключами реестра, которые редактируются, и т.д. Короче говоря, все в твоих руках.

3 комментария к записи “Как создать Portable версию любого приложения.”

  1. punkWJ 05.11.2010, в 05:38

    Достаточно много занимался созданием портативного софта, но все же лучше, чем придумали создатели PortableApps.com технологии не нашлось — правда писать все приходитя вручную. А вот программки, типа Thinstall, очень уж «гадят» в системе после себя. Я перебрал несколько таких программ — эффект схожий: или остался мусор, или portable версия запускается не на всех машинах. Так что лучше «ручной работы» пока ничего не встречал.

    • Oxygene 25.05.2013, в 13:39

      Было бы великолепно, если бы поделились опытом или, хотя бы направили нужную сторону (что, где почитать)

    • Ололоша 07.10.2016, в 03:52

      Что помешало вам установить Thinstall и сделать Portable-версию программы Thinstall? С:

Не стоит держать это в себе!