Запуск комплекса
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.
![30,68 КБ](002.gif) Обычная
установка дкома ни к чему не приводит, появляется сообщение о том, что уже
дком установлен (или что на системах 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:
![11,14 КБ](003.gif) Выделив это приложение в образовавшемся списке на первой
вкладке, направляемся во вторую вкладку - библиотеки (Libraries).
Добавляем для этого приложения библиотеку ole32.dll. Вписываем просто
"ole32", без расширения.
![8,89 КБ](004.gif) Получившаяся модель использования библиотеки (родная,
встроенная) нам подходит. Вайн лишь эмулирует работу используемых
системных библиотек. Иногда получается очень хорошо, иногда получается
плохо, а иногда совсем не получается. Прописывание библиотек в
конфигураторе позволяет вайну использовать при запуске приложения либо
собственные вайновские библиотеки, либо оригинальные виндовые, которые
приходится вручную копировать из установленной винды или ещё откуда
придётся. Во первом случае с авторскими правами и прочей лабуденью проблем
нет, потому что вайновские библиотеки, как и сам вайн, распространяются по
лицензии GPL. Подробнее о замещении динамических библиотек читайте в
документации на официальном сайте вайна.
8. Запускаем в терминале
wine c:\\DCOM98.EXE
/Q
9. Подготовительная часть закончена, приступаем
непосредственно к установке 1С:Предприятие. Запускаем wine "Путь к
установке\setup.exe". Установка одинэски проходит совершенно
так же, как и под виндами.
![7,46 КБ](005.gif) Желательно избегать в эмулируемых программах использование
файлов и папок, содержащих в названиях пробелы или кириллические
символы.
10. Запускаем патч, ломающий HASP защиту :). К сожалению,
реальный HASP ключ для 1С:Предприятие я видел один или два раза в жизни,
кругом все юзают ломанные проги. За неимением оригинального ключа запуск
одинэсины с легальным ключом под Линуксом не проверялся, хотя у народа по
этому вопросу имеются наработки. Нужен патч, переписывающий только
экзешник, другие, работающие с сервисами, реестром и эмуляцией ключа,
работать не будут.
11. На этом этапе запуск нашего бухгалтерского
мега-комплекса даёт какие-то результаты:
![10,77 КБ](006.gif)
Правда, дальше прописывания баз дело не идёт.
![48,79 КБ](007.gif) Надо с
этим как-то бороться ©
12. Ошибка происходит из-за того, что прога
не использует нужные динамические библиотеки. Данный этап призван это
исправить. Лезем в уже полюбившийся нам конфигуратор вайна. Добавляем там
наше приложение:
![11,77 КБ](008.gif) Прописываем для него динамические библиотеки:
![9,33 КБ](009.gif) Граждане
ещё советуют прописывать и использовать msvcrt.dll и/или msvcrt40.dll, их
придётся доставать из установленной винды. У меня запустилась без
использования этих библиотек, но есть примеры, когда без них не
запустилось.
13. На данном этапе наше родимое приложение
запускается без выброса страшного окна про контейнер и контенты. Оно уже
выбрасывает другое окно, более знакомое для бухгалтеров и извращенцев от
компутеризма ;)
На этом этапе я объясню, зачем мы в конфигураторе не позволили оконному
менеджеру управлять оконцами вайна. Из-за сплэш-заставки одинэски (вот той
красно-оранжево-жёлтой с весами, калькулятором и логотипом 1С) в случае
управления окнами оконным менеджером окошечко авторизации оказывалось под
заставкой и дело не дальше не двигалось - для пользователя всё зависало на
строчке "Загрузка конфигурационной информации...". Можно пропатчить
экзешник одинэски, чтобы оно вообще не выкидывало сплэш-заставку, другой
вопрос - надо ли. Если хочется оформления одинэсных окон в стиле кде/гнома
- скатертью дорога, hex редактор в руки :).
14. Конечно, при первом
запуске 1С:Предприятие ругнётся сообщением "Порядок сортировки,
установленный для базы данных, отличается от системного!". Давим на ОК и
идём в конфигуратор текущей базы. В пукте "Окна" - "Панель окон" отключаем
показ панели (из-за этой панели приложение вылетает очень даже здоровски).
В пункте "Администрирование" выбираем "Кодовая страница таблиц ИБ".
Устанавливаем "+Текущая системная установка":
![3,17 КБ](011.gif) Соглашаемся с изменением кодовой страницы базы. Напоминаю о
необходимости резервного бэкапа базы перед манипуляциями подобного
рода.
15. Запускаем наше 1С:Предприятие. Сразу выключаем в пункте
"Окна" отображение панель окон. Вроде бы то, что нам надо:
![70,79 КБ](012.gif)
Следует обратить внимание на права доступа,
выставленные для рабочих папок. Для установки прав на полный доступ к
папкам и файлам для всех на диске С: нужно выполнить в консоли следующую
команду: chmod 777 -R -c
/home/имя_юзера/.wine/drive_c
Также бывает, что при
запуске 1С:Предприятие появляется вот такая тарабарщина:
![4,84 КБ](013.gif) Можно
попытаться это исправить, для этого нужно залезть в редактор виртуального
реестра (да, там есть и такой! :) ), набрав в консоли команду regedit
![10,42 КБ](014.gif) Меняем значение строковой единицы Codepages на 1251,866.
Если получится :).
На этом закончу. Иногда в запущенной одинэсине
может пропадать стандартное меню (Файл, Правка и тыды). Лечить это не
брался, да и вряд ли возьмусь в ближайшее время. Проблема запуска
мега-комплекса под Линуксом стоит давно, у граждан из России имеются
наработки по этому поводу, есть даже решение от самой конторы 1С
(небезплатное, конечно же). Всю интересующую информацию можно запросто
узнать из всяких гугелов и яндексов.
Апдейт от 15 марта
2008г.: Камрады, родные, к сожалению, у меня вряд ли получится
отвечать на возникающие вопросы. Пост был написан больше года назад, с тех
пор я даже линукс ни разу не запустил, не говоря уже об экспериментах с
эмуляциями. Поэтому убедительная просьба: если кто-либо нашёл решение
описанной в коментах проблемы, отпишите его тут, пожалуйста. Спасибо!
Профессор Андернакис (http://gloomka.livejournal.com) @ 2007-02-21
|