Рабочее место программиста на Linux. Серия лабораторных работ. Работа 1

05.04.20

Администрирование - Linux

В этой лабораторной работе мы сконфигурируем рабочее место программиста на платформе 1С:Предприятие 8. Воспользуемся подсистемой WSL и установим Linux в ОС Windows. Сервер 1С:Предприятие и сервер базы данных установим в Linux. Остальные компоненты установим в Windows.

Шаг 1. Введение и постановка задачи.

Задача лабораторной работы №1

В этой лабораторной работе мы сконфигурируем рабочее место программиста 1С, которое будет состоять из следующих компонентов:

  • Платформа 1С Предприятие 8 в составе конфигуратора и клиента (Windows)
  • Сервер 1С:Предприятие 8 (Linux)
  • Инструмент администрирования сервера 1С:Предприятие 8 (Windows)
  • Сервер PostgreSQL 11.5 (Linux)
  • Инструмент администрирования сервера PostgreSQL pgAdmin 4 (Windows)

Для проверки работоспособности системы загрузим на сервер 1С:Предприятие демонстрационную базу.

В лабораторной работе используется платформа 1С:Предприятие 8 версии 8.3.16.1148

В данной статье используется следующее условное выделение:

  • Серые вставки содержат команды, выполняемые в терминале Linux
  • Знаком # отмечается комментарий, который при повторении лабораторной работы вводить не нужно.

WSL, коротко о подсистеме

Согласно ru.wikipedia.org WSL (Windows Subsystem for Linux) это программный слой в операционной системе Windows 10, который делает ее совместимой для запуска ОС Linux и приложений написанных для Linux. Я выделил несколько преимуществ использования Linux под управлением WSL перед использованием Linux в виртуальной машине:

  • Очень простая и быстрая установка системы Linux
  • Нет виртуальной машины, а значит не нужно ничего администрировать и настраивать
  • Системе Linux доступны все ресурсы машины: дисковое пространство, оперативная память, ядра процессора, сеть. И все это без дополнительного администрирования.

Важно отметить, что не все дистрибутивы операционной системы Linux работают под управлением WSL. Дистрибутивы, которые будут гарантированно работать под WSL располагаются в магазине приложений Microsoft Store.

Еще нужно помнить, что компания 1С гарантирует работу своих продуктов только в следующих дистрибутивах Linux:

RPM версии дистрибутива Linux (RED HAT PACKAGE MANAGER, семейство систем Linux построенных на базе дистрибутива системы Red Hat)

  • Red Hat Enterprise Linux 7 (отсутствует в Microsoft Store)
  • CentOS 7 (в Microsoft Store имеется платный дистрибутив для WSL)

DEB версии дистрибутива Linux (DEBIAN PACKAGE MANAGER, семейство систем Linux построенных на базе дистрибутива системы Debian)

  • Debian: версии 9 (в Microsoft Store имеется дистрибутив для WSL)
  • Ubuntu: версии 18.04 LTS (в Microsoft Store имеется дистрибутив для WSL)
  • Mint: версии 19 (отсутствует в Microsoft Store)

Шаг 2. Подготовка к работе

Для лабораторной работы нам потребуются:

Windows 10

Вся работа будет происходит в операционной системе Windows 10. Необходима 64-битная версия ОС. Номер сборки требуется 1607 и старше. Вариант Windows не важен. Будет работать и на Prof и на Home.

Папка с локальным репозиторием

В системе Windows на диске С: создадим папку TMP_C, которую будем считать локальным репозиторием. Дистрибутивы, которые потребуются для лабораторной работы будем сохранять в этой папке.

Дистрибутивы

Все скаченные дистрибутивы сохраняем в папку C:\TMP_C

Сервер 1С:Предприятия (64-bit) для DEB-based Linux-систем скачиваем из репозитория компании 1С releases.1c.ru/project/Platform83 Для работы потребуется дистрибутив версии 8.3.16.1148

Технологическая платформа 1С:Предприятия (64-bit) для Windows версии 8.3.16.1148 скачиваем из того же репозитория

Демонстрационная информационная база (файл DT) скачиваем из того же репозитория

Дистрибутив СУБД PostgreSQL для Linux  x86 (64-bit) одним архивом (DEB) скачиваем из репозитория компании 1С releases.1c.ru/project/AddCompPostgre Для работы потребуется дистрибутив версии 11.5-12.1С

Зависимости (служебные библиотеки) postgres для Ubuntu 18.04.3-server x86_64 от 20.12.2019 находятся в разделе Дополнительные материалы репозитория PostgreSQL.

pgAdmin v.4 скачиваем с официального репозитория проекта postgresql.org/ftp/pgadmin/pgadmin4/ Требуется версия для Windows версии 4.17

ConEmu терминал для консольных приложений скачаем с официального репозитория fosshub.com/ConEmu.html Требуется версия 191012 вариант Installer 64-bit

Установка ConEmu

ConEmu на мой взгляд самый удобный терминал и браузер консольных приложений. В ConEmu могут исполняться например такие консольные приложения: Far, PowerShell, Git и другие. Пара скриншотов.

 

Установите ComEmu соглашаясь с настройками по умолчанию.

При первом запуске в ConEmu по умолчанию запустится файловый менеджер Far. Выполните минимальную настройку ConEmu. Я под свои глаза меняю настройки Fonts и Size & Pos Войти в режим настройки [Win + Alt + P] или меню на скриншоте ниже

Для того, что бы открыть новый терминал в очередной вкладке можно нажать [Win + Shift + W] и в диалоговом окне указать тип открываемого терминала. Полезными будут следующие типы терминала:

  • {Far} - открыть еще один Far в очередной вкладке
  • {Bash::bash} - открыть терминал Linux (вариант доступен при включенном WSL и установленном Linux)
  • {Shells::cmd} - открыть окно с командной строкой Windows 10

Так же новую вкладку терминала можно открыть нажав зеленую кнопку, см. скриншот.

Шаг 3. Установка WSL

Для того, чтобы установить Linux требуется включить компоненту Windows под названием Подсистема Windows для Linux. После включения компоненты необходимо перезагрузить компьютер.

Управление компонентами находится в Панель управления – Программы – Включение или отключение компонентов Windows.

Шаг 4. Установка Linux

План установки:

  1. Установить Linux из магазина приложений Microsoft Store
  2. Первый запуск Linux
  3. Обновить Linux
  4. Установить локаль русского языка
  5. Присвоить хосту статический ip адрес
  6. Установить необходимые дополнительные пакеты

Теперь, каждый шаг подробно.

Установка Linux

Как писалось выше, дистрибутивы Linux, которые работают под управлением WSL располагаются в магазине приложений Microsoft Store. Устанавливать будем систему Ubuntu 18.04 LTS (Long-term support это продукты с длительным сроком поддержки, например для Ubuntu 18.04 LTS срок поддержки равен 10 лет). В поиске магазина приложений введите ubuntu 18.04 lts и перейдите на страницу установки.

Далее нажмите кнопку Получить и дождитесь окончания установки.

Первый запуск Linux

После установки необходимо сделать первый запуск и выполнить указания системы. Linux можно запустить несколькими способами:

  • Кнопка Пуск -Ubuntu 18.04 LTS
  • Открытие нового окна терминала в ConEmu с помощью команды {Bash::bash}
  • Команда wsl набранная в командной строке Windows
  • Команда bash набранная в командной строке Windows

При первом запуске система закончит свою установку и настройку после чего попросит вас указать имя пользователя и пароль, под которым вы будете работать в Linux.

# Диалог установки имени пользователя и пароля
# При вводе пароля в Linux никаких знаков не появляется.
Enter new UNIX username: pen
Enter new UNIX password:
Retype new UNIX password:

Если все в порядке, то появится следующее сообщение:

passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Запомните на будущее, если вам нужно воспользоваться полномочиями администратора (пользователя root) используйте команду sudo.

Обновление Linux

Ubuntu установленная из магазина Microsoft Store имеет номер релиза 20190521 от 08.05.2018г. Рекомендуется перед началом использования обновить Linux на актуальный релиз. Обновления пакетов выполняются от имени суперпользователя. Будем использовать программу apt (advanced packaging tool), которая предназначена для установки, обновления и удаления программ в операционных системах Linux построенных на базе Debian.

# Обновим информацию о последних версиях пакетов установленных в системе
pen@PEN-PC:~$ sudo apt update

# Просмотрим список пакетов, которые можно обновить
pen@PEN-PC:~$ apt list –upgradable

# Обновим все пакеты, которые могут быть обновлены
pen@PEN-PC:~$ sudo apt upgrade

Установка локали ru_RU

Локаль locale в Linux примерно соответствует региональным настройкам в Windows 10 и определяет язык, который доступен системе, формат чисел, дат и денежных единиц.

Список доступных локалей на вашей машине можно получить, используя команду loicale

# По умолчанию в системе установлена одна локаль.
# Наименование локали состоит из наименования языка en,
# наименования региона US и наименования кодировки utf8
pen@PEN-PC:~$ locale -a
en_US.utf8

Для корректной работы платформы 1С:Предприятие требуется русская локализации. Для ее установки воспользуемся пакетом locales

# Команда конфигурирования локали.
# Требуются полномочия суперпользователя.
pen@PEN-PC:~$ sudo dpkg-reconfigure locales

Настройка этого пакета идет в псевдографическом интерфейсе. На первом экране необходимо выбрать локаль ru_RU.UTF-8 UTF-8 и отметить ее нажатием клавиши пробел. Нажмите Enter для перехода к следующему экрану, где необходимо выбрать локаль по умолчанию ru_RU.UTF-8. Для завершения настройки требуется нажать клавишу Enter и перезагрузить терминал.

После настройки список установленных в системе локалей расширится

# После настройки стала доступна русская локализация
pen@PEN-PC:~$ locale -a
en_US.utf8
ru_RU.utf8

Статический IP адрес хоста

Для нашей лабораторной работы будем исходить из предположения, что сетевая инфраструктура крайне проста и состоит из маршрутизатора или Wi-Fi роутера, который соединен с компьютером программиста. Для работы с приложениями на сервере Linux нам потребуется зафиксировать IP адрес вашей машины и связать его с именем хоста. Сделаем это.

Настройка маршрутизатора

Компьютер, на котором работает сервер Linux должен иметь постоянный статический адрес. Обычно IP адрес компьютеру выдается сервером DHCP (Dynamic Host Configuration Protocol), который работает на маршрутизаторе. Сервер DHCP не обязан выдавать один и тот же IP адрес компьютеру и чаще всего не выдает. Для того, чтобы у компьютера IP адрес был статическим необходимо настроить маршрутизатор. Потребуется:

  • Определить диапазон IP адресов, которые будет раздавать DHCP сервер, например 192.168.0.100 – 192.168.0.255
  • Добавить в таблицу статических адресов IP адрес и MAC-адрес (Media Access Control) вашего устройства
  • Перезагрузить маршрутизатор и компьютер

На маршрутизаторах разных производителей эта операция выполняется по-разному, но инструкцию несложно найти поиском в Интернете по запросу Настройка статического ip на роутере ХХХ, где ХХХ это модель вашего роутера.

Как пример статический адрес моего домашнего компьютера 192.168.1.10

Определение IP адреса и имени хоста на сервере Linux

С помощью утилиты ipconfig проверим, что статический IP адрес выдан компьютеру. С помощью команды hostname получим наименование компьютера (хоста), на котором работает сервер Linux.

# Программа ipconfig выводит информацию о сетевом окружении компьютера
# в том числе IP адрес хоста
pen@PEN-PC:~$ ifconfig
eth0: flags=4163<UP,BROADCAST>  mtu 1500
inet 192.168.1.10  netmask 255.255.255.0  broadcast 192.168.1.255

# Программа hostname выводит в консоль имя хоста
# к которому подключен ваш терминал
pen@PEN-PC:~$ hostname
PEN-PC
Связывание IP адреса и имени хоста

С сервером 1C:Предприятие который будет установлен на Linux сервер мы планируем работать и управлять из под Windows. Для корректной работы в Windows установим соответствие IP адреса и имени хоста. Для этого внесем изменения в фале hosts, который располагается в папке %windir%\system32\drivers\etc

Файл hosts это конфигурационный текстовый файл. При помощи текстового редактора ConEmu необходимо добавить в конец файла следующую строку

IP-address hostname,

Где: IP-address статический адрес компьютера, hostname имя хоста. Например, на моем компьютере в файл hosts добавлена следующая строка:

192.168.1.10 PEN-PC

Шаг 5. Введение в Linux

Признаюсь честно, я в Linux совсем новичок и обхожусь минимальным набором команд. Что бы в дальнейшем не комментировать назначение команд Linux я приведу наиболее важные в этом разделе.

Строка приглашения

Строка приглашения — это часть командной строки, которая стоит перед командами, которые вводит пользователь. Пример строки:

# До амперсанда (@) указано имя пользователя, работающего в терминале. 
# После амперсанда указано имя хоста (рабочего сервера) с которым 
# пользователь работает через окно терминала.
# После знака двоеточие (:) указан рабочий каталог.
# Знак $ обозначает работу с обычными привилегиями
pen@PEN-PC:/mnt/c/TMP_C$

# Еще пример. Пользователь root подключен к хосту PEN-PC.
# Знак тильда (~) говорит, что пользователь находится в домашнем каталоге.
# Знак решетка (#) говорит о том, что у пользователя максимальные привилегии.
root@PEN-PC:~#

Переключение пользователя. Суперпользователь

Многие команды Linux необходимо выполнять с привилегиями суперпользователя. Для этого перед командой, которая требует дополнительных привилегий, необходимо добавить команду sudo.

Команда sudo (substitute user and do) предназначена для повышения привилегий до суперпользователя при выполнении команды, следующей за командой sudo.

В операционной системе Linux может быть много пользователей. Текущий пользователь, от имени которого программист работает в терминале указан в приглашении командной строки. Для некоторых задач требуется сменить пользователя и дальнейшие операции выполнять от имени другого пользователя. Например, управление сервером базы данных PostgreSQL выполняется от имени пользователя postgres.

Команда su (substitute user) предназначена для смены пользователя. Пример смены пользователя:

# Пользователь pen дал команду сменить текущего пользователя на пользователя postgres.
# Такая смена может быть выполнена с полномочиями суперпользователя
# Система Linux запрашивает пароль пользователя pen и в случае успеха
# устанавливает текущим пользователем пользователя postgres.
pen@PEN-PC:~$ sudo su postgres
password for pen:
postgres@PEN-PC:/home/pen$

# Для того, чтобы вернуться к своему основному пользователю pen нужно выйти
# из сеанса текущего пользователя postgres.
postgres@PEN-PC:/home/pen$ exit
exit
pen@PEN-PC:~$

Работа с каталогами

В Linux, впрочем, как и в Windows у каждого пользователя есть свой домашний каталог. Домашние каталоги пользователей операционной системы Linux располагаются в /home/%Username%. Например, домашний каталог пользователя pen располагается в /home/pen.

Каталог, в котором находится пользователь в данный момент называется рабочим или текущим каталогом. Узнать полный путь до текущего каталога можно с помощью команды pwd (print working directory)

Команда cd (change directory) предназначена для изменения текущего каталога. Приведу несколько вариантов использования. Зеленым цветом выделены команды, вводимые пользователем с клавиатуры.

Краткое замечание

Указывая в командах путь до папок, завешайте его конечным слешем, например ~/DISTR/ Указывая в командах путь до файлов не ставьте конечный слеш, впрочем, у вас это и не получиться.

# переход в указанный каталог, например /tmp
pen@PEN-PC:~$ cd /tmp/
pen@PEN-PC:/tmp$

# переход в домашний каталог (вариант 1)
pen@PEN-PC:/tmp$ cd
pen@PEN-PC:~$

# переход в домашний каталог (вариант 2)
pen@PEN-PC:/tmp$ cd ~
pen@PEN-PC:~$

# переход в родительский каталог (из каталога /home/pen/ выполнен переход
# в родительский каталог /home/)
pen@PEN-PC:~$ cd ..
pen@PEN-PC:/home$

# вернуться в предыдущий рабочий каталог
pen@PEN-PC:/home$ cd -
pen@PEN-PC:~$

При указании пути до файлов, вместо полного пути можно использовать следующие сокращения:

  • ./ (точка слеш) обозначает путь до текущей папки. Например, находясь в домашней папке это сокращение обозначает /home/pen/
  • ~ (тильда) обозначает путь до домашней папки.

Команда ls (list) предназначена для просмотра содержимого текущего каталога. Удобно вызывать команду ls с ключом -l (long) для более подробного представления информации. Пример вызова команды:

# Содержимое домашнего каталога пользователя pen
pen@PEN-PC:~$ ls -l
-rw-rw-rw- 1 pen pen  8 окт 29 21:36 read.me
-rwxrwxrwx 1 pen pen 23 окт 18 20:15 test.txt

Установка и удаление программ

В Linux установка и удаление программ или если быть более точным, пакетов выполняется через команду apt (advanced packaging tool). В утилите apt нам потребуются следующие команды:

list выполняет поиск установленных пакетов и выводит список в консоль. С помощью этой команды можно проверить установлен ли пакет и если установлен, то какой версии.

# Выполнить поиск пакета с наименованием mc.
pen@PEN-PC:~$ apt list mc

# Выполнить поиск пакета libwebkitgtk-3.0-0 указав маску *webkitgtk*
pen@PEN-PC:~$ apt list *webkitgtk*

install установка пакета. Пакеты могут быть установлены из официальных репозиториев Linux или из файлов, которые предварительно сохранены на локальный диск. При установке пакетов из репозиториев Linux загружаются последние версии продуктов.

# Установить интерактивный файловый менеджер mc (Midnight Commander)
# с репозитория ubuntu.com
pen@PEN-PC:~$ sudo apt install mc

# Установить пакет сервера 1С Предприятие из локальной папки DISTR,
# которая находится в домашнем каталоге.
# При установке пакета из локального каталога требуется указывать
# полный путь до пакета.
pen@PEN-PC:~/DISTR$ sudo apt install ./1c-enterprise83-server_8.3.16-1148_amd64.deb

remove удаление пакета

# Удалить интерактивный файловый менеджер mc (Midnight Commander) из Linux
pen@PEN-PC:~$ sudo apt remove mc

Управление сервисами

Сервера 1С:Предприятие и PostgreSQL в ОС Linux работают как сервисы. А это значит, что нужно уметь их запускать, останавливать и определять статус, в котором они находятся.

Команда service предназначена для управления сервисами. Выполнить запуск и остановку сервиса возможно только с привилегиями суперпользователя. Примеры управления сервисами:

# Вывести список всех сервисов и их статусов
# Сервис srv1cv83 некорректно показывает свой статус при использовании status-all
pen@PEN-PC:~$ service --status-all
 [ - ]  postgresql                
 [ - ]  postgresql.save           
 [ + ]  srv1cv83                  

# Вывести статус конкретного сервиса
pen@PEN-PC:~$ service postgresql status
10/main (port 5432): down

# Запустить сервис и проверить статус
pen@PEN-PC:~$ sudo service postgresql start
 * Starting PostgreSQL 10 database server
pen@PEN-PC:~$ service postgresql status
10/main (port 5432): online

# Остановить сервис
pen@PEN-PC:~$ sudo service postgresql stop
 * Stopping PostgreSQL 10 database server

Горячие клавиши терминала

Открыть терминал Windows (cmd) в ConEmu [Win + X]

Закрыть терминал [Ctrl + D] или команда exit

Очистить окно терминала [Ctrl + L] или команда clear

Очистить текущую строку терминала (удалить введённые в строку команды) [Ctrl + U]

Прервать выполнение команды [Ctrl + C]

И самая главная кнопка [Tab] дополняет (заканчивает) наименование команды, имя файла или путь

Шаг 6. Установка сервера 1С:Предприятие

Небольшое но важное отступление перед началом установки сервера 1С:Предприятие.

Важное замечание

Сервер 1С:Предприятие установленный в ОС Linux не проверяет серверный ключ защиты если используется один рабочий процесс и количество клиентских подключений не более 12. Однако, и это важно, компания 1С предоставляя такую техническую возможность не предоставляет юридического разрешения эксплуатировать сервер 1С:Предприятие таким образом. Иными словами для законного использования сервера 1С:Предприятие требуется приобретение лицензии.

Дополнительные библиотеки

Для корректной работы сервера 1С:Предприятие потребуются следующие библиотеки

Библиотека

Назначение

libwebkitgtk-3.0-0

webkitgtk-3.0.0

libMagickWand-6.Q16

ImageMagick требуется для построения диаграмм

libfontconfig

Требуется для сохранения файлов в формате PDF

libfreetype6

Требуется для сохранения файлов в формате PDF

libgsf-1-common

Требуется для работы с файлами в формате XLS

libglib2.0

Требуется для работы с внешними источниками данных

unixodbc

Требуется для работы с внешними источниками данных

libkrb5-3

Требуется для работы механизма аутентификации

libgssapi-krb5-2

Требуется для работы механизма аутентификации

Требуемые, для работы сервера 1С:Предприятие библиотеки можно установить одним вызовом программы apt. Для этого в качестве параметра необходимо указать список всех библиотек через пробел:

# Установка всех пакетов одной командой
pen@PEN-PC:~$ sudo apt install libwebkitgtk-3.0-0 libMagickWand-6.Q16 libfontconfig libfreetype6 libgsf-1-common libglib2.0 unixodbc libkrb5-3 libgssapi-krb5-2

Дополнительные шрифты

Для корректной работы платформы 1С:Предприятие потребуется установить дополнительные шрифты и перестроить файл настроек шрифтов. Ниже приводится типовой сценарий установки дополнительных шрифтов.

# Установим дополнительные шрифты
pen@PEN-PC:~$ sudo apt install ttf-mscorefonts-installer

# Утилита fc-cache пересоздает файл ./etc/fonts/fonts.conf
# в котором находятся настройки шрифтов
pen@PEN-PC:~$ fc-cache -fv

Но, как подсказал Владимир Литвиненко в статье infostart.ru официальные репозитории Ubuntu содержат далеко не самые актуальные версии пакетов с дополнительными шрифтами. Поэтому в случае использования Ubuntu, а это наш случай, правильным будет следующий сценарий установки дополнительных шрифтов:

# Перейдем в каталог DISTR. В эту папку мы складываем полученные дистрибутивы.
pen@PEN-PC:~$ cd ~/DISTR

# С помощью утилиты wget скачаем пакет с дополнительными шрифтами
# с официального репозитория Debian. Файл будет сохранен в рабочий каталог.
pen@PEN-PC:~/DISTR$ wget http://ftp.de.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.7_all.deb                                                                                                                         

# Установим дополнительные шрифты из локальной папки, указав 
# полный путь до файла
pen@PEN-PC:~/DISTR$ sudo apt install ./ttf-mscorefonts-installer

# Утилита fc-cache пересоздает файл ./etc/fonts/fonts.conf
# в котором находятся настройки шрифтов
pen@PEN-PC:~/DISTR$ fc-cache -fv

Установка сервера 1С:Предприятие

Ранее мы скачали архив дистрибутива сервера 1С:Предприятия (64-bit) для DEB-based Linux-систем из репозитория компании 1С в свой локальный репозиторий, который как мы договорились располагается в папке C:\TMP_C. Далее требуется извлечь из архива пакеты, предназначенные для установки. Выполним следующие действия в консоли Linux и за одно потренируемся управлять системой.

Шаг первый. В домашней папке пользователя создадим каталог DISTR/1CSRV (дистрибутив сервера 1С). Все дальнейшие манипуляции с архивами и дистрибутивами сервера 1С будем выполнять в этой папке.

# Создадим папку DISTR/1CSRV в домашнем каталоге пользователя.
# Сокращение ~/ интерпретируется как путь к домашнему каталогу пользователя.
pen@PEN-PC:~$ mkdir ~/DISTR/1CSRV/

Шаг второй. Скопируем архив deb64_8_3_16_1148.tar.gz из папки C:\TMP_C операционной системы Windows 10 в папку ~/DISTR операционной системы Linux. Обратите внимание, именно здесь проявляется сила подсистемы WSL. ОС Linux доступны все ресурсы нашего компьютера, включая диски и папки Windows.

# cp (copy) это программа для копирования файлов и папок.
# -fi опции программы. 
# f (force) перезаписывать если существует.
# i (interactive) задавать вопрос пользователю перед перезаписью
# /mnt каталог Linux с примонтированными дисками, среди которых и диски Windows.
pen@PEN-PC:~$ cp -fi /mnt/c/TMP_C/deb64_8_3_16_1148.tar.gz ~/DISTR/1CSRV/

И на конец шаг третий. Распакуем архив deb64_8_3_16_1148.tar.gz с помощью утилиты tar (tape archive)

# Перейдем в папку, где располагается архив дистрибутива.
# Так удобнее пользоваться программой архиватора tar
pen@PEN-PC:~$ cd ~/DISTR/1CSRV/

# -xvf опции программы tar
# x (extract) извлечь файлы из архива
# v (verbose) выводить подробную информацию процесса
# f (file) далее будет указано имя файла архива
pen@PEN-PC:~/DISTR/1CSRV$ tar -xvf ~/DISTR/1CSRV/deb64_8_3_16_1148.tar.gz

После подготовительных операций в каталоге DISTR будут находиться пакеты для установки сервера 1С:Предприятия и системы ключевой защиты. Следующие пакеты требуется установить в указанной последовательности.

Порядок установки

Наименование пакета

Назначение пакета

1

1c-enterprise83-common_8.3.16-1148_amd64.deb

Пакет содержит общие компоненты «1С:Предприятия»

2

1c-enterprise83-server_8.3.16-1148_amd64.deb

Пакет содержит компоненты сервера «1С:Предприятия» и утилита контроля целостности

3

1c-enterprise83-ws_8.3.16-1148_amd64.deb

Пакет содержит адаптер для публикации Web-сервисов «1С:Предприятия» на веб-сервере на основе Apache HTTP Server 2.0, 2.2 или 2.4

Установим пакеты. Для установки пакетов из локального репозитория (из папки на диске) пакетному менеджеру требуется указать полный путь до пакета. Удобно перед установкой пакетов перейти в папку репозитория и тогда можно указывать относительный путь до пакета.

# Установим все пакеты из локального репозитория 
# одной командой в требуемой последовательности.
# Сокращение ./ обозначает текущую папку, то есть ~/DISTR/1CSRV/
pen@PEN-PC:~/DISTR/1CSRV$ sudo apt install ./1c-enterprise83-common_8.3.16-1148_amd64.deb ./1c-enterprise83-server_8.3.16-1148_amd64.deb ./1c-enterprise83-ws_8.3.16-1148_amd64.deb

Установка системы защиты HASP сервера 1С:Предприятие

В этой лабораторной работе мы не будем уделять время установке системы защиты. Предлагаю самостоятельно ознакомится с инструкцией на сайте its.1c.ru Также, прошу внимательно ознакомиться с важным замечанием, которое находится в начале этого шага.

Включение режима отладки на сервере

Изменим настройки сервера 1С:Предприятие и включим возможность проводить отладку на сервере. Для этого нам потребуется внести изменения в конфигурационный файл сервера srv1cv83, который находится в папке /etc/init.d Данную процедуру необходимо сделать до запуска сервиса сервера 1С:Предприятие.

# открыть конфигурационный файл srv1cv83 сервера 1С:Предприятие в редакторе nano
pen@PEN-PC:~$ sudo nano /etc/init.d/srv1cv83

С помощью редактора nano в конфигурационном файле нужно установить параметр SRV1CV8_DEBUG. Так было:

# 1C:Enterprise server configuration debug mode
# 0 - default - off                           
# 1 - on                                      
#                                              
#SRV1CV8_DEBUG  

так стало:

# 1C:Enterprise server configuration debug mode
# 0 - default - off
# 1 - on
#
SRV1CV8_DEBUG=1

После изменений необходимо сохранить файл [Ctrl + O] и выйти из редактора nano [Ctrl + X].

Запуск службы сервера 1С:Предприятие

Сервис сервера 1С:Предприятие называется srv1cv83. Для того, что бы сервер 1С:Предприятие работал сервис должен быть запущен. Ниже приведены команды управления сервисом:

# проверить статус сервиса
pen@PEN-PC:~$ service srv1cv83 status
1C:Enterprise 8.3 server status:
Init script: STARTED.
     Ragent: RUNNING.

# запустить сервис
pen@PEN-PC:~$ sudo service srv1cv83 start
Starting 1C:Enterprise 8.3 server: OK

# остановить сервис
pen@PEN-PC:~$ sudo service srv1cv83 stop
Stopping 1C:Enterprise 8.3 server: OK

Шаг 7. Установка сервера PostgreSQL

Дополнительные библиотеки

Сервер баз данных PostgreSQL требует, чтобы в операционной системе Linux были установлены дополнительные библиотеки или другими словами, зависимости. Архив ubuntu_18.04.3_server.x64.tar.gz со всеми необходимыми библиотеками мы заранее скачали в папку Windows C:\TMP_C см. Шаг 2.

Для удобства создадим в папке DISTR, которая располагается нашей домашней папке каталог SQLDEP (SQL Dependence) и распакуем в него содержимое архива

# Перейдем в домашнюю папку
pen@PEN-PC:~$ cd ~

# Создадим в папке DISTR вложенную папку SQLDEP
pen@PEN-PC:~$ mkdir ~/DISTR/SQLDEP/

# Скопируем из папки Windows C:\TMP_C архив с зависимостями в
# домашний каталог Linux в папку /DISTR/SQLPEP/
pen@PEN-PC:~$ cp /mnt/c/TMP_C/ubuntu_18.04.3_server.x64.tar.gz ~/DISTR/SQLDEP/

# Перейдем в каталог ~/DISTR/SQLDEP/ в который мы только что скопировали архив.
# Так удобнее пользоваться программой архиватора tar.
pen@PEN-PC:~$ cd ~/DISTR/SQLDEP/

# Распакуем архив с библиотеками в текущем каталоге
pen@PEN-PC:~/DISTR/SQLDEP$ tar -xvf ~/DISTR/SQLDEP/ubuntu_18.04.3_server.x64.tar.gz

# Обратите внимание, компания 1С пакеты библиотек собрала в папку
# ubuntu_18.04.3-server.x64 В этом легко убедится,
# просмотрев содержимое каталога ~/DISTR/SQLDEP/
pen@PEN-PC:~/DISTR/SQLDEP$ ls -l ~/DISTR/SQLDEP/

В папке ~/DISTR/SQLDEP/ ubuntu 18.04.3-server.x64/ находятся следующие файлы дистрибутивов:

  • libicu55:amd64 - библиотека интернационализации для Unicode
  • libllvm9:amd64 - программная инфраструктура для создания компиляторов и сопутствующих им утилит
  • postgresql-client-common - менеджер управления клиентамиPostrgeSQL
  • postgresql-common – менеджер кластера PostrgeSQL
  • ssl-cert - оболочка для библиотеки OpenSSL

Установим эти библиотеки

# Перейдем в папку ubuntu 18.04.3-server.x64 Обратите внимание, что
# в наименовании папки используется недопустимый символ подчеркивания
# и он экранируется обратным слешем.
pen@PEN-PC:~$ cd ~/DISTR/SQLDEP/ubuntu\ 18.04.3-server.x64/

# Установим все пакеты по маске *.deb, которые находятся в текущем каталоге
pen@PEN-PC:~/DISTR/SQLDEP/ubuntu 18.04.3-server.x64$ sudo apt install ./*.deb

Установка сервера PostgreSQL

После установки необходимых библиотек установим сам сервер баз данных. Архив дистрибутива сервера postgresql_11.5_12.1C_amd64_deb.tar.bz2 мы заранее скачали в папку Windows C:\TMP_C см. Шаг 2.

По аналогии с предыдущим шагом создадим в папке DISTR каталог SQL и распакуем в него содержимое архива.

# Перейдем в домашнюю папку
pen@PEN-PC:~$ cd ~

# Создадим в папке DISTR вложенную папку SQL
pen@PEN-PC:~$ mkdir ~/DISTR/SQL/

# Скопируем из папки Windows C:\TMP_C архив с дистрибутивом PostgreSQL в
# домашний каталог Linux в папку /DISTR/SQL/
pen@PEN-PC:~$ cp /mnt/c/TMP_C/postgresql_11.5_12.1C_amd64_deb.tar.bz2 ~/DISTR/SQL/

# Перейдем в каталог ~/DISTR/SQL/ в который мы только что скопировали архив.
# Так удобнее пользоваться программой архиватора tar.
pen@PEN-PC:~$ cd ~/DISTR/SQL/

# Распакуем архив с библиотеками в текущем каталоге
pen@PEN-PC:~/DISTR/SQL$ tar -xvf ~/DISTR/SQL/postgresql_11.5_12.1C_amd64_deb.tar.bz2

# Просмотрим содержимое каталога ~/DISTR/SQL/
# Обратите внимание, пакеты дистрибутива собраны
# в папку postgresql-11.5-12.1C_amd64_deb
pen@PEN-PC:~/DISTR/SQL$ ls -l ~/DISTR/SQL/

В папке ~/DISTR/SQL/postgresql-11.5-12.1C_amd64_deb находятся следующие файлы дистрибутива:

  • libpq5_11.5-12.1C – служебная библиотека сервера PostgreSQL для программирования приложений на языке С (сборка компании 1С)
  • postgresql-11_11.5-12.1C – серверная часть сервера PostgreSQL (сборка компании 1С)
  • postgresql-client-11_11.5-12.1C – клиентская часть сервера PostgreSQL (сборка компании 1С)

Установим сервер

# Перейдем в папку postgresql-11.5-12.1C_amd64_deb с дистрибутивом сервера
pen@PEN-PC:~$ cd ~/DISTR/SQL/postgresql-11.5-12.1C_amd64_deb/

# Установим все пакеты по маске *.deb, которые находятся в текущем каталоге
pen@PEN-PC:~/DISTR/SQL/postgresql-11.5-12.1C_amd64_deb$ sudo apt install ./*.deb

Защита пакетов от обновлений

Платформа 1С:Предприятие работает только с сервером PostgreSQL который собирает компания 1С.

Небольшое отступление:

На самом деле платформа 1С:Предприятие работает не только со сборками от компании 1С. Специальные сборки для 1С выпускают и другие компании. Однако, наибольшую активность в адаптации PostgreSQL за последний год проявляет именно компания 1С.

Платформа 1С:Предприятие не будет работать с сервером PostgreSQL если тот обновиться на оригинальные пакеты от компании Postgres (так называемая ванильная версия). Такое может произойти при обновлении системы Linux, см Шаг. 4 пункт Обновление Linux. Для защиты сервера базы данных от неконтролируемого обновления зафиксируем версии дистрибутива

# Перейдем в домашнюю папку
pen@PEN-PC:~$ cd ~

# Зафиксируем пакет libpq5
pen@PEN-PC:~$ sudo apt-mark hold libpq5

# Зафиксируем пакет postgresql-11
pen@PEN-PC:~$ sudo apt-mark hold postgresql-11

# Зафиксируем пакет postgresql-client-11
pen@PEN-PC:~$ sudo apt-mark hold postgresql-client-11

# Проверим, что собранные компанией 1С пакеты зафиксированы от обновлений
pen@PEN-PC:~$ apt-mark showhold

Запуск и начальная настройка сервера

Только что установленный сервер баз данных требуется запустить. Для этого воспользуемся программой управления сервисами services.

# Проверим текущий статус сервиса PostgreSQL. Видно, что сервис
# остановлен, а сам сервер баз данных слушает порт 5432.
pen@PEN-PC:~$ service postgresql status
11/main (port 5432): down

# Запустим сервис. Потребуются привилегии суперпользователя
pen@PEN-PC:~$ sudo service postgresql start

Во время установки сервера PostgreSQL в систему Linux был добавлен пользователь postgres. В этом легко убедиться, воспользовавшись утилитой вывода в консоль содержимого файлов cat (concatenate)

# Просмотрим содержимое файла passwd, который содержит список всех
# пользователей системы. Вывод этой команды показан частично.
pen@PEN-PC:~$ cat /etc/passwd
pen:x:1000:1000:,,,:/home/pen:/bin/bash
usr1cv8:x:999:1001:1C Enterprise 8 server launcher:/home/usr1cv8:/bin/sh
postgres:x:113:118:PostgreSQL administrator,,,:/var/lib/postgresql:/bin/bash

Все операции с сервером баз данных будем выполнять от имени пользователя postgres. Перед началом использования сервера SQL необходимо задать пароль этого пользователя. Воспользуемся интерактивным терминалом PostgreSQL psql.

# Переключимся на пользователя postgres. Обратите внимание на то
# как изменилась строка приглашения
pen@PEN-PC:~$ sudo su postgres
postgres@PEN-PC:/home/pen$

# Перейдем в домашнюю папку пользователя postgres
postgres@PEN-PC:/home/pen$ cd ~

# Откроем терминал PostgreSQL. Обратите внимание, что строка
# приглашения изменилась
postgres@PEN-PC:~$ psql
postgres=#

# Установим пароль 1111 для пользователя postgres. Обратите внимание
# с сервером баз данных мы можем общаться только SQL запросами, поэтому
# точка с запятой в конце запроса обязательна.
postgres=# ALTER USER postgres WITH PASSWORD '1111';
ALTER ROLE

# Закончим работу с терминалом PostgreSQL введя команду \q
postgres=# \q
postgres@PEN-PC:~$

Готово, пароль пользователя postgres установлен, теперь осталось выйти из этого пользователя и вернуться в нашего стандартного пользователя.

# Выйдем из пользователя postgres с помощью команды exit.
# Обратите внимание на то как изменилась строка приглашения.
postgres@PEN-PC:~$ exit
pen@PEN-PC:~$

Шаг 8. Установка оснасток серверов

Установка оснастки администрирования сервера 1С:Предприятие

Оснастка администрирования работает в Windows 10 и управляет сервером 1C:Предприятие, который работает на Linux. Оснастка как компонента входит в дистрибутив платформы 1С:Предприятие 8 (х86-64) для Windows.

Если оснастка уже установлена, то в программной группе 1C:Предприятие 8 (х86-64) вы увидите программу Администрирование серверов 1С Предприятия x86-64. Если такой программы нет, то ее требуется установить.

Установить оснастку можно при начальной установке платформы 1С:Предприятие 8 (х86-64) включив компоненту Администрирование сервера 1С Предприятия x86-64.

Если при начальной установке платформы оснастка не была установлена, то можно это сделать позже. Выполните в Windows 10 следующие действия. Откройте Параметры системы Windows и далее Установка и удаление программ. Выберите установленный программный продукт 1C:Предприятие 8 (х86-64) и нажмите кнопку Изменить. В открывшемся окне Обслуживание программ выберите опцию Изменить и нажмите кнопку Далее. В окне Выборочная установка включите установку компоненты Администрирование сервера 1С Предприятия x86-64 и нажмите кнопку Далее. Для изменения набора компонент вам потребуется дистрибутив соответствующей версии.

Установка pgAdmin4

Программа pgAdmin4 предназначена для интерактивного управления и администрирования серверов PostgreSQL в системе Windows. Программа работает в браузере.

Для установки запустите файл инсталляции pgadmin4-4.18-x86.exe, который мы ранее скачали и сохранили в папке C:\TMP_C. Следуйте шагам установки соглашаясь с рекомендуемыми параметрами.

После установки оснастка управления сервером PostgreSQL будет находиться в программной группе pgAdmin 4.

При запуске она откроется в WEB браузере, который установлен как браузер по умолчанию. Сервис postgresql в Linux должен работать, подробнее смотри Шаг 7. Первым откроется окно для ввода пароля пользователя postgres.

Укажите пароль, который мы установили на этапе настройки сервера см. Шаг 7. В нашем примере пароль это 1111.

Если сервис postgresql не запущен, то при попытке подключится к серверу pgAdmin выдаст сообщение: could not connect to server: Connection refused (0x0000274D/10061) Is the server running on host "192.168.1.10" and accepting TCP/IP connections on port 5432?

Шаг 9. Создание кластера серверов

И так, мы на финишной прямой. Сервера установлены и работают. Пора создать кластер серверов 1С:Предприятие.

Проверим, что сервисы серверов работают. Удобно воспользоваться командой top (table of processes) которая является аналогом диспетчера задач в Linux. Среди работающих процессов в колонке COMMAND вы должны увидеть процессы с наименованиями postgres и ragent

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND        
 2700 postgres  20   0  297012  15264   7300 S   1,7  0,0   0:05.67 postgres       
 2438 usr1cv8   20   0  173940  25664  23576 S   0,0  0,0   0:00.37 ragent         

Что бы выйти из программы top и вернуться в терминал нажмите [Ctrl + C]

Важное замечание

Как написано выше WSL это программный слой в операционной системе Windows, который позволяет запускать программы Linux. Эту способность WSL легко продемонстрировать открыв диспетчер задач Windows. Если сервисы серверов в Linux запущены, то процессы postgres и ragent будут видны и в диспетчере задач Windows. Таким образом, приложениям, которые работают в Linux доступны все ресурсы Windows.

Если сервера остановлены, то запустим их

# Запустим сервис postgresql. Потребуются привилегии суперпользователя
pen@PEN-PC:~$ sudo service postgresql start

# Запустим сервис srv1cv83. Потребуются привилегии суперпользователя
pen@PEN-PC:~$ sudo service srv1cv83 start

Дальнейшие операции будут проводиться в Windows в оснастке администрирования серверов 1С:Предприятие.

Создание центрального сервера 1С:Предприятие

Кластер серверов состоит из центрального сервера и рабочих серверов. Центральный сервер главная часть кластера. Он один и он обязателен. Рабочие сервера в кластере создаются при необходимости и могут отсутствовать.

В оснастке на элементе дерева Central 1C:Enterprise 8.3 servers нажимаем правую кнопку мыши и выбираем команду Создать Центральный сервер 1С:Предприятия 8.3

В окне Новый центральный сервер заполняем поля:

  • Имя. Указываем имя хоста, который связан с IP адресом нашей машины, см. Шаг 4 В моем случае имя хоста PEN-PC
  • Описание. Понятный комментарий к серверу, например Центральный сервер PEN-PC

Поля, Протокол и IP порт не меняем и оставляем значения по умолчанию.

Создание кластера сервера

Кластер серверов это точка входа к которой подключаются клиенты 1C:Предприятие. Кластером серверов управляет центральный сервер.

В оснастке на элементе дерева Кластеры нажимаем правую кнопку мыши и выбираем команду Создать Кластер.

В окне Новый кластер заполняем поля:

  • Имя кластера. Указываем имя нашего кластера, например PEN-Cluster
  • Компьютер. Указываем имя компьютера, на котором работает центральный сервер кластера. В нашем примере это PEN-PC
  • IP Порт. Указываем порт по умолчанию для менеджера кластера 1541

Отключение IPv6

Необходимо на машине, на которой работает центральный сервер кластера отключить интернет протокол IPv6. Если этого не сделать при работе сервера будут выдаваться сообщения об ошибках.

Шаг 10. Загрузка демонстрационной конфигурации

Создание пустой базы

В системе Windows запустим платформу 1C и создадим новую информационную базу. Создадим информационную базу без конфигурации (пустую) для того, чтобы в дальнейшем загрузить туда демонстрационную базу. Дадим наименование Демонстрационная база. Тип расположения информационной базы на сервере 1С:Предприятия.

Заполним карточку новой базы:

  • Кластер серверов. Укажем имя хоста, на котором работает центральный сервер кластера. В моем примере это PEN-PC
  • Имя информационной базы в кластере. Укажем имя DemoDB
  • Тип СУБД. Выберем PostgreSQL
  • Сервер баз данных. Укажем имя хоста, на котором работает сервер баз данных. В моем примере это PEN-PC
  • Имя базы данных. Укажем имя DemoDB
  • Пользователь базы данных. Имя пользователя postgres
  • Пароль пользователя. Пароль пользователя базы данных нами установлен на Шаге 7 и имеет значение 1111.

Остальные параметры оставим по умолчанию и закончим создание новой базы.

Загрузка демонстрационной базы

На Шаге 2 в папку локального репозитория мы сохранили архив с демонстрационной базой, которую предоставляет компания 1С.

Распакуем архив с демонстрационной базой demodt_8_3_16_1148.zip в папку локального репозитория. В архиве содержится выгрузка информационной базы 1cv8.dt.

Загрузим выгрузку информационной базы в нашу пустую базу используя конфигуратор.

Войдем в базу в пользовательском режиме.

Поздравляю, мы настроили рабочее место программиста на Linux.

 

ps. Дорогие читатели, в конце позвольте несколько вопросов:

  1. нужно ли продолжать цикл статей Рабочее место программиста в формате лабораторных работ?
  2. нужно ли видео с демонстрацией всех шагов работы?
  3. какие темы будут интересны для следующих работ?

См. также

Linux Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Александр Кириллов, руководитель группы разработки компании «ИТ-Экспертиза», на конференции INFOSTART TECH EVENT 2024 выступил с докладом на тему «Как найти и устранить платформеннозависимый код менее, чем за 5 лет». Материал получился интересным и объемным, поэтому мы решили сделать на базе выступления Александра цикл статей. В первой части начнем с особенностей работы информационных систем 1С под управлением ОС Linux.

06.12.2024    1128    it-expertise    6    

19

Linux Системный администратор Программист Бесплатно (free)

Проект перевода 10+ систем 1С на 2000+ пользователей в Авито завершен успешно, преодолев технические трудности и «черных лебедей» в виде неопределенности, демотивации, потерь производительности и нереалистичных требований руководства. Расскажем об опыте проекта, в котором было «очень страшно», но в итоге всё получилось.

29.11.2024    1305    kirill.skoromykin    1    

7

Linux Программист Бесплатно (free)

При многолетней эксплуатации 1С на Windows и MS SQL в базе накапливаются не самые оптимальные запросы, COM-объекты и скрипты, зависящие от ОС. Из-за этого процесс перехода на PostgreSQL и переноса сервера 1С на Linux неизбежно осложняется длительным исправлением кода и оптимизацией запросов. Расскажем о том, как с задачей такого рефакторинга справились в компании Avito.

13.11.2024    5587    klimat12    17    

26

Облачные сервисы, хостинг Linux Тестирование QA Сервера Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Завершающая публикация цикла "В облако на работу:.. Рецепты от Капитана", в ходе которых был собран полнофункциональный рабочий контур 1С в сети на отечественной Ред ОС. С веб-серверами, доменной авторизацией, архивированием, отказоустойчивостью и прочая, прочая... В этой статье мы определяемся с быстродействием системы, проводим нагрузочное тестирование и отпускаем ее в свободное плавание (зачеркнуто) выпускаем ее в продуктовый контур, где, конечно же, придется отлавливать ошибки, мониторить состояние и т.п.

31.10.2024    1460    capitan    0    

0

Облачные сервисы, хостинг Linux Сервера Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Одна из завершающих публикаций цикла "В облако на работу:.. Рецепты от Капитана", в ходе которых был собран полнофункциональный рабочий контур 1С в сети на отечественной Ред ОС. С веб-серверами, доменной авторизацией, архивированием и прочая, прочая... На закуску разбираемся с отказоустойчивостью. В этой публикации для серверов 1С заодно попробуем подобно сериалу «Разрушители легенд» подтвердить или опровергнуть пару устойчивых мифов о требованиях назначения функциональности.

18.10.2024    1940    capitan    5    

12

Linux Системный администратор Программист Стажер Платформа 1С v8.3 Россия Бесплатно (free)

1C > Postgres > (Linux) > мы (=проблемы в 2024). Информация будет полезна начинающим 1С программистам (и сисадминам). Без ИТС. Часть 1.

01.07.2024    5896    AlOkt    30    

20

Сканер штрих-кода Linux Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Драйвер сканера штрих-кодов в 1С выполнен по технологии NativeAPI, следовательно, поддерживается возможность работы в Linux, но сама настройка оказалось не такой простой, как в Windows, понадобились навыки администрирования linux. В данной публикации представлен опыт установки сканера Mercury CL-2200 P2D BT в ALT Linux.

18.06.2024    1586    MOleg82    1    

9
Вознаграждение за ответ
Показать полностью
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. for_sale 977 17.02.20 22:52 Сейчас в теме
Монументальная работа! Спасибо!
Alex_Iz; Jimbo; Бубузяка; DrAku1a; gubanoff; Plotks2017; POWone; Darklight; CyberCerber; user774630; infosoft-v; sapervodichka; +12 Ответить
2. oldcopy 174 18.02.20 01:31 Сейчас в теме
Неплохо! Позвольте несколько замечаний. С зависимостями Postgres вы перемудрили, достаточно одного libicu55, postgresql-common ставится из репозитория. Кроме того, прибивать пакеты через apt-mark hold не нужно, пакеты от 1С не обновятся, так как имеют отличное от ванильных наименование, с суффиксом 1С внутри.
gigapevt; +1 Ответить
3. Nigelist 18.02.20 06:51 Сейчас в теме
(2) у них отличия не в имени пакета, а в версии. И если в репах доступна 12 версия, то обновится как милая.
6. tka4enk0 146 18.02.20 11:54 Сейчас в теме
(2) я делаю запрет на обновление. иначе из репозитория обновляются. десятая версия так точно обновлялась.
infosoft-v; +1 Ответить
7. oldcopy 174 18.02.20 11:57 Сейчас в теме
(6) Да, точно, перепутал с версией от PostgresPro.
infosoft-v; +1 Ответить
8. starik-2005 3092 18.02.20 12:43 Сейчас в теме
(2)
прибивать пакеты через apt-mark hold не нужно
libpq как минимум нужно "прибить гвоздями", ибо если этого не сделать, то при обновлении libpq будет обновлен и постгрес, а постгрес от 1С будет удален, т.к. возникнет неразрешимый конфликт (по крайней мере с постгресом от ПРО ровно так и выходит, но с ним только libpq и надо захолдить - остальное не мешает).

Автору: в принципе в убунту уже давно systemd и для 1С юзается, и - тем более - для постгреса, поэтому (на мой взгляд) лучше использовать вместо "system" (для system V) утилиту управления службами "systemctl" (systemd). Пока многие приложения поддерживают и то, и другое, но systemd более функциональна и содержит механизмы логирования сетевой и прочей активности. Но пока работает и так.
22. infosoft-v 931 18.02.20 19:42 Сейчас в теме +10 $m
(8)
Автору: в принципе в убунту уже давно systemd и для 1С юзается, и - тем более - для постгреса, поэтому (на мой взгляд) лучше использовать вместо "system" (для system V) утилиту управления службами "systemctl" (systemd). Пока многие приложения поддерживают и то, и другое, но systemd более функциональна и содержит механизмы логирования сетевой и прочей активности. Но пока работает и так.


Особенность WSL, как я это понимаю отсутствие загрузчика systemd. Например в ответ на команду systemctl получаю такой вывод:
pen@PEN-PC:~$ systemctl
System has not been booted with systemd as init system (PID 1). Can't operate.


Я думаю ваш сценарий отлично сработает при запуске Linux в виртуальной машине, но при использовании WSL приходится пользоваться утилитой service для управления сервисами вместо systemctl
4. user764477 18.02.20 10:49 Сейчас в теме
В зависимостях линуксового клиента до сих пор есть сервер 1С? И если да, то как они это комментируют?
10. Vladimir Litvinenko 2899 18.02.20 13:41 Сейчас в теме
(4) В зависимостях только толстого клиента есть сервер.

Не думаю, что разработчики платформы вообще что-либо комментируют, они же в зазеркалье, а для комментариев есть штатные евангелисты. Да и то в основном на Хабре )) В последних релизах 8.3.15 и 8.3.16 платформы, в связи с ещё одним изменением интерфейса, клиенты 1С вообще себя странно на Linux ведут. Блокирующее окно меньшего размера может неожиданно спрятаться под окно владельца. Или потерять фокус. В конфигураторе тоже артефакты вернулись, которые раньше уже пропадали. Видимо клиентская часть 1С на Linux не очень хорошо тестируется.

С другой стороны зависимость толстого клиента от серверных пакетов не сильно напрягает, в отличие от ошибок GUI. Сервер ведь можно и не запускать, достаточно чтобы зависимости толстого клиента были удовлетворены.
11. user764477 18.02.20 13:45 Сейчас в теме
(10)
Ясно, спасибо. Меня больше интересовала юридическая сторона вопроса в данном контексте. Есть, значит есть.
36. check2 380 24.02.20 21:40 Сейчас в теме
(10)
8.3.15 и 8.3.16
Как раз, начиная с 15й платформы много интерфейсных косяков толстого клиента (я в основном сейчас о конфигураторе речь веду) поправили, включая прячущиеся окна калькулятора и календаря. А вот на платформа 14 и ниже в линуксе совсем плохо. В конфигураторе - ни одна длительная операция не отображается должным образом. Вообще не понятно что то делает система или нет.
5. anatfe 18.02.20 11:46 Сейчас в теме
Пару раз брался, но быстро терял интерес и забрашивал. Браво, за труды, усидчивость и за изложение. Теперь знаю чем займусь в выходные. Спасибо!
POWone; infosoft-v; +2 Ответить
9. Chai Nic 161 18.02.20 13:04 Сейчас в теме
Непонятно, что мешает фирме 1с поднять свой репозиторий для линукс-версий платформы 1с. Чтобы ставить без танцев с бубнами и распаковками архивов вручную. Всё равно без аппаратной или программной лицензии эти файлы смысла не имеют. В конце концов, репозиторий может быть с доступом по логину и паролю.
starik-2005; igee12; letarch; +3 Ответить
12. Vladimir Litvinenko 2899 18.02.20 13:54 Сейчас в теме
(9) Может быть мешает тот же фактор, который не позволяет отказаться от упаковки дистрибутивов платформы в архивы RAR и сделать разные заголовки для страниц, с которых, производится скачивание, вместо одной надписи "Релизы" где бы ты не находился? ))

Спасибо Postgres Pro, не так давно появился удобный способ установки PostgreSQL. Скрипты с https://1c.postgres.ru/ получить можно. С сайта релизов ИТС не только платформу, но и СУБД ставить довольно сложно. Всё ориентировано на ручные действия и для установки скриптами приходится держать дистрибутивы в своих репозиториях.
igee12; nvv1970; +2 Ответить
13. frkbvfnjh 805 18.02.20 15:11 Сейчас в теме
Статья хорошая, но есть вопрос - а есть ли практический смысл ставить сервер 1С на Линукс работающий из под Виндовс? Я к тому что для 99% 1Сников проще все установит под 1С и работать. Или цель статьи научить поднимать WSL и устанавливать 1С-сервер под Линукс?
14. frkbvfnjh 805 18.02.20 16:01 Сейчас в теме
(13)
Я к тому что для 99% 1Сников проще все установит под 1С и работать

Опечаточка - для 99% 1Сников проще все установит под Windows и работать
15. Darklight 33 18.02.20 16:47 Сейчас в теме
(14)Конечно проще. Но для саморазвития - это очень полезная статья! Ну а далее - никогда не знешь что там в России будет далее - может придётся работать в конторе где все на Линкусах сидеть будут (ну или по крайней мере - сервера уж точно) - причём на отвечесвтенных - импортозамещение наше всё!
infosoft-v; +1 Ответить
17. frkbvfnjh 805 18.02.20 16:59 Сейчас в теме
(15) Ну для саморазвития - согласен! А то я думал, что не заметил какого то сакрального смысла...
infosoft-v; +1 Ответить
18. Darklight 33 18.02.20 17:02 Сейчас в теме
(17)Но я написал - что саморазвитие саморазвитием - а Linux на предприятиях сейчас уже не такая уж редкость как лет 10-20 назад - так что надо саморазвиваться - а то можно и нарваться не сейчас, так в будущем - и к этому надо быть готовым! Ну а тестовую среду удобнее поднять прям в windows - тем более что 99% 1С-ников о такой возможности даже не знали! Но нужна 10-ка windows - то есть это не для всех годно.... но другие могут и виртуалку поднять - а остальное всё почти так же. Правда статей про развёртыванию и Posgree и 1С на Linux на виртуальной машине написано уже вполне достаточно!
infosoft-v; +1 Ответить
23. infosoft-v 931 18.02.20 19:50 Сейчас в теме
(13) Спасибо за положительный отзыв. Действительно хотелось разобраться в Linux и WSL позволил это сделать очень просто.
Однако, после всех экспериментов я понял, что установить сервера в Linux совершенно не сложнее чем в Windows. Психологический порог пройден.
starik-2005; +1 Ответить
45. dvsidelnikov 73 10.11.22 21:11 Сейчас в теме
(13) погонять SQL версию, без покупки лицензии на сервер 1С и без всяких пиратских плясок с бубном.
16. Darklight 33 18.02.20 16:57 Сейчас в теме
Отличная статья. Вот только не пойму почему "рабочее место программиста на Linux" так и осталось на Windows - нужно было и толстого клиента 1С: Предприятие 8 на Linux разворачивать! И отдельно кросс-платформенный EDT тоже на Linux поставить, и GIT-инфраструктуру развернуть. ъъ

Ну а в конце - вообще было бы неплохо и девелоперскую среду для разработки внешних компонент под Linux развернуть (причём если за основу берёте Window 10 - то и компоненты нужно показать как разрабатывать и тестировать с применением микрософтовских продуктов - кросс-платформенную VS Code на Linux и VS Community 2019 с компиляцией для Linux на Windows с отладкой уже в Linux среде), т.е. вести кросc-платформенную разработку Native компонент 1С прямо на Windows компьютере - вот это был бы шик (понятно что это отдельная статья - отдельная лаб работа). Причём в VS Code можно и код обычных конфигураций 1С Предприятие 8 править.

Ну и среду разработки мобильной платформы 1С под Linux тоже здорово развернуть (но это уже тоже - шик делюкс был бы).

Кстати, уж для полного шика можно было бы и MS SQL Server для Linux развернуть (отдельной лабой, наверное) или его 1С Предприятие 8 пока не поддерживает? Обзорная статья на эту тему уже как-то была, кстати, но тогда ещё точно не поддерживал - приходилось это кустарно обходить!

Ну это так - пожелания на будущее - может что-то из этого уже запланировано для других лабораторных работ!

В общем статья супер - автор - пиши ещё!
infosoft-v; +1 Ответить
21. pm74 203 18.02.20 19:02 Сейчас в теме
(16)
толстого клиента 1С: Предприятие 8 на Linux разворачивать!

разработка в 1с под win все же комфортнее
infosoft-v; +1 Ответить
26. Darklight 33 19.02.20 09:14 Сейчас в теме
(21)Насколько я понимаю, целью лабораторных работ не является достижения комфорта и гармонии. Их цель - это обретение опыта!
Да и, как я тут уже в комментария написал, сейчас такое время - что всё выше и выше вероятность не сегодня так завтра столкнуться с необходимостью работать без windows - и к этому нужно быть готовым.
Да и отладку кросс-платформенного кода тоже надо уметь выполнять!
30. pm74 203 19.02.20 09:49 Сейчас в теме
(26)
цель - это обретение опыта

я и написал про собственный опыт
у меня mint в кач-ве основной ос и меня все устраивает , но с 1с предпочитаю работать по rdp
24. infosoft-v 931 18.02.20 19:56 Сейчас в теме
(16) Спасибо за идеи для новых лабораторных работ.
Соглашусь с коллегой, в Windows конфигуратором пользоваться действительно удобнее.
Так же нужно помнить, что WSL предоставляет Linux без графической оболочки.

(16)
Кстати, уж для полного шика можно было бы и MS SQL Server для Linux развернуть (отдельной лабой, наверное) или его 1С Предприятие 8 пока не поддерживает? Обзорная статья на эту тему уже как-то была, кстати, но тогда ещё точно не поддерживал - приходилось это кустарно обходить!


На сколько я знаю, для работы с сервером баз данных MS SQL сервер 1С:Предприятие должен быть установлен в Windows. Установка сервера 1С в Linux при такой конфигурации не допускается.
29. Darklight 33 19.02.20 09:29 Сейчас в теме
(24)
Так же нужно помнить, что WSL предоставляет Linux без графической оболочки.

Ну, можно было бы не под WSL развернуть. Лабораторные работы - это практический опыт, а не удобство - они показывают возможности, а дальше уже каждый сам будет решать - как это ему использовать в коммерческой деятельности.

На сколько я знаю, для работы с сервером баз данных MS SQL сервер 1С:Предприятие должен быть установлен в Windows. Установка сервера 1С в Linux при такой конфигурации не допускается.

Вот я не знаю как сейчас с этим - может что-то уже изменилось. Точно знаю, что фактически организовать взаимодействие 1С Предприятие 8 с MS SQL Server на Linux можно - просто уже не помню как. Надо бы проверить на актуальной платформе 8-ки
На худой конец - можно попробовать развернуть на WLS MS SQL Server Linux - а сервер 1С: Предприятие 8 развернуть в среде исходной Windows - показав и такое взаимодействие
19. Sergitax 18.02.20 17:16 Сейчас в теме
В свете массового перехода госорганов на СПО - очень даже актуально. Сами сейчас разворачиваем свои решения в ЦОДах, где только СПО.
infosoft-v; +1 Ответить
20. user1050352 18.02.20 18:23 Сейчас в теме
Автор молодец, я даже не знал что есть такой инструмент как WSL и реализовывал бы все на виртуалках.
e-tixom; infosoft-v; +2 Ответить
27. Darklight 33 19.02.20 09:17 Сейчас в теме
(20)И, вероятно, правильно делали бы. Для производительного продуктива WSL всё равно не подходит. Это скорее тестовая среда. Так что умение развёртывать виртуальные машины и ставить на них Linux - тоже хороший опыт. Да и WSL, как тут написали, не имеет графической среды - что существенно ограничивает его применение
25. nvv1970 19.02.20 08:18 Сейчас в теме
Я одного не понял...
Хост и wsl имеют одно имя и ip.
Как вы их разделили, как вы из вне обращаетесь в wsl?
28. Darklight 33 19.02.20 09:21 Сейчас в теме
(25)Но сетевые порты то разные - ведь формально обе среды - это один компьютер - просто движки исполнительной среды для ПО (читай - подключаемые фреймворки библиотек) разные для этого ПО. Внешняя среда ничего не знает про WSL - она общается по единому для Windows и Linux низкуровневому протоколу обмена данными. Хотя, специфичную для Linux сеть Samba поднять тоже можно - Windows умеет её поддерживать
31. nvv1970 19.02.20 10:50 Сейчас в теме
(28) Ну да вообще-то... Все верно. Например, апач 80 на хосте, 8080 на wsl. Иначе конфликт. Имя одно. В статье все общими фразами. Потерял цель и смысл. Мне на секунду показалось, что пытаются именами развести wsl и хост.

PS: wsl очень хорош, как "среда линукс под рукой". Но именно среда(кастрированная), а не полноценная машина. Имхо, пихать туда службы - изврат.
32. 13jaguar 94 20.02.20 09:07 Сейчас в теме
Я уже 4 года использую для тестирования подобную систему на виртуальной машине. Все собирался написать статью, но руки не доходили. А у Автора дошли. Он молодец!
Теперь небольшое дополнение. Утверждение:
Однако, наибольшую активность в адаптации PostgreSQL за последний год проявляет именно компания 1С.
не вполне верно.
Например, PostgresPro выпустили уже 12-ю версию (12.1) под будущую платформу 8.3.17, а 1С лишь догоняет версией 11.5.12. Только вот, убрали они со своего сайта ссылки на скачивание. Обидно! Ведь их сборка имеет уникальный ключ, блокирующий нежелательное обновление на стандартную Postgres.
Кстати, эту 12-ю версию я уже попробовал. Действительно, с платформой 8.3.16 она безвозвратно убивает базы. Последняя версия для платформы 8.3.16 - postgrespro-1c-11.6.
33. 13jaguar 94 20.02.20 09:16 Сейчас в теме
1. нужно ли продолжать цикл статей Рабочее место программиста в формате лабораторных работ?

ДА, обязательно!!!

2. нужно ли видео с демонстрацией всех шагов работы?

Видео нужно далеко не всегда, слишком много времени тратится на его просмотр, а информация в башке откладывается слабо. Лучше делать скриншоты с максимально возможной четкостью и дополнительными элементами, акцентирующими внимание.

3. какие темы будут интересны для следующих работ?

Сразу предлагаю установку web-сервера и публикацию базы. В моей практике постоянно требуется отладка web- и http-сервисов, для чего необходим web-сервер.

Еще неплохо осветить тему установки, запуска и использования сервера ras (аналог COM из Windows)

Кроме того, есть смысл разобрать тему автоматизации развертывания всей этой системы с помощью скриптов bash или python. Это отдельная большая тема.
34. infosoft-v 931 20.02.20 22:19 Сейчас в теме
(33) Спасибо за добрый отзыв и интересные темы для следующих работ
35. Vintik-vint 21.02.20 08:05 Сейчас в теме
Спасибо, заметка и правда хорошая, а с учётом импортозамещения этого, так ещё актуальнее... Хорошо бы всё это делать пытаться именно на "наших" типа Астра, Альт и т.п. Линуксах, чтоб сразу все костыли опробовать,а то вот так всё прекрасно сделали, а потом приходят регуляторы и говорят надо... и всё в итоге ломается и приходится как то криво косо запускать на том, что требуется по нормативки.
37. check2 380 24.02.20 21:44 Сейчас в теме
Хорошая статья, так сказать выжать по максимуму из баша для форточек, но для полного погружения всё же лучше поставить убунту на Hyper-V :)
38. check2 380 07.03.20 20:32 Сейчас в теме
Коллега, а вы нашли способ как заставить установленные службы стартовать при старте Windows?
У меня не получилось. Каждый раз после запуска приходится заходить и запускать руками.
Пробовал команду:
sudo systemctl enable <servicename>
Команда как ни странно работает, если посмотреть после такой инструкции:
sudo systemctl list-unit-files | grep enabled
То службу в списке видно, но она не стартует автоматом.
39. infosoft-v 931 08.03.20 08:49 Сейчас в теме
(38) Добрый день. Я сейчас готовлю методичку второй лабораторной работы, где будет подробно разобрана эта задача.
В WSL старт сервисов решается через планировщик задач Windows
40. check2 380 08.03.20 19:10 Сейчас в теме
(39)
В WSL старт сервисов решается через планировщик задач Windows

Через добавление в sudoer исключения для пользователя? Ну расскажете, в любом случае :)
41. v_vasilev 4 05.05.21 10:11 Сейчас в теме
нужно ли продолжать цикл статей Рабочее место программиста в формате лабораторных работ?

так точно.
нужно ли видео с демонстрацией всех шагов работы?

в большинстве случаев видео некогда смотреть на работе.
какие темы будут интересны для следующих работ?

развернуть на том же сервере систему взаимодействия. и вообще, по взаимодействиям примеры использования.

спасибо!
42. dvsidelnikov 73 08.09.21 13:48 Сейчас в теме
WSL 2 уже может запускать приложения с графическим интерфейсом?
43. infosoft-v 931 10.09.21 11:57 Сейчас в теме
44. dvsidelnikov 73 10.09.21 19:28 Сейчас в теме
(43) гораздо лучше дела с масштабированием интерфейса обстоят дела в линукс чем в Windows, на мой взгляд. Хотелось бы иметь возможность воспользоваться этим преимуществом чтобы увеличить шрифты интерфейса приложений на ОФ и конфигуратора и при этом не сделать их ужасными как в w10, например.
46. chilyagin 91 23.05.24 17:56 Сейчас в теме
Автор только один вопрос. Вы тестировали саму отладку на сервере при такой конфигурации?
47. infosoft-v 931 24.05.24 16:10 Сейчас в теме
(46)Добрый день. Да, тестировал и все работало штатно.

Но есть одно но.
В последних версиях платформы компания 1С закрыла возможность использования сервера 1С Предприятие на Linux без действующей лицензии. Теперь сервер и на Linux требует лицензию.

Однако, компания 1С выпустила лицензию разработчика, которую можно использовать и на сервере 1С Предприятие.
Оставьте свое сообщение