В одном из уже давнишних номеров у нас была статья "Portable - вот она, радость", где мы рассказывали, как из практически любой программы можно сделать портируемую версию, которая будет запускаться без установки, записать ее на флешку и всегда носить с собой. В ход тогда была пущена дорогостоящая утилита Thinstall. Позже этот проект был куплен компанией VMware, и весь его функционал сейчас представлен в приложении VMware ThinApp. Как и другие продукты этой компании, ThinApp занимается виртуализацией, а точнее - виртуализацией приложений. Задача такой операции в том, чтобы создать виртуальное окружение для отдельно взятого приложения. Это приложение не должно подозревать о том, что запущено на другом компьютере; оно может, как и задумано разработчиками, обращаться к реестру, файловой системе и находить там ключи и файлы, которые были добавлены во время процедуры установки. Файлы приложения и все необходимые данные помещаются в единственный исполняемый .ЕХЕ-файл. Во время его запуска в системе развертывается виртуальное окружение, которое эмулирует нужные ключи реестра. DDL'ки, библиотеки сторонних разработчиков, всевозможные фреймворки, а приложение запускается как ни в чем не бывало. При этом никакие драйвера в систему не устанавливаются, в реестр изменения не вносятся - приложение полностью работает внутри виртуального окружения. Хороший подход, и ThinApp отлично его реализует, но одна загвоздка - решение стоит как минимум $6050. Не кисло, да? Впрочем, аппетит компании, возможно, в скором времени утихнет, потому как в Сети недавно появилась реальная альтернатива для виртуализации приложений. Программа Cameyo (
www.cameyo.com) делает ровно то же самое, что и ThinApp, с одной лишь разницей - ничего за это не просит. И знаешь, на месте VMware я бы начинал бояться. Сложно представить, как можно сделать процесс портирования еще проще, чем это реализовано в Cameyo. После установки из 1.5 Мб дистрибутива пользователю предлагается интерфейс с двумя кнопками: одна для создания нового контейнера, а другая - для модификации ранее созданных пакетов. Если нажать на первую ("Capture installation"), программа начнет делать слепок (snapshot) системы, сохраняя для себя состояние файловой системы и реестра - от этой информации ей придется отталкиваться. Как только snapshot будет сделан, Cameyo предложит приступить к установке приложения, для которого необходимо сделать Portable-версию. Пусть это будет Opera, а для полноты картины - еще и Flash-плеер для нее, а также Java-плагин. Тут никаких заморочек, просто устанавливаем все как обычно; если требуется перезагрузка - смело ребутимся (это корректно обрабатывается). Как только установка и настройка закончены, можно нажимать на кнопку "Install 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 вполне реально автоматизировать процесс, полностью заточить его под свои нужды. С помощью простых функций легко получить список файлов внутри пакета, работать с ключами реестра, которые редактируются и т.д. Короче говоря, все в твоих руках.