Несмотря на то, что 64-разрядная платформа на сегодня является основной в серверном сегменте, фирма 1С продолжает продавать отдельно 32-х и 64-х разрядные версии своего Сервера, причем по различной стоимости. При этом у владельцев 32-разрядного сервера возникает необходимость его установки в 64-разрядной среде, если в Windows данная операция не вызывает затруднений, то в среде Linux все оказывается не так просто. Сегодня мы расскажем, как это правильно сделать.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Прежде чем приступать к работе, коротко разберем суть вопроса. Почему установка пакетов другой архитектуры в Linux вызывает определенные затруднения? В отличии от Windows, где в целях совместимости возможность запускать в 64-разрядной среде 32-разрядные приложения заложена на уровне архитектуры системы, дистрибутивы Linux собираются с поддержкой одной единственной архитектуры. Это связано с тем, что свободное ПО распространяется с исходными кодами и собрать пакет для определенной архитектуры не представляет никакого труда, поэтому пользователь 64-разрядного Linux получает с системой полный набор софта нужной разрядности и необходимости использовать пакеты иной архитектуры как правило нет.
Проблемы возникают при использовании коммерческого ПО разные по разрядности версии которого имеют различную стоимость, как в случае с 1С. Вариант с использованием 32-разрядной системы не выдерживает никакой критики, так как имеет существенные ограничения по используемым ресурсам, в первую очередь объему оперативной памяти, и если на этот же сервер планируется установка СУБД, то необходимость использования 64-разрядной платформы становится очевидной.
Для таких случаев все современные системы поддерживают мультиархитектуру, позволяющую устанавливать и запускать пакеты другой архитектуры, но просто установить 32-разрядный сервер 1С на 64-разрядную систему недостаточно, также нужно обеспечить наличие всех необходимых библиотек в 32-разрядном варианте, а это, как показывает практика, задача не столь простая. Данный материал был проверен на Ubuntu Server 14.04 и Debian 8, так как обе системы имеют много общего, то мы расскажем об установке на одну из них, а затем коротко обратим внимание на отличия для второй ОС.
Ubuntu Server 14.04 LTS
Если вы просто попробуете установить 32-разрядные пакеты в 64-разрядной ОС, то у вас ничего не получится, потому что "из коробки" Linux поддерживает только родную архитектуру.
Просмотреть список поддерживаемых архитектур можно командой:
dpkg --print-architecture
В нашем случае будет только одна amd64, для добавления требуемой архитектуры i386 выполните:
dpkg --add-architecture i386
После чего обязательно обновите список пакетов:
apt-get update
Теперь установим требуемые для работы сервера 1С библиотеки и утилиты нужной разрядности:
apt-get install imagemagick:i386
apt-get install unixodbc:i386
Требуемый пакет шрифтов Microsoft True Type является универсальным для всех архитектур, поэтому его устанавливаем как обычно, без указания архитектуры.
apt-get install ttf-mscorefonts-installer
А вот дальше начинаются сложности. Библиотека libgsf-1-114 отказалась устанавливаться, ссылаясь на неразрешенную зависимость.
Проблема заключается в том, что требуемый пакет libgsf-1-common:i386 не существует, он не содержит ничего, кроме документации и универсальный для всех архитектур.
Ручная установка пакета проблемы не снимает, установщик упорно продолжает требовать i386-пакет. Как быть? В принципе можно установить пакет принудительно, игнорируя зависимости. Однако это сломает систему управления пакетами, и вы не сможете установить, удалить или обновить пакеты, пока не разрешите проблему зависимостей libgsf-1-114, автоматическое разрешение зависимостей приведет к удалению данного пакета.
Самое время вспомнить про getlibs, скрипт для DEB-совместимых систем, который позволяет автоматически устанавливать 32-разрядные библиотеки на 64-разрядные системы. Скачаем данный скрипт со страницы разработчика на GitHub, настоятельно рекомендуем не использовать для получения скрипта иных источников. Разместим его, скажем, в домашней папке и сделаем исполняемым.
cd ~
chmod +x getlibs
Теперь с его помощью получим необходимые библиотеки:
./getlibs -p libgsf-1-114
Подготовительные действия закончены, можно устанавливать сервер. 1С распространяет пакеты сервера в архивах с именем deb.tar.gz, скачаем такой архив и разместим в домашней папке. Для установки перейдем в домашнюю папку, распакуем архив и установим пакеты.
cd ~
tar -xvf deb.tar.gz
dpkg -i 1c*.deb
Установим необходимые права на папку с сервером 1С и запустим службу:
chown -R usr1cv8:grp1cv8 /opt/1C
service srv1cv83 start
Наш сервер готов к работе.
Debian 8
Мы не будем подробно описывать процесс установки в Debian, так как он ничем принципиально не отличается от Ubuntu, а остановимся лишь на отличиях.
Если мы попытаемся просто установить 32-разрядную утилиту imagemagick, то неожиданно столкнемся с ошибкой: update-alternatives: ошибка: альтернативный путь /usr/bin/compare-im6 не существует.
Беглый поиск показал, что данная проблема известна, но решения найти не удалось. В тоже время все очень просто, нужно всего-лишь доустановить еще один пакет.
apt-get install imagemagick-6.q16:i386
apt-get install imagemagick:i386
Второе затруднение вызывает пакет ttf-mscorefonts-installer, дело в том, что несвободные репозитории, в которые входит данный пакет, по умолчанию не подключены (по идеологическим причинам). Можно подключить несвободный репозиторий, однако данный пакет по сути является просто скриптом, который скачивает необходимые файлы шрифтов. В связи с этим мы не видим необходимости подключать несвободные репозитории, проще скачать и установить данный пакет отдельно.
Скачать данный пакет можно на странице https://packages.debian.org/jessie/ttf-mscorefonts-installer. Разместим его в домашней папке и установим, перед этим добавив нужные зависимости.
cd ~
apt-get install xfonts-utils cabextract
dpkg -i ttf-mscorefonts-installer_3.6_all.deb
В остальном установка 32-разрядного сервера 1С на 64-разрядный Debian 8 ничем не отличается от установки на Ubuntu 14.04 и не должна вызывать затруднений.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Последние комментарии