14.09.13

Установка Office 2007 в Wine

Осень - пора унылая, и, чтобы не сдохнуть от скуки, захотелось что-то поменять в окружающей обстановке. Ремонт в квартире уже в процессе, обновлять железо на компе в планах не было - наоборот, появилась идея толкнуть все старые компы и взять ноутбук. Все это требует некоторых капиталовложений, посему решил поменять ОС.




Основным толчком послужило то, что 95% людей, работающих в моем коллективе пользуются Ubuntu, включая удаленных работников и приходящих фрилансеров. Поэтому в голове стрельнула мысль, из-за которой вероятно бОльшая часть современных линуксоидов появилась на свет: "Если они могут, то чем я хуже?". Образ скачан, нарезан и установлен. Т.к. это моя не первая попытка перейти на линукс (во время гарантийной замены умершего HDD, почти месяц работал на Mandriva с флешки), с интерфейсом и основным софтом проблем не возникло...пока не началась рабочая неделя.

В работе мне приходится постоянно иметь дело с .xls-документами. Чтобы более продуктивно их обрабатывать, были отрыты на форуме специалистов макросы под Excel. Они были элементарными - удаляли ненужные данные и пустые строки относительно разных колонок документа. Работа с ними ускорила обработку файла в 2-3 раза. Однако, с переходом на Линукс, появилась большая проблема: OpenOffice не поддерживает VBA, а значит все мои макросы просто не смогут работать. Вариантов решения этой проблемы было два: переписывать макросы на доступных для ООо языках (Python, JavaScrypt, OpenOffice Basic) или ставить MS Office под Wine. Т.к. ни одного из этих языков я не знаю (пока что), было принято решение штурмовать просторы Интернета в поисках вариантов установки Офиса под Вайн. Было найдено несколько описаний, однако одно мне таки помогло в этом деле.
Некий riki_koen в своем ЖЖ описал этот процесс. Думаю, вам это описание так же поможет.
Сразу скажу, у меня это получилось с третьего раза, но все же вышло =)



Итак, в моём случае начальные данные такие:
* диск с лицензионным «Офисом 2007 Про»
* wine-1.1.15 (из дебиановского репозитория ветки experimental).
В интернетах вы найдёте несчётное множество руководств по установке одного в другое, но ни одно из этих руководств мне не помогло. Что и послужило причиной выяснения следующей последовательности действий:

1. Устанавливаем wine. Без ущерба для общности можно считать, что папка ~/.wine у вас отсутствует и её требуется создать запуском конфигуратора winecfg. (Если это не так, и эта папка у вас уже есть, то можно воспользоваться другой папкой, предварительно раскурив man wineprefixcreate.) Там же сразу сменим версию эмулируемой системы на Windows Vista. И в закладке «Библиотеки» добавим библиотеку msxml3 и изменим порядок её загрузки на "Сторонняя (Windows)" — в англоязычном варианте "Native (Windows)".

2. Далее качаем грязный хак winetricks. Сохраняем этот файл в /usr/local/bin (не забываем о правах на исполнение).

3. Запускаем его со следующими параметрами:
$ sh winetricks msxml3 gdiplus riched20 riched30 vcrun2005sp1 allfonts dotnet20
Дальше придётся немного подождать и принять несколько лицензионных соглашений (гм… лучше вам их не читать). Предупреждаю, что качать придётся несколько десятков мегабайт, и дотнет может ставиться несколько минут.

4. Теперь у нас есть все нужные библиотеки, можно ставить сам офис. Стоматологи всего мира рекомендуют: монтируйте компакт-диски так, чтобы потом не было мучительно больно:
$ sudo mount -t iso9660 -o unhide /dev/cdrom /media/cdrom0
После этого запускаем собственно установщик Офиса.

5. Выбор компонент я полностью оставляю на вашей совести. Я ставил только Ворд, причём выборочно: без всяких дотнетов, смарт-тэгов, проверки украинской орфографии и прочей лабуды. Если ваша карма достаточно чиста, то минут через десять у вас будет практически готовый Офис.

6. Заключительный шаг: в winecfg меняем версию на Windows XP и снова меняем тип замещения библиотеки msxml3 на "Сторонняя". У вас должно получиться что-то типа того:

7. Запускаем Офис, убиваем несколько сообщений об ошибках, и — вуаля! — дальше всё работает отлично!

Для тех, кто в теме: обращаю ваше внимание на то, что я нигде не подменял библиотеку rpcrt4.dll. (Сказать по правде, я пробовал это делать, но ничем хорошим это не кончалось).

Чтобы в Ворде работала панелька с формулами, нужно после установки офиса указать в winecfg порядок замещения библиотеки usp10 — "сторонняя, затем встроенная". А если нужно, чтобы корректно отображались убогие формулы из старых офисов, надо скопировать в соответствующую папку из любой старой Винды шрифт symbol.ttf. (В вайне начиная с версии 1.1.16 он уже есть, всё должно быть в порядке.)
Вот такая процедура ждет желающих воспользоваться софтом от Дяди Билла, однако при необходимости оно того стоит.
Сам Excel я брал не с диска с офисом, а из злобной WPI-сборки с диска ZverDVD. Ставится быстро и без лишних вопросов. Установка происходила на дистрибутив Mandriva 2010 Spring.
Выглядит это так:

Еще добавлю, что все макросы на VBA успешно исполняются и все необходимые операции продолжают дальше помогать в работе. Конечно, было испытание на паре файлов, однако с понедельника будет тест в реальных трудовых условиях. Тут-то и определится - приживется у меня Линукс или нет)