Запуск комплекса
1С:Предприятие под ОС Linux В понедельник получилось
запустить сабжевый пакет. Группа товарищей попросила рассказать и
показать, как это сделать. Выкладываю здесь.
Внимание! Сохраните копию базы данных пакета
1С:Предприятие перед проделыванием следующих действий! На всякий пожарный
случай.
1. Устанавливаем Linux :). Если в дистрибутиве имеются
установочные пакеты wine, то не ставим их - рекомендуется устанавливать
самый свежий стабильный билд вайна, типа чтобы не было гемора, да и
вообще.
2. Устанавливаем wine. Качнуть его можно тут,
документацию на фиглише можно почитать здесь.
3. Запускаем wine. После первого запуска в
домашней папке пользователя создаются вайновые папки, там же располагается
содержимое виртуального диска С: и ветки виртуального реестра.
4.
Запускаем winecfg.
Это утилита настройки wine. В отличие от предыдущих версий вайна, где нужно
было абсолютно всё прописывать в конфигурационном файлике, тут можно
поконфигурировать посредством гуёвого интерфейса. В разделе Graphics
лучше обрубить пункт "Allow the window manager to control the windows". Я
объясню позже, для чего это нужно, а пока закрываем конфигуратор
вайна. Я в настройках по умолчанию установил эмуляцию Windows 98, но
это не особо важно - какую версию виндов эмулировать. Отличий в
работоспособности не нашёл :).
5. Устанавливаем DCOM98. Скачать его
можно с сайта мелкомягких, набрав в тамошней строке поиска заветные
нерусские буквы и цифры. Закидываем его в наш виртуальный диск c:, который
физически по умолчанию располагается по пути
/home/имя_юзера/.wine/drive_c.
Обычная
установка дкома ни к чему не приводит, появляется сообщение о том, что уже
дком установлен (или что на системах NT он не устанавливается, если
эмулируется Windows NT4, Windows2000, WindowsXP или Windows 2003
Server). Запускаем в терминале следующую команду: wine c:\\DCOM98.EXE /C /T:c:\\temp
/Q Эта тарабарщина означает, что мы просто распаковываем
содержимое DCOM98.EXE, который по сути является самораспаковывающимся
архивом. Распаковывается всё в папку c:\temp (виртуальную, конечно же),
куда и направляем свои стопы.
При запуске команд, в которых
присутствуют пути к файлам без кавычек, следует писать двойной обратный
слэш (\\). Так надо. Если путь указывается с кавыками, то обратный слэш
уже одинарный: wine
"c:\DCOM98.EXE".
6. Все дллки, которые обнаружатся в c:\temp
копируем и вставляем по пути с:\windows\system32 (конечно же, путь этот
тоже виртуальный). На вопросы всякие отвечаем, что да, заменить
существующие файлы на новые.
7. Лезем в конфигуратор вайна. На
первой вкладке добавляем приложение DCOM.EXE:
Выделив это приложение в образовавшемся списке на первой
вкладке, направляемся во вторую вкладку - библиотеки (Libraries).
Добавляем для этого приложения библиотеку ole32.dll. Вписываем просто
"ole32", без расширения.
Получившаяся модель использования библиотеки (родная,
встроенная) нам подходит. Вайн лишь эмулирует работу используемых
системных библиотек. Иногда получается очень хорошо, иногда получается
плохо, а иногда совсем не получается. Прописывание библиотек в
конфигураторе позволяет вайну использовать при запуске приложения либо
собственные вайновские библиотеки, либо оригинальные виндовые, которые
приходится вручную копировать из установленной винды или ещё откуда
придётся. Во первом случае с авторскими правами и прочей лабуденью проблем
нет, потому что вайновские библиотеки, как и сам вайн, распространяются по
лицензии GPL. Подробнее о замещении динамических библиотек читайте в
документации на официальном сайте вайна.
8. Запускаем в терминале
wine c:\\DCOM98.EXE
/Q
9. Подготовительная часть закончена, приступаем
непосредственно к установке 1С:Предприятие. Запускаем wine "Путь к
установке\setup.exe". Установка одинэски проходит совершенно
так же, как и под виндами.
Желательно избегать в эмулируемых программах использование
файлов и папок, содержащих в названиях пробелы или кириллические
символы.
10. Запускаем патч, ломающий HASP защиту :). К сожалению,
реальный HASP ключ для 1С:Предприятие я видел один или два раза в жизни,
кругом все юзают ломанные проги. За неимением оригинального ключа запуск
одинэсины с легальным ключом под Линуксом не проверялся, хотя у народа по
этому вопросу имеются наработки. Нужен патч, переписывающий только
экзешник, другие, работающие с сервисами, реестром и эмуляцией ключа,
работать не будут.
11. На этом этапе запуск нашего бухгалтерского
мега-комплекса даёт какие-то результаты:
Правда, дальше прописывания баз дело не идёт.
Надо с
этим как-то бороться ©
12. Ошибка происходит из-за того, что прога
не использует нужные динамические библиотеки. Данный этап призван это
исправить. Лезем в уже полюбившийся нам конфигуратор вайна. Добавляем там
наше приложение:
Прописываем для него динамические библиотеки:
Граждане
ещё советуют прописывать и использовать msvcrt.dll и/или msvcrt40.dll, их
придётся доставать из установленной винды. У меня запустилась без
использования этих библиотек, но есть примеры, когда без них не
запустилось.
13. На данном этапе наше родимое приложение
запускается без выброса страшного окна про контейнер и контенты. Оно уже
выбрасывает другое окно, более знакомое для бухгалтеров и извращенцев от
компутеризма ;)
На этом этапе я объясню, зачем мы в конфигураторе не позволили оконному
менеджеру управлять оконцами вайна. Из-за сплэш-заставки одинэски (вот той
красно-оранжево-жёлтой с весами, калькулятором и логотипом 1С) в случае
управления окнами оконным менеджером окошечко авторизации оказывалось под
заставкой и дело не дальше не двигалось - для пользователя всё зависало на
строчке "Загрузка конфигурационной информации...". Можно пропатчить
экзешник одинэски, чтобы оно вообще не выкидывало сплэш-заставку, другой
вопрос - надо ли. Если хочется оформления одинэсных окон в стиле кде/гнома
- скатертью дорога, hex редактор в руки :).
14. Конечно, при первом
запуске 1С:Предприятие ругнётся сообщением "Порядок сортировки,
установленный для базы данных, отличается от системного!". Давим на ОК и
идём в конфигуратор текущей базы. В пукте "Окна" - "Панель окон" отключаем
показ панели (из-за этой панели приложение вылетает очень даже здоровски).
В пункте "Администрирование" выбираем "Кодовая страница таблиц ИБ".
Устанавливаем "+Текущая системная установка":
Соглашаемся с изменением кодовой страницы базы. Напоминаю о
необходимости резервного бэкапа базы перед манипуляциями подобного
рода.
15. Запускаем наше 1С:Предприятие. Сразу выключаем в пункте
"Окна" отображение панель окон. Вроде бы то, что нам надо:
Следует обратить внимание на права доступа,
выставленные для рабочих папок. Для установки прав на полный доступ к
папкам и файлам для всех на диске С: нужно выполнить в консоли следующую
команду: chmod 777 -R -c
/home/имя_юзера/.wine/drive_c
Также бывает, что при
запуске 1С:Предприятие появляется вот такая тарабарщина:
Можно
попытаться это исправить, для этого нужно залезть в редактор виртуального
реестра (да, там есть и такой! :) ), набрав в консоли команду regedit
Меняем значение строковой единицы Codepages на 1251,866.
Если получится :).
На этом закончу. Иногда в запущенной одинэсине
может пропадать стандартное меню (Файл, Правка и тыды). Лечить это не
брался, да и вряд ли возьмусь в ближайшее время. Проблема запуска
мега-комплекса под Линуксом стоит давно, у граждан из России имеются
наработки по этому поводу, есть даже решение от самой конторы 1С
(небезплатное, конечно же). Всю интересующую информацию можно запросто
узнать из всяких гугелов и яндексов.
Апдейт от 15 марта
2008г.: Камрады, родные, к сожалению, у меня вряд ли получится
отвечать на возникающие вопросы. Пост был написан больше года назад, с тех
пор я даже линукс ни разу не запустил, не говоря уже об экспериментах с
эмуляциями. Поэтому убедительная просьба: если кто-либо нашёл решение
описанной в коментах проблемы, отпишите его тут, пожалуйста. Спасибо!
Профессор Андернакис (http://gloomka.livejournal.com) @ 2007-02-21
|