среда, 13 мая 2020 г.

Linux Mint Mate рабочее место оператора склада.

В одной из обслуживаемых организаций существует парк весьма древних ПК. По большей части это 512 - 1 Гб оперативки и старенький Celeron от одного до двух Mhz.
Оператор склада работает с 1с 8.3 и с документами. Больше ему ничего не надо. Таких операторов в организации шесть. По два на каждый склад. Было решено, в целях безопасности, уйти от win XP. Про upgrade рабочих мест речи не идет, времена нынче тяжелые для всех. Поэтому смотрим в сторону Linux Mint Mate для 1 Гб ОЗУ и xfce для < 1 Гб.

Почему Mint?
1. Пакетная база debian. А 1с 8.3 есть в deb и в rpm пакетах.
2. Более-менее привычный интерфейс для win пользователей.
3. Ну и мне просто нравится debian. Я с ним давно знаком.
В конкретном примере использовался Mint Mate 19.3 x64 дата релиза 18.12.2019. Основан на Ubuntu 18.04.3 LTS. Ядро 5.0

В этой статье рассматриваются следующие моменты:
Установка 1c 8.3 в Linux
Установка службы HASPD для использования аппаратных сетевых ключей 1с
Установка шрифтов Windows
Настройка удаленного доступа по VNC к рабочему столу пользователя.
Запуск VNC сервера как службы.
Настройка LibreOffice для сохранения файлов в форматах MsOffice по умолчанию
Настройка ping по имени компьютера в сети.

Итак, начинаем начинать ©

После установки нам понадобиться сама 1с. Ищем ее тут, если конечно у вас есть подписка ИТС. Обращаем внимание на архитектуру пакетов. Сохраняем в отдельную папку и заходим в нее из терминала.
Устанавливаем:
$ sudo apt intstall -f ./*
1с потянет две зависимости.
Конечно, все можно выполнить из графического интерфейса, просто дважды кликнув на каждый скаченный пакет.

UPD: В версии Mint 20.5 и выше пакетная база ubuntu 20.04. Поддержка одной из зависимостей к 1с (libwebkitgtk-3.0-0) прекращена с версии 19.04 поэтому делаем следующее перед установкой 1с:
Добавляем репозиторий bionic:
deb http://us.archive.ubuntu.com/ubuntu/ bionic universe
$ apt update
$ wget http://archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu60_60.2-3ubuntu3.1_amd64.deb

$ sudo dpkg -i libicu60_60.2-3ubuntu3.1_amd64.deb
$ apt-mark hold libicu60

Теперь можно установить 1с
$ sudo apt intstall -f ./*
Добавляем поддержку архитектуры i386, это нам понадобиться для установки пакетов от HASP(поддержка аппаратных ключей):
$ dpkg --add-architecture i386

Скачиваем пакеты hasp http://download.etersoft.ru/pub/Etersoft/HASP/last/Mint/19/
Опять складываем в отдельную папку, переходим в нее из терминала и устанавливаем:
$ sudo apt intstall -f ./*
Тоже будут зависимости.
Иногда, а вернее очень часто, сетевой ключ 1с не видит. И тут дело зачастую не в Linux или windows а в 1с. Хочу вижу, хочу не вижу. Но все-таки стоит проверить следующее:
1. Запущен ли сервис haspd:
$ service haspd status
2. Открыт ли порт 475 UDP (Если у вас была стандартная установка и ничего больше вы не делали, то у вас он открыт по умолчанию)
3. Ну и добавить файл nethasp.ini По умолчанию его нет. Поэтому создадим его:
$ mkdir /opt/1C/v8.3/x86_64/conf/
$ nano /opt/1C/v8.3/x86_64/conf/nethasp.ini

Содержание:
[NH_TCPIP]
NH_SERVER_ADDR = x.x.x.x

x.x.x.x - ip адрес компьютера где установлен ключ

Дальше нам обязательно понадобятся виндовые шрифты. Дело тут не только и не столько во внешнем виде. Дело в том, что без виндовых шрифтов разъезжаются печатные формы (накладные, счета-фактуры и т.д.).
Устанавливаем из терминала:
$ sudo apt install ttf-mscorefonts-installer
Но тут есть небольшой нюанс. Пакет устанавливается, просит принять лицензию, но шрифтов в себе не несет. По идее, это скрипт который должен запустить скачивание шрифтов, но этого не произошло. Переустановка пакета не помогала. Хотя на личном ноуте с Ubuntu 20.04 все прошло гладко. Возможно были проблемы с интернетом. В общем, если столкнетесь с такой же проблемой, то вот решения:
Первый способ. Скачать шрифты вручную отсюда. Все кроме "wd97vwr32.exe" Распаковать их архиватором и скопировать файлы с расширением ttf сюда: /usr/share/fonts/truetype/msttcorefonts/
Затем выполнить в терминале команду:
$ fc-cache -f -v
Второй способ. Скопировать с другой linux машины установленные шрифты. Или взять их тут одним архивом. И скопировать в папку выше на целевом ПК, ну и выполнить:
$ fc-cache -f -v

Удаленный доступ. Без удаленной поддержки никаких ног не хватит. Что-то установить, поправить конфиг, перезагрузить в конце концов, будет достаточно ssh. Который тоже необходимо установить.
$ sudo apt instal openssh-server
А если нужно в куда-то ткнуть в 1с или показать пользователю где искать "ворд" я предпочту VNC:
$ sudo apt install x11vnc
Генерируем пароль для доступа:
$ sudo x11vnc -storepasswd my_vnc_password /etc/x11vnc.pass
Пробуем запустить:
$ sudo x11vnc -auth guess -rfbauth /etc/x11vnc.pass -shared -many -noxfixes -display :0
Ну и пробуем подключиться к хосту. Например через remmina. Порт по умолчанию 5900
Немного о ключах в команде:
-auth guess - используется если запускаем x11vnc от root что бы подключиться к X сессии до пользователя.
-rfbauth - указывает на использование файла для авторизации.
-share - позволяет подключаться нескольким клиентам.
-many - он же -forever - не останавливать vnc сервер если клиент отключился.
-noxfixes - не использовать расширение XFIXES - которое рисует курсор удаленной машины, но вызывает сбой в xorg1.5

Так же, возможно понадобятся следующие ключи:
-notruecolor - отключить полноцветный режим. Для слабых каналов, например.
-scale 1024x768 - выставить разрешение.

Если подключение у нас прошло нормально, то можно положить строчку запуска в автозагрузку.
Либо через меню mate в параметрах - запускаемые приложения. Либо создать сервис systemd.
Первый вариант будет работать только с текущим вошедшим пользователем. Второй будет запускаться независимо от пользователя, поэтому он предпочтительнее:
Создаем файл.
$ sudo nano /etc/systemd/system/x11vnc.service
и запишем в него:
[Unit]
Description="x11vnc"
Requires=display-manager.service
After=display-manager.service

[Service]
ExecStart=/usr/bin/x11vnc -auth guess -rfbauth /etc/x11vnc.pass -shared -many -noxfixes -display :0
ExecStop=/usr/bin/killall x11vnc
Restart=on-failure
Restart-sec=2

[Install]
WantedBy=multi-user.target

Перезапустим демон systemd:
$ sudo systemctl daemon-reload
И пробуем запустить наш сервис:
$ sudo systemctl start x11vnc
Если все хорошо,то включаем сервис в автозагрузку
$ sudo systemctl enable x11vnc

Кстати, по поводу "ворд". Для удобства пользователей необходимо в libreoffice изменить настройку сохранения файлов. Что бы текстовые файлы и электронные таблицы сохранялись в привычных docx и xlsx.
Открываем LibreOffice Write и переходим в меню сервис - параметры.
В параметрах нас интересует раздел Загрузка/Сохранение - Общие
Параметр - Всегда сохранять как - нужно выставить Word 2007-365 (*.docx)
И обязательно снять галку с параметра - Предупреждать при сохранении в формате, отличном от ODF или по умолчанию. Жмем Применить См скриншот
Не выходя из LibreOffice в этом же окне параметров, меняем тип документа на - Электронная таблица и в параметре - Всегда сохранять как - меняем на - Excel 2007-365 (*.xlsx)
Применить - ОК

Создадим по одному пустому текстовому файлу и файлу электронных таблиц в формате docx и xlsx соответственно. И скопируем их в шаблоны в директории пользователя ~/Шаблоны. Это добавит пункты в контекстном меню в меню - создать документ.

UPD2: ping по имени компьютера в сети без домена. Как не удивительно, но из коробки это не работает.
1. Устанавливаем libnss-winbind winbind
2. Добавляем в /etc/nsswitch.conf в строку hosts - wins

На этом пожалуй все. Скорость работы приемлемая, если не открывать браузер :-D Но он на этой машине и не нужен. С установкой принтера HP LJ 1320 проблем не возникло. Возникли проблемы с расшариванием принтера на соседнюю Win XP. Пришлось подключить его через cups
http://hostname:631/printers/printer_name
 
UPD3: И все же для mate 1Гб маловато. Было решено докинуть еще 1Гб стало значительно лучше. По последним тестам для Mint xfce 1Гб тоже не самое лучшее решение, но в целом значительно лучше чем mate. Mint xfce с 1,5Гб комфортнее работает.

Комментариев нет: