Вихідні дані
Маємо встановлену операційну систему Linux Debian Squeeze з компонентами “Стандартна система” та “Оточення робочого столу“. Системний користувач, створений на етапі встановлення операційної системи – mario. Завдання – налаштувати термінальний сервер для роботи з програмою “1С: Підприємство”. Навіщо нам ще потрібен термінальний сервер!
Підготовка системи
Встановимо необхідне програмне забезпечення:
#apt-get install expect chkconfig binutils cifs-utils ssh
Для того, щоб користувачі могли підключатися до термінального сервера, у ssh-сервері повинна бути включена опція авторизації за ключом (PubkeyAuthentication yes), перевіримо це:
#cat /etc/ssh/sshd_config
# Package generated configuration file
# Натисніть на sshd_config(5) manpage for details
# What ports, IPs and protocols we listen for
Port 22
# Use these options до restrict, які interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc /ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
#Privilege Separation беруться на захист
UsePrivilegeSeparation yes
# Lifetime and size of ephemeral version 1 server key >KeyRegenerationInterval 3600
ServerKeyBits 768
# Logging
SyslogFacility AUTH
LogLevel INFO
# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
RSAAauthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile %h/.ssh/authorized_keys
Установка термінального сервера freenx
Завантажуємо необхідні пакети (в залежно від версії операційної системи, вибираємо відповідний каталог) та встановимо їх:
#dpkg -i rx-etersoft*.deb nx*.deb
Зробимо початкові налаштування та створимо оточення системного користувача nx:
#rxsetup
У разі виникнення проблем, файл журналу, rxsetup.log, створюється у папці з файлом rxsetup.
Перезавантажуємо сервер серверів:
#/etc/init.d/freenx restart
Встановимо максимальний час життя для сесії, що простоює, дві години. Для цього відредагуємо файл /etc/nxserver/node.conf.d/07-misc.conf:
SESSION_TTL=7200
Встановлено термінальний сервер. Для цього качаємо клієнт під вашу операційну систему оброблений напилком і готовий до роботи з російськомовними програмами). У налаштуваннях підключення вказуємо ip-адресу сервера (порт 22), графічне середовище GNOME, користувач – mario, все інше за замовчуванням. Зберігаємо, запускаємо, перевіряємо. Якщо все чисто, сухо та комфортно, йдемо далі. Якщо ні – читаємо логи.
Адміністрування сервера freenx
Список поточних підключень:
# nxserver --list
Завершення всіх підключених сесій:
# nxserver --cleanup
Установка Wine
Стандартний wine для наших цілей не підійде – з ним працюватиме все, крім 1С))) А ось адаптований wine від компанія Etersoft – саме те, що треба (пакети потрібно встановлювати строго в тій послідовності, яка вказана у статті):
#mkdir eterwine
#dpkg -i libwine*.deb
#dpkg -i wine*.deb
#dpkg -i fonts*.deb
Додаємо користувача mario до групи wineadmin:
#gpasswd -a mario wineadmin
Після цього перезавантажуємо сеанс користувача mario.
Підготовляємо загальний каталог (progs) для встановлення програм (робимо це під користувачем mario):
#wine --admin /var/lib/wine/progs
При цьому всі необхідні для спільної роботи користувачів права будуть встановлені автоматично (rw-rw-r–). Далі додаємо всі необхідні для роботи з термінальним сервером користувачів (під root-ом):
#useradd -s /bin/bash -m user2
#passwd user2
Після чого додаємо їх до групи wineadmin.
#gpasswd -a mario wineadmin
Логинимось під новими користувачами і в терміналі виконуємо наступне:
#wine --attach /var/lib/wine/progs
Пепереходимо до встановлення та налаштування 1С.
Установка 1С на термінальний сервер Linux
У прикладі будемо встановлювати 1C: Підприємство 7.7, мережна версія. Установка восьмої версії 1С виконується аналогічним чином (крім sql-версії).
Отже заходимо в систему під користувачем mario, копіюємо в його домашню папку дистрибутив 1С і виконуємо в терміналі наступну команду (Встановлюємо програму в папку Program files):
#wine setup.exe
Створюємо папку для бази:
#mkdir /var/lib/wine/progs/Program\ Files/bases
Встановлюємо потрібну конфігурацію 1С у створену папку. Щоб не вивчати вашого бухгалтера премудростям роботи з операційною системою Linux, створюємо скрипт, який дозволить нам запускати 1С в режимі єдиної програми і вирішить питання з перемиканням розкладок клавіатури (виконуємо під користувачем root):
#vim /bin/run1c.sh
#!/bin/bash
/bin/bash << EOF
#Задаємо модель клавіатури, її розкладки та послідовність їх зміни
/usr/bin/setxkbmap -model pc105 -layout us,ua,ru
/usr/bin/setxkbmap -model pc105 –variant
#Переключення розкладок ctrl +shift
/usr/bin/setxkbmap -model pc105 -option -option grp:ctrl_shift_toggle
# Запуск 1с
wine /var/lib/wine/progs/Program\ Files/1Cv77.ADM/BIN /1cv7.exe
EOF
Дуже важливо, щоб на локальних машинах користувачів послідовність зміни розкладок збігалася з послідовністю зміни в скрипті, тоді поточна розкладка на панелі інструментів користувача відповідатиме розкладці термінального сервера. Складатиметься враження локального запуску 1С. В іншому випадку – створюємо для користувачів окремі скрипти з індивідуальною розкладкою клавіатури та копіюємо до їх домашніх папок.
Дозволяємо доступ та запуск для всіх:
#chmod 777 /bin/run1c.sh
Залишилося налаштувати nx-клієнт.
У конфігурації, в закладці General робочого столу шукаємо контейнер Desktop та середовище GNOME змінюємо на Custom. Клацаємо по кнопці Settings та вибираємо Run the following command. У текстовому полі прописуємо run1c.sh. У разі створення індивідуального скрипта для користувача – прописуємо повний шлях до скрипту (/home/user2/run1c.sh). Зберігаємо, перевіряємо. Якщо ви все зробили правильно, з’явиться вікно запуску 1С:Підприємства. Далі додаємо нову базу, прописуємо до неї шлях, створюємо 1С користувачів у конфігураторі та починаємо працювати, от і все.
Проблема, пов’язана з використанням трьох мовних розкладок.
При використанні двох розкладок клавіатури скрипт run1c.sh працює нормально. При використанні чотирьох розкладок мови перемикається але не в тій послідовності, але з трьома розкладками мови не перемикаються зовсім. Ось вирішення цієї проблеми:
#vim /usr/share/X11/xkb/symbols/group
у ньому знаходимо секцію:
xkb_symbols "ctrl_shift_toggle" {
key {
type="PC_BREAK",
symbols[Group1]= [ Shift_L, ISO_Prev_Group ]
};
key {
type="PC_BREAK",
symbols[Group1]= [ Shift_R, ISO_Next_Group ]
};
key { [ Control_L, ISO_Prev_Group ] };
key { [ Control_R, ISO_Next_Group ] };
};
змінюємо ISO_Prev_Group на ISO_Next_Group та отримуємо:
xkb_symbols "ctrl_shift_toggle" {
key {
type="PC_BREAK",
symbols[Group1]= [ Shift_L, ISO_Next_Group ]
};
key {
type="PC_BREAK",
symbols[Group1]= [ Shift_R, ISO_Next_Group ]
};
key { [ Control_L, ISO_Next_Group ] };
key { [ Control_R, ISO_Next_Group ] };
};
Зберігаємо та перезапускаємо ікси.
May 11, 2013