Рубрика:
Администрирование /
Продукты и решения
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
АНДРЕЙ БЕШКОВ
Запуск Windows-приложений под Linux c помощью CrossOver Office
Для большинства людей сложность использования того или иного диалекта Linux в качестве рабочей станции состоит не только в том, что нужно пересесть на совершенно отличную от Windows систему, но и в отсутствии привычного окружения. Несмотря на впечатляющие успехи офисных программ из клана Open Office и Star Office, для многих и по сей день милее всех остается Microsoft Office. Почту большинство пользователей опять же любят читать ни чем иным, как The Bat или Outlook. Ну а бороздить просторы сетей подавляющее большинство простых людей предпочитает с помощью Internet Explorer. Никому нет дела до того, что это небезопасно, зато очень удобно. С точки зрения организаций, владеющих тем или иным количеством лицензий на Microsoft Office или какие-либо другие приложения, заточенные для работы сугубо под Windows, переход на Linux будет выбрасыванием на ветер денег, заплаченных за эти самые лицензии. Думаю, руководство предприятия не поймет такой расточительности. Самое интересное в данной ситуации то, что ни Microsoft, ни какой-либо другой производитель программного обеспечения не может запретить вам работать с их программами под управлением другой операционной системы. Иначе это будет нарушением антимонопольного законодательства. Максимум, что может сделать производитель в данной ситуации, – это отказать вам в предоставлении технической поддержки. Впрочем, о качестве этой самой поддержки говорить можно много и не обязательно будут сказаны хорошие слова.
Сегодня мы поговорим о том, как с помощью CrossOver Office запустить и успешно работать c вышеперечисленными, а также множеством других Windows-приложений под управлением Linux. В качестве основной операционной системы выбран ALT Linux Master 2.2. Впрочем, на всех остальных видах Linux все приемы, описанные ниже, должны работать так же легко.
Как обычно, для начала маленький экскурс в историю обсуждаемого вопроса. CrossOver Office построен на основе кода, унаследованного от открытого проекта WINE. В первую очередь он предназначался для запуска офисных приложений Windows-платформы, но постепенно превратился в нечто более мощное. Несмотря на свое название, предок CrossOver Office не имеет никакого отношения к виноделию и спиртным напиткам. Единственное предназначение WINE состоит в том, чтобы дать пользователям возможность запускать программы, написанные для Windows внутри Linux. Сокращение WINE расшифровывается следующим образом: «Wine Is Not Emulator», то есть создатели проекта категорически настаивают на том, что они не занимаются эмуляцией Windows. Выглядит это весьма странно, учитывая то, что WINE работает по технологии эмуляции API (Applications Programming Interface) операционных систем Win32. В тот момент, когда подопытная Windows-программа, запущенная под Linux, обращается к несуществующей операционной системе типа Windows с просьбой выполнить ту или иную функцию, WINE перехватывает аргументы, передаваемые программой в функцию. Затем происходит вызов своей собственной реализации этой функции, а по завершению результаты работы возвращаются в эмулируемую программу. Для того чтобы подобный ход событий стал возможен, добровольцам, участвующим в проекте, пришлось написать свои собственные UNIX-реализации для большинства часто используемых DLL Windows-систем. Объем проделанной работы огромен, и успешность данного предприятия поражает. Но, к сожалению, не все системные библиотеки хорошо документированы, поэтому часто приходится заниматься дизассемблированием и реверсивным инжинирингом проприетарного кода и только затем писать свой собственный, выполняющий те же действия. Такой метод разработки отнимает очень много сил и времени. Поэтому надеяться на то, что WINE или какая- либо другая система эмуляции API как по мановению волшебной палочки сможет запустить все сто процентов существующих Windows-программ не стоит. Особенно если учесть, что Windows-системы не замерли на одной точке своего жизненного цикла, а продолжают довольно динамично развиваться. Наверное, стоит подходить к вопросу о количестве Windows-программ, успешно запускаемых под Linux, более реалистично. Я бы сказал, что в случае, когда подопытная программа не использует каких-либо редких функций и не злоупотребляет защитой от копирования, вероятность того, что она запустится внутри эмулятора, равна примерно 70 процентам. В то же время стоит отметить один немаловажный факт, выгодно отличающий системы с эмуляцией API от систем полной эмуляции (в качестве распространенного примера которых можно говорить о широко известной VMWare Workstation). Скорость выполнения эмулируемой программы под управлением систем первого типа будет ниже на 1-2 процента по сравнению со скоростью работы в родной среде. Налицо мизерная потеря эффективности выполнения, которую пользователь вряд ли заметит. К сожалению, при работе с системами полной эмуляции добиться такого блестящего результата не удастся.
Если вам хотелось бы подробнее почитать о проекте WINE, то милости просим на сайт http://www.winehq.com. Что-то теоретическая часть статьи сегодня слегка затянулась, а раз так, то значит, нам пора переходить к активным наступательным действиям.
CrossOver Office, разрабатываемый компанией Code-weavers Inc, в отличие от WINE, не является бесплатным проектом на том простом основании, что включает в себя довольно много самописного программного обеспечения. В результате весь набор программ сильно выигрывает в удобстве и простоте использования при сравнении со своим прародителем. В то же время, реализации многих Win32-функций впервые появляющиеся в CrossOver Office, добровольно передаются в дар проекту WINE. Налицо полезный симбиоз, когда платный проект активно поддерживает движение свободного программного обеспечения.
Одна клиентская лицензия CrossOver Office на момент написания статьи стоила 54.95$. Для тех, кто любит точно знать, что покупает, есть тридцатидневный пробный период. Пробная версия ничем не отличается от платной, за исключением временного ограничения и редкого появления на экране вот такого уведомления.
Ее можно получить, если отправить запрос со следующей страницы: http://www.codeweavers.com/site/products/download_trial.
В течение нескольких минут по электронной почте придет письмо, содержащее URL, имя и пароль, пользуясь которыми, можно скачать инсталляционный пакет.
Получив файл install-crossover-office-demo-2.1.0.sh, даем ему право на выполнение. Скрипт, который мы только что скачали, самостоятельно произведет распаковку и установку всех нужных компонентов, поэтому не стоит удивляться, что размер его равен 11,2 Мб. Дальше возможны следующие варианты: если запустить установку от имени обычного пользователя, то право запускать Windows-программы появится только у этого конкретного пользователя, потому что все файлы будут установлены в директорию $HOME/cxoffice. Напомню, что под стандартным для UNIX-систем обозначением переменной $HOME понимается домашняя директория пользователя. Ну а если сделать это от имени пользователя root, то работать с CrossOver Office смогут все пользователи системы. А системные файлы разместятся в директории /opt/cxoffice. Лично мне больше подходит второй вариант, поэтому в дальнейшем предполагается, что инсталляция будет проходить с правами пользователя root. Но пользоваться такими правами мы будем только до тех пор, пока это необходимо.
Ну а если вам удалось скачать платную версию, то устанавливать ее нужно вот такой командой:
rpm -Uhv cxoffice-2.0.1-1.i386.rpm
В остальном же процедура установки обоих видов пакета ничем не отличается.
После запуска инсталляции на экране появится довольно интересное лицензионное соглашение. Можно просто нажать кнопку «I Agree», выразив тем самым свое согласие с предлагаемыми условиями, а лучше внимательно прочитать. Через некоторое время вы сможете заметить, что человек, составлявший соглашение, обладал довольно развитым чувством юмора.
Сразу после принятия лицензионного соглашения нам будет предложено указать директорию, где должны расположиться системные файлы CrossOver Office. По умолчанию предлагается использовать для этих целей /opt/cxoffice.
Мы снова согласимся, и, к всеобщему облегчению, начнется копирование файлов. После того как этот процесс будет завершен, на экране появится окошко, изображенное на следующем рисунке.
Терпеливо ждем, пока система выполнит все необходимые действия, и ни в коем случае не пытаемся вмешаться в ход событий. В зависимости от скоростных характеристик машины, на которой происходит процесс, ожидание может затянуться вплоть до 10 минут. Затем, приняв поздравления с удачным завершением установки, нажимаем кнопки «OK» и «Exit».
Во многих современных Linux-системах используется ядро, модифицированное для того, чтобы уменьшить ущерб, наносимый вредоносными программами, которые активно используют технику срыва стека. По умолчанию на все исполняемые файлы устанавливается флаг, запрещающий работу с исполняемым стеком. Таким образом, получается, что если злоумышленник вызовет срыв стека, программа рухнет, но не станет выполнять код, записанный в стек в результате атаки. Большинству программ функции исполнения кода в стеке не нужны для нормальной работы. Но некоторые программы, и CrossOver Office в частности, могут не работать в таких системах. Проверим, установлен ли флаг исполняемого стека на программу wineloader, которая используется для запуска Windows-приложений.
# chstk -v /opt/cxoffice/bin/wineloader
/opt/cxoffice/bin/: Non-executable stack area |
Судя по выводу, очевидно, нужный флаг не установлен. Думаю, всем понятно, что его необходимо установить.
# chstk -e /opt/cxoffice/bin/wineloader
И обязательно проверить успешность такого действия.
# chstk -v /opt/cxoffice/bin/wineloader
/opt/cxoffice/bin/: Executable stack area |
После этого можно закрыть сеанс пользователя root, так как его права нам больше не понадобятся.
Входим в систему от имени пользователя, который в дальнейшем будет работать с Windows-приложениями. Если внимательно посмотреть на меню оконного менеджера, то можно заметить, что там добавилось подменю CrossOver Office.
А после установки первого Windows-приложения появится еще и меню Windows Applications. Думаю, назначение обоих вышеназванных объектов очевидно для всех. Настало время сделать так:
$ /opt/cxoffice/bin/officesetup
Или воспользоваться пунктом меню Office Setup. В ответ начнет работать программа пользовательской установки.
Если для доступа в Интернет используется прокси-сервер, то нужно вписать его адрес и порт в соответствующие поля диалогового окна, иначе автоматически скачать нужное программное обеспечение будет затруднительно.
В домашней директории пользователя появится папка .cxoffice, в которую будет скопирован минимальный набор директорий и файлов, необходимый для запуска Windows-приложений.
А тем временем на экране появится главное окно программы officesetup, пользуясь которой, мы будем управлять всей системой CrossOver Office.
В верхнем списке отображаются пакеты, уже установленные в систему. Хотя этот список не всегда отображает реальное состояние дел.
Все программное обеспечение делится на две категории: официально поддерживаемое и его антипод – неподдерживаемое. Официальные пакеты протестированы и должны надежно, насколько это слово применимо к Windows-программам, работать под управлением CrossOver Office. Ну а неофициальные мы будем инсталлировать на свой страх и риск, и никто не даст гарантии, что это потом будет работать. Впрочем, волшебную силу шаманского бубна еще никто не отменил, так что отчаиваться не стоит. Лично мне удалось запустить почти все программы, которые я привык часто использовать под Windows.
Первым делом нужно установить DCOM95. Для этого жмем кнопку «Install» и в появившемся списке официально поддерживаемых приложений выбираем этот пакет.
Как обычно, жмем кнопку «Next». На следующем экране надо выбрать тип инсталляции. Экспресс-установка хороша тем, что нужные файлы будут скачаны из сети автоматически. В большинстве случаев желательно пользоваться именно этим способом.
Ну а если с доступом в Интернет с этой машины у нас какие-либо проблемы, можно воспользоваться процедурой Advanced install, с помощью которой есть возможность узнать, откуда будут скачиваться файлы, и вытащить их оттуда вручную. Скачать DCOM95 можно отсюда: http://www.microsoft.com/com/dcom/dcom95/download.asp. Или воспользоваться сервисом filesearch.ru.
Затем перенести его на нашу машину и принудительно указать, где находится то, что нужно. Хотя тут программисты из команды Codeweavers допустили ошибку. На следующей картинке ее очень хорошо видно. Несмотря на то, что я точно указал, где на локальном диске находятся файлы инсталлятора, кнопка «Next» остается неактивной. Конечно, всплывает эта ошибка не каждый раз, иначе она была бы уже давным-давно исправлена.
Но и на эту беду есть свое лечение. С помощью кнопки «Prev» возвращаемся к первому шагу и выбираем флажок «Install unsupported software» и, пройдя этой веткой установки, указываем, где лежит выполняемый файл.
В общем, тем или иным способом сообщив системе, где брать файлы, нажимаем на многострадальную кнопку «Next». Через некоторое время на экране появится вот такое окошко:
Жмем на кнопку «Да», затем принимаем лицензионное соглашение. И подождав, пока завершится копирование файлов, получаем вот такую ошибку:
На самом деле ничего страшного не произошло. Просто нам намекают, что для нашей версии Windows нужен DCOM98. Хотя это, конечно, неправда, все нужные файлы уже установились в директорию: $HOME/.cxoffice/dotwine/fake_windows/Windows/System/dcom95/.
Теперь осталось смотреть на следующую картинку и терпеливо ждать, пока система выполнит все нужные действия.
Хотя иногда встречается программное обеспечение, которое зацикливается на этом этапе. Тогда, чтобы закончить инсталляцию, приходится воспользоваться кнопкой «Installer is finished». Ярким примером такого вида программ служит Microsoft Office 2000 Service Pack 2. Хотя, конечно, это способ из разряда экстремальных, и лучше им никогда не пользоваться, потому что в результате этого может полностью разрушиться имеющаяся инсталляция CrossOver Office.
Воспользовавшись опцией «View installed associations», можно увидеть, обработчиком каких расширений файлов и MIME-типов объявила себя установленная программа. Например, Microsoft Power Point может заявить себя обработчиком файлов типа *.ppt.
Кстати, если отключить опцию «Remove installer files», то все дистрибутивные файлы, что были скачаны из сети, останутся в директории: $HOME/.cxoffice/installers/. Иногда для экономии трафика такая возможность бывает очень полезна.
Завершаем инсталляцию нажатием кнопки «Finish» и возвращаемся в главное окно программы. Теперь, если нажать на кнопку «Install» и посмотреть в список приложений, мы сможем увидеть, что DCOM95 помечен звездочкой, обозначающей, что этот компонент уже установлен. Думаю, для вас не составит труда самостоятельно разыскать в сети и установить DCOM98, о необходимости которого нам недавно намекали. А я тем временем перейду к установке TTF-шрифтов, наиболее подходящих для Windows-приложений. Надеюсь, что, пользуясь вышеописанной методикой, вы понимаете, как это сделать. Проблема в том, что каждый шрифт инсталлируется отдельно, так что придется одиннадцать раз выполнить процедуру инсталляции. Не совсем понятно, почему сделано именно так, но другого пути, видимо, нет.
Закончив все предварительные операции, начнем установку Microsoft Office 2000. Я использовал именно его, потому что Office XP в тот момент под рукой не было. Хотя впоследствии для теста он был установлен вместо Office 2000.
Итак, приступим. В списке приложений выбираем Office 2000, вставляем в CD-ROM диск с Microsoft Office 2000 и указываем источник инсталляции.
А в ответ получаем вот такое предупреждение.
Жмем кнопку «Detail» для того, чтобы узнать, в чем проблема, и получаем следующее объяснение.
Проблема в том, что некоторые из файлов дистрибутива специально помечены как скрытые, и настройки файловой системы для устройства CD-ROM, которые записаны в /etc/fstab, не позволяют их увидеть. Конечно, можно нажать кнопку «Proceed despite likely error», тем самым проигнорировав все предупреждения, но тогда на удачное завершение инсталляции надеяться не стоит. Поэтому воспользуемся кнопкой «Fix». В ответ на наше действие запустится скрипт /opt/cxoffice/bin/unhide_fstab, который внесет необходимые изменения в файл /etc/fstab. Того же самого результата можно добиться, если в том самом файле собственноручно исправить запись, описывающую устройство /dev/cdrom, так чтобы она выглядела следующим образом:
/dev/cdrom /mnt/cdrom auto unhide,user,iocharset=koi8-r,exec,ro,noauto 0 0
Ключевая опция, из-за которой случились все эти недоразумения, называется «unhide».
После добавления ее в описание файловой системы в большинстве диалектов Linux все должно заработать как положено. На самом деле лично мне этот трюк не помог по той простой причине, что в ALT Linux для монтирования сменных носителей используется подсистема autofs, управляющая демонами automount. Таким образом, получается, что файл /etc/fstab не имеет никакого отношения к реальному механизму работы со сменными носителями. Поэтому мы открываем файл /etc/auto.tab и приводим строку, отвечающую за /dev/cdrom к такому виду:
cdrom -fstype=auto,unhide,ro,iocharset=koi8-r :/dev/cdrom
Для того чтобы изменения вступили в силу, перезапускаем демона autofs, выполняя команду:
# service autofs restart
Вот теперь можно вернуться к установке Microsoft Office 2000. Вместе с офисными приложениями по умолчанию будет установлен и Microsoft Internet Explorer. После всех этих манипуляций установка должна пройти гладко как по маслу. В принципе этого и стоило ожидать. Единственным интересным моментом тут можно назвать точку в инсталляции, когда копирование и установка файлов закончены и необходимо выполнить перезагрузку Windows. CrossOver Office обычно довольно хорошо распознает такие моменты и самостоятельно запускает скрипт /opt/cxoffice/bin/cxreboot. Как это выглядит, вы можете видеть на следующем снимке.
По завершении установки можно посмотреть, обработчиками каких типов файлов объявили себя свежеустановленные приложения.
Как вы смогли заметить, файлы типа *.doc теперь привязаны к приложению winword.exe. Налюбовавшись полным списком приложений и связанных с ними типов файлов, стоит обязательно обратить внимание на колонку «Enabled», которая показывает, включена ли данная ассоциация.
Кстати, стоит упомянуть, что вдовесок к Microsoft Office 2000 будут автоматически установлены Mplayer, Internet Explorer 5.0, Outlook Express и куча прочего вспомогательного обеспечения.
А на следующем снимке экрана вы можете посмотреть, как выглядит Microsoft Word под управлением Linux. Как видите, кроме оформления окна, программа выглядит точно так же, как если бы она работала под Windows. Я думаю, это очень впечатляет.
Все остальные только что установленные офисные приложения работают также на редкость хорошо. Налюбовавшись на дело рук своих, продолжаем изучать CrossOver Office. Вкладка интерфейса «Menus» показывает, какие пункты меню добавило приложение в систему. Пользуясь кнопками, расположенными возле каждого пункта списка, можно легко управлять этими меню. Как вы смогли заметить, названия меню, написанные кириллицей в кодировке cp-1251 и автоматически конвертированные в UTF-8, выглядят не очень хорошо. И самый неприятный факт состоит в том, что я пока не нашел, где хранятся строки, отображаемые в качестве названий меню на следующем рисунке.
А из этих строк создаются названия для меню оконного менеджера, которые хранятся в файле $HOME/.menu/cxoffice. А так как кодировка не совпадает, то и производные от него меню тоже получаются кривыми. Как временное решение можно выполнить конвертирование из кодировки cp-1251 в utf-8 и затем пересоздание меню оконного менеджера. Добиться этого можно следующими командами.
$ iconv -f cp-1251 -t utf-8 $HOME/.menu/cxoffice > $HOME/.menu/cxoffice
$ update-menus –n –u
Переходим к следующей вкладке интерфейса программы officesetup.
Здесь у нас находятся глобальные настройки Windows-системы. Первым делом можно настроить опцию My Documents так, чтобы Windows-программы думали, что папка C://Мои документы находится в /home/tigrisha/Documents. Таким образом, все офисные документы будут храниться там, где это принято в Linux-системах. Следующая опция Browsers позволяет назначить интернет-браузер, используемый по умолчанию Windows-приложениями. Сразу же после инсталляции таковым назначен Internet Explorer, но никто не мешает выбрать для этой роли какую-либо другую программу. Например, родной для Linux браузер Mozilla. Еще ниже находится кнопка «Online Update». Самые догадливые читатели уже поняли, что она позволяет скачать с сайта codeveawers.com новейший список официально поддерживаемых приложений.
При нажатии кнопки «Advanced» мы видим еще несколько настроек. Первая из них указывает, где находятся бинарные файлы, динамически загружаемые библиотеки и TTF-шрифты. Эта опция позволяет поставить в систему несколько разных инсталляций CrossOver или WINE и безболезненно переключаться между ними в поисках именно той версии, которая будет лучше всего работать с нашими Windows-приложениями. Настройки http прокси-сервера пропускаем, потому что работать с ними проще простого. А вот следующая опция уже гораздо интереснее. Outlook Security позволяет указать, какие типы файлов, присоединенные к электронным письмам, запрещено открывать. Всем известно, что Outlook дыряв, как решето, и позволяет злоумышленнику создать письмо с присоединенным файлом, который по получению будет автоматически выполнен. Умело пользуясь вышеуказанной опцией, мы сможем сделать работу с почтой гораздо безопаснее.
Закончив с установкой официально поддерживаемых программ, перейдем к работе с неофициальными. В качестве примера можно взять The Bat. Инсталляция проходит без особых проблем, за исключением одной мелочи. На экране появляется вот такое окно, и висеть оно будет здесь бесконечно. Проблема в том, что за окном с логотипом летучей мыши скрыто диалоговое окно с вопросом, стоит ли привязать к этому приложению обработку файлов с расширением vcf, msg.
И самое веселое то, что фокус ввода находится именно в окне с логотипом, так что нажатие клавиши «Enter» ничего не даст. Поэтому придется схватить нужное нам окно за левый верхний угол, вытянуть его на свет божий. Окно с логотипом исчезнет только после того, как мы ответим на все вопросы, задаваемые инсталлятором. После удачной инсталляции и первого запуска The Bat нужно закрыть и дождаться, пока CrossOver Office завершит все служебные процедуры. Затем желательно провести перезагрузку Windows c помощью запуска скрипта /opt/cxoffice/bin/cxreboot. На экран начнут сыпаться сообщения, подобные этим:
Processing Wininit.ini file renaming wininit.ini file Building list from SoftwareMicrosoftWindowsCurrentVersionRunOnce adding L"C:WINDOWSDesktopThe Bat!.LNK" and L"C:WINDOWSSYSTEMwinemenubuilder.exe "C:WINDOWSDesktopThe Bat!.LNK"" adding L"C:WINDOWSStart MenuProgramsThe Bat!.LNK" and L"C:WINDOWSSYSTEMwinemenubuilder.exe "C:WINDOWSStart MenuProgramsThe Bat!.L"... Running command L"C:WINDOWSDesktopThe Bat!.LNK" (L"C:WINDOWSSYSTEMwinemenubuilder.exe "C:WINDOWSDesktopThe Bat!.LNK"") Running command L"C:WINDOWSStart MenuProgramsThe Bat!.LNK" (L"C:WINDOWSSYSTEMwinemenubuilder.exe "C:WINDOWSStart MenuProgramsThe Bat!.L"...) not well-formed (invalid token) at line 45, column 569, byte 1957 at /usr/lib/perl5/vendor_perl/i386-linux/XML/Parser.pm line 187 Finished execution Removing list values from SoftwareMicrosoftWindowsCurrentVersionRunOnce trying to delete L"C:WINDOWSDesktopThe Bat!.LNK" trying to delete L"C:WINDOWSStart MenuProgramsThe Bat!.LNK" Building list from SoftwareMicrosoftWindowsCurrentVersionRunOnce No commands. Done |
|
Обязательно дождитесь появления надписи «No commands. Done». И только после этого можно будет полноценно работать с установленной программой. На следующем экране можно увидеть довольно хорошо функционирующий экземпляр The Bat.
Кстати, обратите внимание на то, что вокруг кнопок инструментальной панели появились дыры, через которые виден фон. К сожалению, могу сказать, что это не единственное неудобство, встреченное мной при работе с The Bat под CrossOver Office. Вторая проблема состоит в том, что программа, используемая для русификации The Bat и называемая Internation Pack, устанавливается нормально, но после этого ни одно меню в почтовом клиенте уже не работает. Так что, пока программа русификации будет так себя вести, придется обходиться только английским языком. В остальном же все работает нормально.
Иногда случается так, что устанавливаемая программа не создает никаких меню и не выкладывает на рабочий стол своих ярлыков. В таком случае нам нужно научиться самостоятельно создать пункт меню оконного менеджера или ярлык. Но первым делом стоит изыскать возможности запускать установленную программу. Итак, представим, что наша подопытная программа установилась в папку C:/Program Files/QuickViewer/, а исполняемый файл называется viewer.exe. Самый простой – хотя и самый медленный – способ запустить данное приложение – это подать команду:
$ /opt/cxoffice/bin/wine –-cx-app viewer.exe
Читатель может спросить, почему вышеуказанный способ является самым медленным. Все очень просто: мы ведь не указали, где находится папка, в которой хранится выполняемый файл приложения, и теперь CrossOver Office вынужден обыскать все папки нашей поддельной Windows-системы. Область поиска можно существенно сузить с помощью ключа --workdir и имени директории:
$ /opt/cxoffice/bin/wine --workdir "/home/tigrisha/.cxoffice/dotwine/fake_windows/Program Files/QuickViewer" "C://Program Files//QuickViewer//viewer.exe"
Вот этот способ работает более быстро за счет четкого указания пути и рабочей директории программы. А без ключа --cx-app можно вполне неплохо обойтись. Для удачного запуска многих программ указывать рабочую директорию не обязательно, хотя есть такие экземпляры, которые без этого параметра никогда не будут работать. Конечно, лучше всего передавать этот параметр для каждой выполняемой программы, нам это ничего не стоит, а им приятно.
Иногда случается так, что Windows-программа бывает доступна вместе с исходным кодом, тогда ее можно скомпилировать для работы в Unix-системе, используя вместо родных функций реализации функций из библиотеки winelib. Среди пользователей wine такие программы называются соответственно winelib-программами. Приятной особенностью приложений такого типа является возможность работать самостоятельно без применения wine. В то же время wine умеет запускать и такие приложения. Предположив, что программа из предыдущего примера создана с помощью winelib, выполняем ее следующей командой:
$ /opt/cxoffice/bin/wine –wl-app viewer.exe
Впрочем, вряд ли кому-либо из вас придется часто пользоваться winelib-программами. Все-таки сообщество Windows-разработчиков в силу другого восприятия мира нечасто свободно раздает исходные коды своих разработок.
Есть еще один способ запускать приложения. С помощью ключа командной строки --ux-app Wine может выполнять настоящие Unix-приложения. Для чего это сделано, лично мне не понятно, но, видимо, разработчикам такая возможность показалась жизненно необходимой.
Итак, мы научились самостоятельно запускать Windows-приложения. Теперь нужно создать соответствующий нашей программе пункт меню. Сделать это можно несколькими способами. С помощью программы /opt/cxoffice/bin/cxmenu или просто отредактировав файл $HOME/.menu/cxoffice и добавив в него нужную запись. Или создать нужные файлы в директориях, где хранятся настройки вашего оконного менеджера. Например, для KDE нужно создать файл «имя приложения.desktop» в папке $HOME/.kde/share/applnk/ следующего содержания:
# KDE Config File
[Desktop Entry]
Name=Super Fast Graphic Viewer
Exec="/opt/cxoffice/bin/wine" --workdir "/home/tigrisha/.cxoffice/dotwine/fake_windows/Program Files/QuickViewer"
"C://Program Files//QuickViewer//viewer.exe"
Type=Application
Comment=Super Fast Viewer
X-Created-by=CrossOver Office
Icon=/home/tigrisha/.cxoffice/dotwine/fake_windows/Windows/Icons/0050046416b9.14.xpm
А для Gnome нужно положить в директорию $HOME/.gnome2/applications/ файл «имя приложения.desktop» со следующими данными:
[Desktop Entry]
Name= Super Fast Graphic Viewer
Type=Application
Exec="/opt/cxoffice/bin/wine" --workdir "/home/tigrisha/.cxoffice/dotwine/fake_windows/Program Files/QuickViewer"
"C://Program Files//QuickViewer//viewer.exe"
X-Created-by=cxoffice
Icon=/home/tigrisha/.cxoffice/dotwine/fake_windows/Windows/Icons/0050046416b9.14.xpm
После всех этих манипуляций для того, чтобы изменения вступили в силу, нужно подать команду:
$ update-menus –n –u
Наверно, самые внимательные читатели уже задались вопросом, почему мы используем в качестве иконок для приложений картинки в формате xpm.
Все дело в том, что во время инсталляции CrossOver Office производит конвертацию значков из формата ico в xpm и кладет их в директорию $HOME/.cxoffice/dotwine/fake_windows/Windows/Icons/ со случайными именами. Видимо, это сделано для того, чтобы не связываться с проприетарным форматом ico. Впрочем, я думаю, вам не составит труда определить с помощью любого просмотрщика картинок, какая иконка принадлежит нужному приложению, и соответственно привязать ее куда нужно.
В следующей статье мы рассмотрим более подробно внутреннее строение CrossOver Office и трюки, применяемые при попытке запустить неподдерживаемые приложения. Также будут описаны методы, применяемые для отладки и трассировки процесса эмуляции, и приемы, позволяющие понять, чего именно не хватает Windows-приложениям.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|