- Записки IT специалиста
- Установка клиента 1С:Предприятие 8.3 на Debian / Ubuntu
- Платформа 8.3.12 и более ранние
- Платформа 8.3.13 и ошибка с libpng12
- Активация программной лицензии
- Операционные системы Astra Linux
- Тонкий бездисковый клиент на базе Ubuntu, не требующий монтирования ФС по сети
- История
- Что умеет
- Аналоги
- Vagrant vs chroot
- Непослушный кабачок
- Магия initrd
- Борьба за оверлеи
- Где нужна возможность записи
- Итого
Записки IT специалиста
Технический блог специалистов ООО»Интерфейс»
- Главная
- Установка клиента 1С:Предприятие 8.3 на Debian / Ubuntu
Установка клиента 1С:Предприятие 8.3 на Debian / Ubuntu
В последние годы интерес к альтернативным ОС, прежде всего Linux, возрастает, причем не только со стороны пользователей, но и со стороны разработчиков. Фирма 1С достаточно давно развивает свою платформу для использования в среде Linux, а теперь к ней стали подтягиваться производители торгового оборудования, выпуская драйвера и для этой ОС. Поэтому использование Linux в качестве платформы для рабочего места выглядит все более привлекательно и сегодня мы обобщим свой опыт и расскажем об установке клиентской части 1С:Предприятие в среде современных выпусков Debian / Ubuntu.
Так как в требованиях к актуальным релизам 1С:Бухгалтерия значится минимальный релиз платформы 8.3.12.1529, то мы будем устанавливать последнюю версию платформы 8.3.12 — 8.3.12.1685, а затем обновим ее до 8.3.13.1513, тем не менее все сказанное будет актуально для всех текущих версий платформы 8.3.
Для установки мы будем использовать следующие версии операционных систем и рабочих окружений: Debian 9.5 (Gnome 3), Ubuntu 16.04.5 LTS (Unity) и Xubuntu 18.04.1 LTS (XFCE 4). Мы специально выбрали разные рабочие среды, чтобы оценить их влияние на процесс установки, но скажем сразу, особого влияния выбранная рабочая среда не имеет, за исключением предустановленного набора пакетов, поэтому мы постараемся дать максимально развернутую инструкцию, которая во многих случаях окажется избыточной.
Также данная статья будет актуальна для всех дистрибутивов производных от Debian / Ubuntu с поправкой на версии пакетов, для этого обратитесь к документации вашего дистрибутива.
Платформа 8.3.12 и более ранние
Прежде всего установим все необходимые зависимости. В различных версиях ОС и рабочего окружения разный набор установленных по умолчанию пакетов, поэтому мы дадим универсальный вариант, и, если вы увидите сообщение типа:
то не следует беспокоиться, это означает, что данный пакет уже есть в вашей системе и можно переходить к следующему шагу.
Если вы используете Debian, то мы рекомендуем подключить все репозитории, для этого откройте /etc/apt/sources.list и добавьте после main в каждую строку contrib и non-free.
Затем обновим список пакетов:
Часть пакетов у вас уже может быть установлена, это нормально, мы специально пошли по пути избыточности, ради универсальности данного материала.
Следующий пакет должен быть установлен по умолчанию, но на всякий случай следует проверить.
Для Ubuntu 16.04:
Для Debian 9 и Ubuntu 18.04:
Для установки клиентской версии платформы вам потребуется скачать с сайта 1С два архива: Клиент 1С:Предприятия для DEB-based Linux-систем и Cервер 1С:Предприятия для DEB-based Linux-систем. Обратите внимание, что разрядность скачиваемых архивов должна соответствовать разрядности системы, мы не видим особой необходимости в использовании x32 (i386) систем, поэтому в дальнейшем, если это не оговорено особо, все действия будут производиться для платформы x64 (amd64).
Коротко разберем состав архивов, в поставку клиента входят пакеты:
- client — клиентские приложения (толстый клиент и тонкий клиент) «1С:Предприятия»
- thin-client — тонкий клиент «1С:Предприятия» (не поддерживается работа с файловым вариантом информационной базы)
В состав сервера:
- common — общие компоненты «1С:Предприятия»
- server — компоненты сервера «1С:Предприятия»
- ws — адаптер для публикации Web-сервисов «1С:Предприятия» на веб-сервере на основе Apache HTTP Server 2.0, 2.2 или 2.4
Также в поставке присутствуют пакеты с суффиксами -nls, они содержат языковые ресурсы, кроме русского и английского языков, поэтому если они вам не нужны, то их установка необязательна, в нашем примере мы их установим (исходя из принципа разумной избыточности, так как наш блог читают не только в России).
Создайте отдельную папку и скопируйте туда пакеты client из поставки Клиента и пакеты common и server из поставки Сервера, в итоге, с -nls, у вас должно оказаться шесть пакетов:
Теперь откроем консоль и перейдем в папку с пакетами, проще всего это сделать, щелкнув в ней правой кнопкой мыши и выбрать Открыть в терминале:
Повысим права до суперпользователя и установим пакеты командой:
Затем находим значок 1С в меню и запускаем приложение, все должно работать.
Для завершения процесса отключим автозапуск службы сервера 1С, которая для работы клиента не нужна, это необязательно, но желательно по соображениям экономии ресурсов и безопасности, для этого выполним:
Как видим, ничего сложного в установке клиентской платформы 1С:Предприятие на Linux нет. Достаточно придерживаться инструкции и установить все необходимые зависимости.
Платформа 8.3.13 и ошибка с libpng12
При установке или обновлении до платформы 8.3.13, актуальный релиз на сегодня — 8.3.13.1513, вы можете столкнуться с ситуацией, когда 1С отказывается запускаться, эта ошибка проявляется в Debian 9 и Ubuntu 18.04.
Если запустить приложении из консоли, то мы увидим ошибку:
После чего все становится на свои места. В новых дистрибутивах библиотеку libpng12 заменила libpng16, но 1С продолжает искать старую библиотеку (причем только последний релиз 8.3.13), оставим это на совести разработчиков 1С.
Что делать? Скачать нужный пакет из репозитория Debian 8 или Ubuntu 16.04. Непосредственно на системе это можно сделать командой (для x64 систем):
Для 32-х битных систем аналогичная команда будет:
Затем установим пакет:
или для 32-х бит:
После чего 1С снова начнет запускаться.
Активация программной лицензии
Основным типом защиты современных конфигураций 1С является программная лицензия, поэтому в данной статье мы не будем касаться HASP-ключей. Как показали отзывы, у многих возникают затруднения в активации программной лицензии на платформе Linux, поэтому коротко коснемся одной особенности.
Если запустить информационную базу в режиме 1С:Предприятия, то получим сообщение о том, что не найдена лицензия, при этом программа даже не предложит ввести лицензию.
Поэтому запустите базу в режиме конфигуратора, и вы увидите привычное окно получения лицензии:
Надеемся, что после прочтения данной статьи у вас не возникнет проблем с установкой клиентской платформы 1С на базе современных версий Debian / Ubuntu, также мы всегда готовы ответить на ваши вопросы в комментариях.
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
Или подпишись на наш Телеграм-канал:
Источник
Операционные системы Astra Linux
Оперативные обновления и методические указания
Операционные системы Astra Linux предназначены для применения в составе информационных (автоматизированных) систем в целях обработки и защиты 1) информации любой категории доступа 2) : общедоступной информации, а также информации, доступ к которой ограничен федеральными законами (информации ограниченного доступа).
1) от несанкционированного доступа;
2) в соответствии с Федеральным законом от 27.07.2006 № 149-ФЗ «Об информации, информационных технологиях и о защите информации» (статья 5, пункт 2).
Операционные системы Astra Linux Common Edition и Astra Linux Special Edition разработаны коллективом открытого акционерного общества «Научно-производственное объединение Русские базовые информационные технологии» и основаны на свободном программном обеспечении. С 17 декабря 2019 года правообладателем, разработчиком и производителем операционной системы специального назначения «Astra Linux Special Edition» является ООО «РусБИТех-Астра».
На web-сайтах https://astralinux.ru/ и https://wiki.astralinux.ru представлена подробная информация о разработанных операционных системах семейства Astra Linux, а также техническая документация для пользователей операционных систем и разработчиков программного обеспечения.
Мы будем признательны Вам за вопросы и предложения, которые позволят совершенствовать наши изделия в Ваших интересах и адаптировать их под решаемые Вами задачи!
Репозитория открытого доступа в сети Интернет для операционной системы Astra Linux Special Edition нет. Операционная система распространяется посредством DVD-дисков.
Информацию о сетевых репозиториях операционной системы Astra Linux Common Edition Вы можете получить в статье Подключение репозиториев с пакетами в ОС Astra Linux и установка пакетов.
В целях обеспечения соответствия сертифицированных операционных систем Astra Linux Special Edition требованиям, предъявляемым к безопасности информации, ООО «РусБИтех-Астра» осуществляет выпуск очередных и оперативных обновлений.
Очередные обновления (версии) предназначены для:
- реализации и совершенствования функциональных возможностей;
- поддержки современного оборудования;
- обеспечения соответствия актуальным требованиям безопасности информации;
- повышения удобства использования, управления компонентами и другие.
Оперативные обновления предназначены для оперативного устранения уязвимостей в экземплярах, находящихся в эксплуатации, и представляют собой бюллетень безопасности, который доступен в виде:
- инструкций и методических указаний по настройке и особенностям эксплуатации ОС, содержащих сведения о компенсирующих мерах или ограничениях по примене- нию ОС при эксплуатации;
- отдельных программных компонентов из состава ОС, в которые внесены изменения с целью устранения уязвимостей, инструкций по их установке и настройке, а также информации, содержащей сведения о контрольных суммах всех файлов оперативного обновления;
- обновлений безопасности, представляющих собой файл с совокупностью программных компонентов из состава ОС, в которые внесены изменения с целью устранения уязвимостей, а также информации, содержащей сведения о контрольных суммах всех файлов обновлений безопасности, указания по установке, настройке и особенностям эксплуатации ОС с установленными обновлениями безопасности.
Ввиду совершенствования нормативно-правовых документов в области защиты информации и в целях обеспечения соответствия информационных актуальным требованиям безопасности информации, а также обеспечения их долговременной эксплуатации, в том числе работоспособности на современных средствах вычислительной техники, рекомендуется на регулярной основе планировать проведение мероприятий по применению очередных и оперативных обновлений операционной системы.
Источник
Тонкий бездисковый клиент на базе Ubuntu, не требующий монтирования ФС по сети
UPDATE 2020-11-06 Теперь проект поддерживает Ubuntu 20.04 Focal Fossa (LTS) и появился готовый вариант для сборки с использованием VMWare Horizon, наряду с FreeRDP.
Изображение с сайта getwallpapers.com
История
В далёком 2013 году в одном банке использовались тонкие клиенты на основе DisklessUbuntu. С ними были некоторые проблемы, по-моему монтирование корневой ФС по сети в больших филиалах со слабой сетью работало не очень. Тогда мой хороший друг @deadroot сделал первую версию тонкого клиента, который грузился целиком в память, не требуя что-то монтировать по сети для работы.
Потом этот клиент активно допиливал я, там было сделано много полезных штук, специфичных именно для нашего сценария использования. Потом банк закрылся (отозвали лицензию), остатки исходников клиента переехали на мой гитхаб: thunclient. Пару раз я его слегка допиливал на заказ.
Недавно у меня дошли руки сделать из этой кучи страшных ненадёжных скриптов достаточно удобное для использования решение:
- Vagrant поднимает виртуалку, которую можно настраивать как обычную рабочую станцию.
- Одним скриптом из неё собирается готовые для загрузки по сети файлы, лишнее вырезается.
- Vagrant поднимает виртуальный PXE сервер и сетевой клиент для проверки получившейся сборки.
Что умеет
В банке для удалённого подключения к тонкому клиенту пользователя использовался VNC ( x11vnc для подключения к уже запущенной сессии Xorg). Это далеко не всем требуется (обычно хватает возможности подключения к сеансу RDP на сервере терминалов), и тут всё очень индивидуально в плане требований удобства/безопасности. Поэтому эту часть я выкладывать не стал.
Аналоги
Если Thinstation полностью устраивает — то лучше пользоваться им, это более старый и зрелый проект. Плюс он раза в полтора меньше по размеру, всё-таки это специально заточенная под минимальный объём сборка, а не слегка допиленная обычная Ubuntu.
Но версии софта в нём достаточно древние и его там мало. Если нужно что-то дополнительное, помимо клиентов RDP/Citrix/… — потребуется собирать это руками, и так при каждом обновлении.
kvaps указал в комментарии, что LTSP может скопировать образ squashfs в память и работать без монтирования ФС по сети: это настраивается переменной LTSP_NBD_TO_RAM. Для настройки используется chroot, что может быть менее удобно, особенно для настройки графического окружения и приложений. Также хороший зрелый проект, можно рассматривать как альтернативу.
Vagrant vs chroot
Прошлые версии использовали chroot, как собственно и большинство похожих проектов, тот же Thinstation к примеру. Это несложно, но всё-таки запущенная в chroot отдельная программа не соответствует происходящему на реальной машине: нету взаимодействия с системным init, с другими программами и службами. Плюс Vagrant позволил сделать процесс создания клиента максимально простым: виртуалка настраивается как обычная машина.
Конечно, использование Vagrant приносит и некоторые сложности.
На машине должна работать служба virtualbox-guest-utils , для работы общих папок. Кроме того, нужен менеджер загрузки ( grub ), обязательный для машины с диском и бесполезный для загружаемого по сети клиента. Эти проблемы я решил, исключая из сборки все файлы этих пакетов. Поэтому на размер получившегося образа они не влияют.
Кроме того, для Vagrant обязателен работающий на машине ssh, пускающий пользователя со сгенерированным ключом. Я исключаю из сборки домашний каталог пользователя vagrant, используемого для настройки, вместе с его ssh ключами. Ключи для используемого при работе пользователя ubuntu можно положить в его домашний каталог.
Ну и для работы Vagrant генерирует настройки сетевых интерфейсов, которые будут ошибочными для реальной машины. Пришлось на время сборки подменять файл interfaces , и написать скрипт, который на реальной машине генерирует конфиг для настройки всех доступных интерфейсов по DHCP.
Provisioning делается с помощью Ansible. Это очень удобный инструмент для конфигурации всяческого софта и железа. Но включать в итоговый образ Ansible и требующийся ему второй python с нужными библиотеками не хотелось бы: бесполезный балласт. Ставить Ansible на машину, где запукается виртуальное окружение, тоже не хочется: это усложнит работу.
Vagrant позволяет сделать хитрость: поставить Ansible на одну машину (тестовый PXE сервер), и с неё делать разворачивание других машин, в рамках той же playbook. Для этого машины должны иметь статический IP, чтобы прописать его в ansible inventory. Ну а проблему с конфигурацией интерфейсов мы решили в прошлом пункте.
Непослушный кабачок
Squashfs — сжимающая read-only файловая система. Лежит в основе большинства существующих Linux LiveCD. Именно она позволяет создать достаточно компактный образ системы, помещающийся в оперативную память тонкого клиента.
Из итогового образа надо много чего вырезать: /tmp , /run , /proc , /sys , /usr/share/doc и так далее.
Утилита mksquashfs поддерживает аж 3 типа списков для исключения файлов: по полному пути, по маскам и по регулярным выражениям. Казалось бы, всё прекрасно. Но последние два варианта не поддерживают пути, начинающиеся с / . У меня не получилось исключить все файлы внутри некоторой структуры папок, не исключая последнюю папку.
Мне быстро надоело с ней бороться, я просто нашёл find -ом все файлы и папки, которые надо исключить, и запихнул в один большой файл с исключениями по полному пути. Костыли.jpg. Но работает. Единственным артефактом этого подхода в итоговом образе остаётся одинокая папка /proc/NNN , соответствующая номеру процесса mksquashfs, которого при создании списка исключений ещё не было. Сверху всё равно монтируется procfs.
Магия initrd
Чтобы не тянуть в составе ядра все необходимые драйвера и логику монтирования корневой ФС, Linux использует initial ramdisk. Раньше использовался формат initrd, в котором этот диск представлял собой настоящий образ файловой системы. В ядре 2.6 появился новый формат — initramfs, представляющий собой извлекаемый в tmpfs cpio-архив. Как initrd, так и initramfs могут быть сжаты для экономии времени загрузки. Многие названия утилит и имена файлов по-прежнему упоминают initrd, хотя он уже не используется.
В Debian/Ubuntu для создания initramfs используется пакет initramfs-tools. Он даёт следующие возможности для кастомизации:
- хуки — скрипты специального формата, которые позволяют добавлять в образ модули ядра и исполняемые файлы со всеми необходимыми им библиотеками
- скрипты в каталогах init-bottom , init-premount , init-top , local-block , local-bottom , local-premount , local-top , выполняемые в соответствующий момент загрузки. См. man initramfs-tools(8)
- самое интересное — добавлять собственные скрипты загрузки, отвечающие за монтирование корневой ФС. Они должны определять shell функцию mountroot() , которая будет использована главным скриптом /init . В составе уже есть local для монтирования корня на локальном диске и nfs для монтирования корня по сети. Используемый скрипт выбирается параметром загрузки boot .
Итого, чтобы примонтировать корневую ФС каким-то сильно хитрым образом, надо создать свой скрипт загрузки, определить в нём функцию mountroot() , передать имя этого скрипта в параметре загрузки boot и не забыть написать хуки, подтягивающие в initramfs все нужные скрипту программы и модули ядра.
Борьба за оверлеи
Для создания единой корневой файловой системы из нескольких используется OverlayFS. В первых версиях использовалась AUFS (она используется большинством линуксовых LiveCD). Но её не приняли в ядро, и сейчас всем рекомендуют переходить на OverlayFS.
После монтирования настоящей корневой ФС в каталог внутри initramfs, будет запущена программа run_init из состава klibc-utils . Она проверит, что корневая ФС смонтирована внутри initramfs, отчистит initramfs (зачем зря терять память?) и переместит точку монтирования корневой ФС в / , и запустит системный init. Подробности. Эта программа собрана в виде отдельного исполняемого файла, потому что скрипт, использующий любые внешние утилиты, сломается после отчистки initramfs.
Если корневая ФС собирается из нескольких оверлеев, смонтированных внутри initramfs, при работе run_init эти точки монтирования пропадают, и она ломается. Эту проблему можно решить, переместив точки монтирования оверлеев внутрь корневой ФС, где они уже не пропадут. Рекурсия 🙂 Делается так: mount —move olddir newdir .
AppArmor пришлось отключить: её профили рассчитаны на прямое монтирование корневой ФС с одного устройства. При использовании OverlayFS она видит, что /sbin/dhclient это на самом деле /AUFS/root/sbin/dhclient , и профиль ломается. Единственный вариант её использовать — переписать все профили для всех приложений, и обновлять при необходимости.
Где нужна возможность записи
Под идее, Linux может спокойно работать, когда все ФС примонтированы только на чтение. Но многие программы рассчитывают на возможность записи на диск, приходится монтировать туда tmpfs:
- /tmp , /var/tmp — понятно, нужны очень многим
- /var/log — пишем логи
- /run — без него не запустятся почти все сервисы
- /media — монтированиие подключенных носителей
- /var/lib/system — используется многими программами из systemd, в частности systemd-timesyncd
- /var/lib/dhclient — сюда dhclient записывает информацию о leases
- /etc/apparmor.d/cache — если вы всё-таки поборете AppArmor, то ему надо будет писать файлы в /etc . ИМХО отвратительно, для таких вещей есть /var .
Итого
Если вы хотите собрать загружаемую по сети и работающую только из памяти сборку Ubuntu — вот тут есть готовый удобный конструктор: thinclient. Если потребуется помощь — пишите в ЛС или в тикеты на гитхабе, подскажу.
Источник