Запуск Windows приложений под Linux с помощью 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, то милости просим на сайт www.winehq.com. Что-то теоретическая часть статьи сегодня слегка затянулась, а раз так, то значит, нам пора переходить к активным наступательным действиям.
CrossOver Office, разрабатываемый компанией Code-weavers Inc, в отличие от WINE, не является бесплатным проектом на том простом основании, что включает в себя довольно много самописного программного обеспечения. В результате весь набор программ сильно выигрывает в удобстве и простоте использования при сравнении со своим прародителем. В то же время, реализации многих Win32-функций впервые появляющиеся в CrossOver Office, добровольно передаются в дар проекту WINE. Налицо полезный симбиоз, когда платный проект активно поддерживает движение свободного программного обеспечения.
 
Одна клиентская лицензия CrossOver Office на момент написания статьи стоила 54.95$. Для тех, кто любит точно знать, что покупает, есть тридцатидневный пробный период. Пробная версия ничем не отличается от платной, за исключением временного ограничения и редкого появления на экране вот такого уведомления.
   
 

Image
Image

  
     
Ее можно получить, если отправить запрос со следующей страницы: 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», выразив тем самым свое согласие с предлагаемыми условиями, а лучше внимательно прочитать. Через некоторое время вы сможете заметить, что человек, составлявший соглашение, обладал довольно развитым чувством юмора.
   
   

Image
Image

   
Сразу после принятия лицензионного соглашения нам будет предложено указать директорию, где должны расположиться системные файлы CrossOver Office. По умолчанию предлагается использовать для этих целей /opt/cxoffice.
   
   

Image
Image

      
Мы снова согласимся, и, к всеобщему облегчению, начнется копирование файлов. После того как этот процесс будет завершен, на экране появится окошко, изображенное на следующем рисунке.
   
   

Image
Image

      
Терпеливо ждем, пока система выполнит все необходимые действия, и ни в коем случае не пытаемся вмешаться в ход событий. В зависимости от скоростных характеристик машины, на которой происходит процесс, ожидание может затянуться вплоть до 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. 
   
   

Image
Image

      
А после установки первого Windows-приложения появится еще и меню Windows Applications. Думаю, назначение обоих вышеназванных объектов очевидно для всех. Настало время сделать так: 
   
$ /opt/cxoffice/bin/officesetup   
   
Или воспользоваться пунктом меню Office Setup. В ответ начнет работать программа пользовательской установки.
   
   

Image
Image

      
Если для доступа в Интернет используется прокси-сервер, то нужно вписать его адрес и порт в соответствующие поля диалогового окна, иначе автоматически скачать нужное программное обеспечение будет затруднительно.
 
В домашней директории пользователя появится папка .cxoffice, в которую будет скопирован минимальный набор директорий и файлов, необходимый для запуска Windows-приложений. 
А тем временем на экране появится главное окно программы officesetup, пользуясь которой, мы будем управлять всей системой CrossOver Office. 
   
   

Image
Image

   
В верхнем списке отображаются пакеты, уже установленные в систему. Хотя этот список не всегда отображает реальное состояние дел.
 
Все программное обеспечение делится на две категории: официально поддерживаемое и его антипод неподдерживаемое. Официальные пакеты протестированы и должны надежно, насколько это слово применимо к Windows-программам, работать под управлением CrossOver Office. Ну а неофициальные мы будем инсталлировать на свой страх и риск, и никто не даст гарантии, что это потом будет работать. Впрочем, волшебную силу шаманского бубна еще никто не отменил, так что отчаиваться не стоит. Лично мне удалось запустить почти все программы, которые я привык часто использовать под Windows.
 

Первым делом нужно установить DCOM95. Для этого жмем кнопку «Install» и в появившемся списке официально поддерживаемых приложений выбираем этот пакет.
   
   

Image
Image

     
Как обычно, жмем кнопку «Next». На следующем экране надо выбрать тип инсталляции. Экспресс-установка хороша тем, что нужные файлы будут скачаны из сети автоматически. В большинстве случаев желательно пользоваться именно этим способом. 
   
   

Image
Image

     
Ну а если с доступом в Интернет с этой машины у нас какие-либо проблемы, можно воспользоваться процедурой Advanced install, с помощью которой есть возможность узнать, откуда будут скачиваться файлы, и вытащить их оттуда вручную. Скачать DCOM95 можно отсюда: www.microsoft.com/com/dcom/dcom95/download.asp. Или воспользоваться сервисом filesearch.ru.
 
Затем перенести его на нашу машину и принудительно указать, где находится то, что нужно. Хотя тут программисты из команды Codeweavers допустили ошибку. На следующей картинке ее очень хорошо видно. Несмотря на то, что я точно указал, где на локальном диске находятся файлы инсталлятора, кнопка «Next» остается неактивной. Конечно, всплывает эта ошибка не каждый раз, иначе она была бы уже давным-давно исправлена.
   
   

Image
Image

      
Но и на эту беду есть свое лечение. С помощью кнопки «Prev» возвращаемся к первому шагу и выбираем флажок «Install unsupported software» и, пройдя этой веткой установки, указываем, где лежит выполняемый файл. 
   

Image
Image

   
   
В общем, тем или иным способом сообщив системе, где брать файлы, нажимаем на многострадальную кнопку «Next». Через некоторое время на экране появится вот такое окошко:
   

Image
Image

   
  
Жмем на кнопку «Да», затем принимаем лицензионное соглашение. И подождав, пока завершится копирование файлов, получаем вот такую ошибку:
   
   

Image
Image

  
На самом деле ничего страшного не произошло. Просто нам намекают, что для нашей версии Windows нужен DCOM98. Хотя это, конечно, неправда, все нужные файлы уже установились в директорию: $HOME/.cxoffice/dotwine/fake_windows/Windows/System/dcom95/.
 
Теперь осталось смотреть на следующую картинку и терпеливо ждать, пока система выполнит все нужные действия. 
   
   

Image
Image

   
Хотя иногда встречается программное обеспечение, которое зацикливается на этом этапе. Тогда, чтобы закончить инсталляцию, приходится воспользоваться кнопкой «Installer is finished». Ярким примером такого вида программ служит Microsoft Office 2000 Service Pack 2. Хотя, конечно, это способ из разряда экстремальных, и лучше им никогда не пользоваться, потому что в результате этого может полностью разрушиться имеющаяся инсталляция CrossOver Office.
   
   

Image
Image

   
Воспользовавшись опцией «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 и указываем источник инсталляции. 
   
   

Image
Image

     
А в ответ получаем вот такое предупреждение. 
   
   

Image
Image

   
Жмем кнопку «Detail» для того, чтобы узнать, в чем проблема, и получаем следующее объяснение. 
   
   

Image
Image

      
Проблема в том, что некоторые из файлов дистрибутива специально помечены как скрытые, и настройки файловой системы для устройства 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. Как это выглядит, вы можете видеть на следующем снимке.
   
   

Image
Image

      
По завершении установки можно посмотреть, обработчиками каких типов файлов объявили себя свежеустановленные приложения.
   
   

Image
Image

          
Как вы смогли заметить, файлы типа *.doc теперь привязаны к приложению winword.exe. Налюбовавшись полным списком приложений и связанных с ними типов файлов, стоит обязательно обратить внимание на колонку «Enabled», которая показывает, включена ли данная ассоциация.
 
Кстати, стоит упомянуть, что вдовесок к Microsoft Office 2000 будут автоматически установлены Mplayer, Internet Explorer 5.0, Outlook Express и куча прочего вспомогательного обеспечения.
 
А на следующем снимке экрана вы можете посмотреть, как выглядит Microsoft Word под управлением Linux. Как видите, кроме оформления окна, программа выглядит точно так же, как если бы она работала под Windows. Я думаю, это очень впечатляет.

Image
Image

 
Все остальные только что установленные офисные приложения работают также на редкость хорошо. Налюбовавшись на дело рук своих, продолжаем изучать CrossOver Office. Вкладка интерфейса «Menus» показывает, какие пункты меню добавило приложение в систему. Пользуясь кнопками, расположенными возле каждого пункта списка, можно легко управлять этими меню. Как вы смогли заметить, названия меню, написанные кириллицей в кодировке cp-1251 и автоматически конвертированные в UTF-8, выглядят не очень хорошо. И самый неприятный факт состоит в том, что я пока не нашел, где хранятся строки, отображаемые в качестве названий меню на следующем рисунке.
  
   

Image
Image

   
А из этих строк создаются названия для меню оконного менеджера, которые хранятся в файле $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 новейший список официально поддерживаемых приложений.
   

Image
Image

   
   
При нажатии кнопки «Advanced» мы видим еще несколько настроек. Первая из них указывает, где находятся бинарные файлы, динамически загружаемые библиотеки и TTF-шрифты. Эта опция позволяет поставить в систему несколько разных инсталляций CrossOver или WINE и безболезненно переключаться между ними в поисках именно той версии, которая будет лучше всего работать с нашими Windows-приложениями. Настройки http прокси-сервера пропускаем, потому что работать с ними проще простого. А вот следующая опция уже гораздо интереснее. Outlook Security позволяет указать, какие типы файлов, присоединенные к электронным письмам, запрещено открывать. Всем известно, что Outlook дыряв, как решето, и позволяет злоумышленнику создать письмо с присоединенным файлом, который по получению будет автоматически выполнен. Умело пользуясь вышеуказанной опцией, мы сможем сделать работу с почтой гораздо безопаснее.
Закончив с установкой официально поддерживаемых программ, перейдем к работе с неофициальными. В качестве примера можно взять The Bat. Инсталляция проходит без особых проблем, за исключением одной мелочи. На экране появляется вот такое окно, и висеть оно будет здесь бесконечно. Проблема в том, что за окном с логотипом летучей мыши скрыто диалоговое окно с вопросом, стоит ли привязать к этому приложению обработку файлов с расширением vcf, msg.
   
   

Image
Image

   
И самое веселое то, что фокус ввода находится именно в окне с логотипом, так что нажатие клавиши «Enter» ничего не даст. Поэтому придется схватить нужное нам окно за левый верхний угол, вытянуть его на свет божий. Окно с логотипом исчезнет только после того, как мы ответим на все вопросы, задаваемые инсталлятором. После удачной инсталляции и первого запуска The Bat нужно закрыть и дождаться, пока CrossOver Office завершит все служебные процедуры. Затем желательно провести перезагрузку Windows c помощью запуска скрипта /opt/cxoffice/bin/cxreboot. На экран начнут сыпаться сообщения, подобные этим:
   
   

Image
Image

   
Обязательно дождитесь появления надписи «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. Впрочем, я думаю, вам не составит труда определить с помощью любого просмотрщика картинок, какая иконка принадлежит нужному приложению, и соответственно привязать ее куда нужно.

Комментарии: 0
Ваш комментарий