Uploaded by DiXaT

Евгений Плешивцев. Обустраиваем Linux для разработчика 1С

advertisement
Обустраиваем Linux для разработчика 1С
Плешивцев Евгений
Информационный Софт
Волгоград
1
Тема доклада
Еще полгода назад Linux для меня был параллельной вселенной,
пока не появилась WSL.
Мне понравилась эта система и я нашел ей применения.
Буду рад, если это доклад побудит вас сделать первый шаг к миру
Linux.
2
Подсистема WSL
WSL - Linux под рукой
Для чего вам может понадобиться Linux
 Прикоснуться к ранее неизведанному
 Некоторый программы под Linux работают лучше, чем под Windows. Например: PostgreSQL,
Apache, Docker.
 Лучше понимать мир большого интернета
3
Подсистема WSL
Две версии WSL
https://docs.microsoft.com/ru-ru/windows/wsl/compare-versions
WSL 1
WSL 2
• Linux не совсем полноценный, например
нет процесса systemd
• Linux полноценный
• Работа через программный слой Windows
10 означает, что Linux доступно все железо
хостового компьютера
• В WSL1 доступны COM порты хостовой
машины https://clck.ru/QH7Dx
• Все железо виртуальное, ровно то, которое
выделила виртуальная машина
• При каждом старте Linux виртуальная
машина получает динамический IP адрес 
Как выбрать
Выбирайте WSL2 всегда, кроме тех случаев, когда вам нужно железо хостовой
машины или мешает динамический IP.
4
Подсистема WSL
ConEmu – главный инструмент
https://conemu.github.io/
ConEmu это удобный браузер консольных приложений. Например, терминал Linux, консоль
CMD, FAR.
• Настройка. Обновление задач.
• Настройка. Начальный каталог консоли CMD
• Настройка. Начальный каталог консоли Bash
/dir %CD%
wsl.exe ~ -d Ubuntu-20.04
5
Установка Linux в WSL
Только ключевые моменты
https://docs.microsoft.com/ru-ru/windows/wsl/
✔Проверим версию Windows
✔ Проверим, что все необходимые компоненты Windows 10 включены (Подсистема Windows
для Linux; Платформа виртуальной машины)
✔ Переключим систему WSL на версию 2
✔ Если это первая установка в WSL 2, то потребуется обновить компоненту ядра
✔ Установим дистрибутив Linux из магазина Microsoft store
✔ Выполним первый запуск Linux
✔ Установим последние обновления системы Linux
6
Установка Linux в WSL
Управление WSL
https://docs.microsoft.com/ru-ru/windows/wsl/reference
• Текущее состояние подсистемы Linux. Просмотр списка распределений.
$ wsl -l -v
NAME
STATE
VERSION
* Ubuntu-20.04 Stopped 2
• Выбор версии WSL для новых распределений
$ rem 'переключение на wsl версии 2, все новые установки ОС Linux’
$ rem 'будут выполнены в WSL2’
$ wsl --set-default-version 2
• Выключение Linux серверов 💤
$ rem 'выключение всех серверов’
$ wsl --shutdown
$ rem 'выключение выбранного распределения’
$ wsl --terminate Ubuntu-20.04
7
Установка Linux в WSL
Способы запуска Linux
 Пуск – Программы – Ubuntu 20.04 LTS
 ConEmu – Консоль Ubuntu
 Консоль CMD – wsl
 Консоль CMD – bash
8
Доступ к файлам
Доступ к файлам из Linux
Находясь в терминале Linux вам доступна, вся файловая система Windows10
Каталог /mnt/wsl/ (начиная со сборки 19018 Windows 10), это временный каталог доступный
всем работающим распределениям. Это удобный способ обмена файлами между
работающим операционным системам.
9
Доступ к файлам
Доступ к файлам из Linux
Несколько замечаний для начинающих
• Регистр в наименованиях каталогов и файлов важен
• Пробелы нужно экранировать
• Текущий каталог нужно указывать (привыкайте сразу)
10
Доступ к файлам
Доступ к файлам из Windows
Находясь в Windows 10 вам доступна, вся файловая система Linux.
Способы доступа:
• Проводник Windows 10
\\wsl$\Ubuntu-20.04
• Терминал Linux в рабочем каталоге
$ explorer.exe .
Позиция компании Microsoft
https://clck.ru/QHq7i
НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ НЕ
открывайте, не создавайте и / или не
изменяйте файлы Linux внутри папки
«% LOCALAPPDATA%»
11
Доступ к файлам
Запуск программ
Побочным эффектом прозрачного доступа к файлам является возможность запускать
программы из соседней среды.
• Из консоли CMD можно запустить программу Linux, например редактор nano. Выйдя из
редактора, мы вернемся обратно в CMD
$ wsl nano
• В терминале Linux можно запустить программу Windows:
pen-wsl2@PEN-HOME:~$ ipconfig.exe
12
IP адреса
IP адреса в WSL 1
С WSL1 все просто😉.
IP адрес сервера Linux равен IP адресу хостовой машины.
В этом есть определенное преимущество WSL1 перед WSL2. Например, мы можем связать
наш статический IP адрес с DNS именем в файле hosts Windows 10 и после этого обращаться к
обеим системам и к Linux и к Windows через это доменное имя.
13
IP адреса
Доступ по IP из Linux (WSL 2)
Тут все довольно просто, из Linux к серверу запущенному на хостовой машине можно
обратиться по:
• IP адресу хостовой машины, который выдан маршрутизатором (рекомендую ☝ настроить в
маршрутизаторе статические адреса)
• Динамический IP адрес, выданный виртуальному Ethernet адаптеру (vEthernet (WSL)) при
старте WSL. Выяснить адрес можно выполнив в терминале Linux следующую команду:
pen-wsl2@PEN-HOME:~$ cat /etc/resolv.conf
14
IP адреса
Доступ по IP из Windows (WSL 2)
Если нужно из Windows обратиться к серверу запущенному в Linux, то нужно использовать
следующие IP адреса:
• localhost. Компания Microsoft в WSL 2 для всех сервисов, работающих в Linux, сделала
проброс IP портов в localhost.
• Динамический IP адрес, выданный виртуальному Ethernet адаптеру eth0 в Linux при старте
WSL. Выяснить адрес можно набрав в терминале Linux следующую команду: hostname -I
15
IP адреса
Приколотить IP адреса, намертво🔨
В Windows 10 назначьте статический IP адрес на своем железном маршрутизаторе
В Linux можно воспользоваться следующими вариантами:
• При старте WSL динамически меняем IP адрес пользовательского хоста в файле
C:\Windows\System32\drivers\etc\hosts (https://github.com/shayne/go-wsl2-host)
• При запуске Linux выполнять конфигурирование Ethernet адаптера eth0
(https://clck.ru/QHyYV) Для удобства я сделал cmd файлы. Брать на моем github
https://github.com/petypen/StartUbuntuWSL
16
USB порты
C USB портами в WSL 2 плохо. Очень плохо.
Есть сложный и не очень изящный способ использовать USB порты хостовой машины, но его
описание достойно отдельного доклада. Краткое описание необходимых шагов, что бы вы
оценили размер проблемы приведено ниже.
1. Добавить в ядро Linux поддержку USB устройств
• Получить исходники ядра Linux с репозитория Microsoft
• C помощью специальной утилиты изменить конфигурацию ядра Linux
• Собрать новое ядро Linux
• Собрать дополнительные модули USBIP
• Настроить конфигурацию так, чтобы при старте Linux WSL 2
использовало новое ядро
2. Установить в Linux USB драйвера. Создать командный файл для запуска
драйверов USBIP. Его необходимо запускать каждый раз, когда в Linux
требуется USB порт
3.Установить на хостовой машине сервер USB over IP а в Linux установить
клиента USB over IP
17
USB порты
C USB портами в WSL 2 плохо. Очень плохо.
Но все-таки решаемо…
Три главные ссылки:
1.
Основная инструкция
на github
https://clck.ru/QQadN
2.
Дополнительная
инструкция на reddit
https://cutt.ly/1frb7zc
3.
VirtualHere
https://virtualhere.com
18
SQL сервер PostgreSQL
см. ИТС 🤷♂️
19
Сервер 1С:Предприятие
см. ИТС
Шпаргалка по названиям пакетов Ubuntu дополнительных библиотек необходимых для
сервера 1С:Предприятие
Наименование
библиотеки на ИТС и
минимальная версия
FreeType 2.1.9
Наименование пакета
для Ubuntu20.04
libfreetype6
Назначение
Для работы сервера «1С:Предприятия» в управляемом режиме;
При использовании на сервере объектов Диаграмма,
ГрафическаяСхема, ТабличныйДокумент;
При использовании метода ПолучитьКартинку() объектов
Диаграмма, ДиаграммаГанта, Дендрограмма, СводнаяДиаграмма;
При выполнении операции сохранения в PDF.
Libgsf 1.10.1
libgsf-bin
Экспорт/импорт документов в формате XLS
Glib 2.12.4
unixOdbc 2.2.11
libgsf-1-common
libglib2.0-0
unixodbc
Экспорт/импорт документов в формате XLS
Работа с внешними источниками данных
20
GIT
В дистрибутиве Ubuntu 20.04 от Microsoft GIT присутствует, но репозиторий пакетов Ubuntu
содержит далеко не самую последнюю версию.
Для автоматического обновления GIT подключите PPA (персональный архив пакетов) от
компании git-scm по инструкции https://git-scm.com/download/linux
~$ sudo add-apt-repository ppa:git-core/ppa
~$ sudo apt update
~$ sudo apt upgrade
21
OneScript
Прекрасный ❤ инструмент для автоматизации, который отлично работает под Linux.
Для тех, кто впервые слышит это имя дам короткую справку. OScript или полное
наименование OneScript это кросс-платформенная реализация виртуальной машины,
исполняющей скрипты на языке 1С:Предприятие.
С помощью OScript удобно решать административные задачи и задачи автоматизации
процесса разработки.
Интерпретатор реализован для операционных систем Windows и Linux. Проект
разрабатывается на языке C# и платформе .NET Framework.
Основные ресурсы в Интернет, связанные с OneScript:
• Официальный сайт проекта https://oscript.io/
• Библиотека пакетов для OScript
https://github.com/oscript-library
• Чат поддержки в Telegram
https://t.me/oscript_library
22
OneScript
Установка OneScript
Репозиторий находится на сайте проекта https://oscript.io/downloads Скачайте последний
дистрибутив вручную или с помощью утилиты wget.
Дополнительно, рекомендую обновить платформу Mono на которой построен OneScript для
Linux. Мною было замечено, что отладчик OneScript работает корректно, только на последних
версиях платформы.
Источник информации, как обновить Mono – официальный сайт проекта:
https://www.mono-project.com/download/stable/#download-lin-ubuntu
23
Visual Studio Code
• Установите VSCode в Windows 10, если вы этого еще не сделали 
• В терминале Linux введите code . (с точкой в конце)
24
Visual Studio Code
Добавьте необходимые для работы с OneScript расширения
• Russian Language Pack for Visual Studio Code - русификация
• Git Graph – удобный инструмент работы с GIT
• Language 1C (BSL) – главный инструмент разработчика на OScript
• OneScript Debug – пошаговая отладка в OScript
• Markdown All in One – помощь в редактировании markdown
25
Автоматизация в Linux
В Linux автоматизацию можно делать на привычном инструменте
Пример задачи:
Решение задачи в моем репозитории
В системе Linux, которая работает в WSL
автоматизировать запуск и остановку
серверов 1С:Предприятие 8 (srv1cv83) и
PostgreSQL (postgresql). Лог работы скрипта
сохранять в файл srvmng.log
https://github.com/petypen/SRVMNG
26
Мои контакты
@petypen
https://github.com/petypen
https://infostart.ru/profile/138802/
Евгений Плешивцев
27
Download