Запуск клиента МИС МИАЦ под Linux (wine)
И так имеем XUBUNTU 18.04 и все будем делать на ней. При настройке, компьютер должен иметь доступ в Интернет, для обновления системы и установки новых пакетов.
Содержание
- 1 Обновление системы
- 2 Установка пакетов
- 3 Теперь можно машину перенести в закрытую сеть
- 4 Подключение Виндовой шары
- 5 Описание файла mysql\programm\sql.cfg
- 6 Скрипт по созданию шары и регистрации библиотеки midas.dll
- 7 Изменение шары на Linux wine
- 8 Регистрация библиотеки midas.dll
- 9 Редактирование sql.cfg
- 10 Настройка значка запуска
Обновление системы
Входим в консоль:
Пуск -> Эмулятор терминала
Или Ctrl+Alt+t
Выполняем в нем команды
$ sudo apt update $ sudo apt upgrade
Попросит пароль пользователя - вводим пароль.
Попросит согласиться с установкой пакетов, жмем Y, затем Enter.
Установка пакетов
В консоли набираем
$ sudo apt install mc cifs-utils
- mc - Midnight Commander - консольный файловый менеджер для Linux
- cifs-utils - программы для монтирования Виндовой шары
Установка WINE
Взято тут
Пакет Wine есть в официальном репозитарии Ubuntu 18.04 (называется wine-stable). И установить его так же легко как любой пакет из репозитария, например в терминале - "sudo apt-get install wine-stable". Однако пакет, который включен в официальный репозитарий, имеет ошибку.
В результате этой ошибки Wine "не виден" в системе, после установки. Программа не ассоциируется с программными файлами Windows (exe). Wine "не виден" в меню приложений. И программы Windows, установленные под Wine, тоже не видны в меню приложений. В результате запуск установщиков программ под Wine нужно выполнять вручную, в терминале, например так - "wine ~/temp/FSViewerSetup55.exe". А после установки программы, нужно вручную создавать для нее файл запуска (desktop файл).
Это все неудобно, не говоря уже о том, что не всем под силу. Это конечно можно победить, тем более что сам по себе Wine работает, однако проще установить из репозитария WineHQ (официальный репозитарий разработчиков программы).
Удаляем wine, если он уже стоял
$ sudo apt purge wine-stable
Добавьте 32-bit архитектуру
$ sudo dpkg --add-architecture i386
Вводим команды
$ wget -nc https://dl.winehq.org/wine-builds/Release.key $ sudo apt-key add Release.key $ sudo add-apt-repository "deb https://dl.winehq.org/wine-builds/ubuntu/ artful main" $ sudo apt-get update sudo apt-get install --install-recommends winehq-stable
Примечание. Установка выполняется из репозитария для версии 17.10, но этот пакет работает и на версии 18.04.
После установки нужно запустить конфигуратор Wine -
$ winecfg
Конфигуратор, после запуска, должен выдать запрос на загрузку и установку двух дополнительных пакетов - wine-mono и wine-gecko. Однако эти пакеты можно установить и самостоятельно, до запуска winecfg. Кстати, при установке Wine из официального репозитария Ubuntu 18.04, winecfg не загружает и не устанавливает пакеты wine-mono и wine-gecko.
После этого, Wine будет ассоциирован с программными файлами Windows - можно будет их запускать через контекстное меню (правая кнопка мыши).
Также в меню приложений будет пункт меню Wine, в котором будут ярлыки для запуска установленных программ Windows.
И нам осталось установить winetricks, для того чтобы мы могли установить windows библиотеки, скачаем его.
$ wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
Добавляем права на запуск
$ chmod +x winetricks
И перемещаем в директорию /usr/bin
$ sudo mv -v winetricks /usr/bin
Запускаем winetricks
$ winetricks
Программа сама установит дополнительные пакеты такие как: wine gecko и др.
Теперь можно машину перенести в закрытую сеть
Подключение Виндовой шары
Создаем папку /mysql
$ sudo mkdir /mysql
Создаем скрипт, например, /home/user/scripts/mount.sh.
Для этого
1. Запускаем mc
$ mc
2. Идем в папку /home/users
3. Создаем папку scripts. Жмем F7 и вводим имя каталога (scripts) или в консоли набираем
$ mkdir scripts
4. Входим в папку scripts и жмем shift+F4. Система попросит выбрать редактор по умолчанию для мс. Жмем 2. Но Вы можете выбрать и другой. Откроется окно для редактирования. Копируем туда следующий скрипт.
#!/bin/bash #set -x directory="/mysql/programm" if [ -d $directory ]; then : else mount.cifs //192.168.1.1/mysql /mysql/ -o rw,domain=you_domain,username=login,password=passwd,iocharset=utf8,uid=1000,gid=1000,file_mode=0664,dir_mode=0775,vers=1.0 fi
Жмем F2 и вводим имя файла mount.sh
Скрипт проверяет, есть ли в папке, куда будет происходить монтирование папка programm. Если ее нет, то будет пробовать смонтировать, а если есть то ничего делать не будет. Этот скрипт удобно запускать по cron, аналог планировщика в Windows и в файле rc.local (этот скрипт запускается в самом конце загрузки машины)
где
//192.168.1.1/mysql - это ip адрес и шара виндового сервера.
you_domain - имя Вашего домена
login - Логин пользователя виндового сервера.
passwd - его пароль
uid, gid - это цифровые идентификаторы пользователя на Linux машине. Можно посмотеть командой id, выполненной из консоли под логином пользователя.
5. Даем права на выполнение
$ chmod +x /home/user/scripts/mount.sh
6. Пробуем запустить
$ sudo /home/user/scripts/mount.sh
Если в папке /mysql появились файлы, то все ок, тогда идем дальше.
7. В Ubuntu 18.04 убрали службу и файл /etc/rc.local, поэтому его надо включить
Включение службы rc.local
Взято тут
Создаем и делаем исполняемым файл rc.local
$ sudo touch /etc/rc.local $ sudo chmod +x /etc/rc.local
Добавляем содержание в файл /etc/rc.local.
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. /home/user/scripts/mount.sh exit 0
Я добавил строку для монтирования /home/user/scripts/mount.sh
Включаем
$ sudo systemctl enable rc-local
Описание файла mysql\programm\sql.cfg
Вот содержимое файла
ip_server;new;z:\programm\
ip_server - это ip адрес MYSQL сервера
new - Имя базы данных
z:\programm\ - Путь до папки mysql\programm. Может быть как шара, например, //192.168.1.1\mysql\programm\, или через подмонтированный диск, например, Z:\programm\.
Скрипт по созданию шары и регистрации библиотеки midas.dll
1. Открываем консоль (Ctrl+Alt+t)
2. Идем в папку ~/scripts
$ cd ~/scripts
3. Запускаем МС
$ mc
4. Открываем редактор (Shift+F4) и копируем туда следующий скрипт
#!/bin/bash #set -x #Разкоментировать для отладки # Создаем шару (Диск Z) rm ~/.wine/dosdevices/z: ln -s /mysql ~/.wine/dosdevices/z: # Регистрируем библиотеку midas.dll cd /mysql/programm regsvr32 /i midas.dll
5. Сохраняем в файл wine_begin.sh (F4 и вводим имя файла)
6. Запускаем скрипт
$ sh wine_begin.sh
Тоже самое можно сделать вручную. Смотри следующие 2 пункта.
Изменение шары на Linux wine
Открываем консоль
Запускаем
winecfg
Вкладка Диски
Встаем на диск Z:
Указываем путь /mysql
Регистрация библиотеки midas.dll
Открываем консоль.
$ cd /mysql/programm $ regsvr32 /i midas.dll 0032:err:user:load_desktop_driver failed to load L"C:\\windows\\system32\\winex11.drv" regsvr32: DLL «midas.dll» успешно зарегистрирована regsvr32: «DllInstall» не реализован в DLL «midas.dll»
Редактирование sql.cfg
Для того, что бы программа работала и на Windows и на Linux клиентах делаем следующее
1. Z диск в wine - это корень машины под Linux. Поэтому надо изменить файл /mysql/programm/sql.cfg на Windows сервере.
ip_server;new;z:\programm\
2. На всех виндовых клиентах подмонтировать ресурс mysql как z:
Настройка значка запуска
Жмем правую кнопку мыши на рабочем столе и из меню выбираем Создать значок запуска
Вводим
- Имя - Статистика и счета ЛПУ
- Команда - wine Project2.exe
- Рабочий каталог - /mysql/programm
- Выбираем понравившийся значок и жмем Создать
На экране появится ярлык с программой.
Запускаем ее и на вопрос Жмем Сделать исполняемым