« Назад

 

 

Вихідні дані

Маємо встановлену операційну систему 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

Якщо у вас виникли питання

ЗВ'ЯЖІТЬСЯ З НАМИ!

Залишіть свої дані і ми зв'яжемося з вами найближчим часом