Linux Calculate Scratch Server 14.16.2 + 1C+ PostgreSQL Вторая статья (первая часть).
Первая статья во вложении с картинками.
Автор: Исаков Азиз Ильбекович. 26.09.2015
Из цикла статей: Linux (Calculate Scratch Server) 1С PostgreSQL вторая статья, первая часть:
Установка сервера 1С платформа 8.3 (версия 8.3.6.2299) + PostgresSQL 9.2.4 на платформу операционной системы Calculate-Linux с использованием «hasp» ключа.
Первая часть, устанавливаем сервер.
Начало.
Часть первая. Создание своего локального оверлея.
После загрузки системы, он нам предлагает запустить ssh. Я воспользуюсь этим предложением, так как работать не удобно в этом окне. Я запущу ssh и после узнаю какой ip адрес получила виртуальная машина. После этого переду в другой терминал, например - PuTTY: Telnet/SSH Клиент
Теперь делаем следующие команды в терминале, делаем от root:
Сперва мы создадим собственный локальный оверлей, он нам понадобится для приведения «ebuild-а» нужное текущие состояние 1С платформы. На данный момент текущая платформа 1С версия 8.8.3.6.2299, как я и писал раньше в оверлеи «daks» находится последняя версия 1C 8.3.6.1188 а оверлеи «Yuego» версия 1C 8.3.6.2000, а мы например хотим версию 8.8.3.6.2299. Для этого мы и создаем свой локальный оверлей. Дальше я описываю как это сделать локально. Взято тут:
http://www.calculate-linux.ru/boards/40/topics/23668
Как создать собственный оверлей, в директории /var/calculate/portage
1 – Создаем директорию для оверлея
# mkdir -pv /var/calculate/portage/profiles
2 – Называем этот оверлей
# echo local >/var/calculate/portage/profiles/repo_name
3 – Регистрируем оверлей в системе портежей
# echo -e '\nPORTDIR_OVERLAY="${PORTDIR_OVERLAY} /var/calculate/portage"' >>/etc/portage/make.conf/custom
Дальше делаем так.
# mkdir -p /var/calculate/portage/metadata/
# echo "masters = gentoo" >> /var/calculate/portage/metadata/layout.conf
Иначе portage ругается:
!!! Repository 'local' is missing masters attribute in '/var/calculate/portage/metadata/layout.conf'
!!! Set 'masters = gentoo' in this file for future compatibility
4 – Создаем директории для пакетов
# mkdir /var/calculate/portage/app-office
Теперь подключим оверлей «daks».
# emerge -av dev-vcs/mercurial
# layman -a daks
Дальше копируем туда все нужные каталоги из оверлея «daks»
# cp -vR /var/lib/layman/daks/app-office/* /var/calculate/portage/app-office/
Все сделали, давайте теперь скопируем в каталог /var/calculate/portage/ следующий «ebuild» app-text/ttf2pt1
# mkdir /var/calculate/portage/app-text/
# cp -vR /usr/portage/app-text/ttf2pt1/ /var/calculate/portage/app-text/
зайдем в каталог /var/calculate/portage/app-text/ и удалим от туда «ebuild» ttf2pt1-3.4.4.ebuild
Зачем нам ttf2pt1-3.4.4-r1.ebuild? А и за ошибки его сборки, вот эта ошибка:
emake failed
* ERROR: app-text/ttf2pt1-3.4.4-r1::gentoo failed (install phase):
* (no error message)
Ну и соответственно будем его патчить — как советует и дает нам патч «Dmitry ‘daks’ Fomenko» https://bugs.gentoo.org/show_bug.cgi?id=514794.
Теперь переходим следующие части работы.
Часть вторая. Закачиваем нужные пакеты программ.
Делаем от «user-а».
Первым делом скачиваем сайта 1С всё программное обеспечение связанное с установкой «RPM» в Linux. Ссылка на сайт:
https://releases.1c.ru/total
Далее список пакетов что нужно скачать для платформа 1С 8.8.3.6.2299.
1. client.rpm32.tar.gz
2. rpm.tar.gz
3. thin.client.rpm32.tar.gz
4. client.rpm64.tar.gz
2. rpm.tar64.gz
3. thin.client.rpm64.tar.gz
Не спрашивайте почему у меня (не я писал «ebuild», я его только модернизирую). Все вопросы - «daks» Дмитрию Фоменко (Dmitry ‘daks’ Fomenko) и Артёму Власову (оверлей «Yuego»).
Делаем от root.
Распаковываем эти все пакеты в каталог:
/var/calculate/remote/distfiles/
Пример:
# tar xvfz /home/ВАШ ЮЗЕР/download/client.rpm32.tar.gz -C /var/calculate/remote/distfiles/
Часть третия. Правим «ebuild-ы» в директории app-office.
Делаем от root.
Теперь мы займется правкой «ebuild-od», не чего сложного там нет. Заходим в папку с помощью МС (Midnight Commander) - /var/calculate/portage/app-office/ и первая наша папка /1C_Enterprise-client удаляем все от туда (это обязательно, если это не сделать вам придется все версии скачать 1С платформы — которые указаны «ebuild-ах» ) «ebuild-ы» кроме одного 1C_Enterprise-client-8.3.5.1068.ebuild. Вот мы его и переименуем на 1C_Enterprise-client-8.3.5.1146.ebuild.
Пример:
# mv -v /var/calculate/portage/app-office/1C_Enterprise-client/1C_Enterprise-client-8.3.5.1068.ebuild /var/calculate/portage/app-office/1C_Enterprise-client/1C_Enterprise-client-8.3.5.1146.ebuild
Ну так для всех остальных директорий:
1. 1C_Enterprise-client
2. 1C_Enterprise-common
3. 1C_Enterprise-crs
4. 1C_Enterprise-server
5. 1C_Enterprise-ws
Список «ebuild-od» в которых надо заменить версию:
1. 1C_Enterprise-client-8.3.6.1188.ebuild
2. 1C_Enterprise-common-8.3.6.1188.ebuild
3. 1C_Enterprise-crs-8.3.6.1188.ebuild
4. 1C_Enterprise-server-8.3.6.1168.ebuild
5. 1C_Enterprise-ws-8.3.6.1168.ebuild
После этого мы создадим Manifest для последующей установки.
# ebuild /var/calculate/portage/app-office/1C_Enterprise-client/1C_Enterprise-client-8.3.6.2299.ebuild digest
Все остальные 4 по списку «ebuild-а» сделать так же как примере.
Часть четвертая. Решаем проблему пакета ttf2pt1-3.4.4-r1.ebuild.
Делаем от root.
Делаем патч от Dmitry ‘daks’ Fomenko. Взять тут
https://bugs.gentoo.org/show_bug.cgi?id=514794
а если кто не увидел то тут 
https://bugs.gentoo.org/attachment.cgi?id=380086&action=edit
mcedit /var/calculate/portage/app-text/ttf2pt1/files/ttf2pt1-3.4.4-freetype2.patch
либо другим любым редактором
Вставляем туда патч:
diff -Naur ttf2pt1-3.4.4-orig/ft.c ttf2pt1-3.4.4/ft.c
--- ttf2pt1-3.4.4.orig/ft.c 2014-07-02 14:19:32.000000000 -0700
+++ ttf2pt1-3.4.4/ft.c 2014-07-02 14:20:22.794538869 -0700
@@ -13,11 +13,11 @@
#include <ctype.h>
#include <sys/types.h>
#include <ft2build.h>
-#include <freetype/freetype.h>
-#include <freetype/ftglyph.h>
-#include <freetype/ftsnames.h>
-#include <freetype/ttnameid.h>
-#include <freetype/ftoutln.h>
+#include <freetype2/freetype.h>
+#include <freetype2/ftglyph.h>
+#include <freetype2/ftsnames.h>
+#include <freetype2/ttnameid.h>
+#include <freetype2/ftoutln.h>
#include "pt1.h"
#include "global.h"
Сохраняем фаил.
Теперь переименовываем “ebuild”
# mv -v /var/calculate/portage/app-text/ttf2pt1/ttf2pt1-3.4.4-r1.ebuild /var/calculate/portage/app-text/ttf2pt1/ttf2pt1-3.4.4-r9.ebuild
и начинаем править ttf2pt1-3.4.4-r9.ebuild.
mcedit /var/calculate/portage/app-text/ttf2pt1/ttf2pt1-3.4.4-r9.ebuild
находим вот эти строки.
src_prepare() {
epatch "${FILESDIR}"/${P}-Makefile.patch
epatch "${FILESDIR}"/${P}-LDFLAGS.patch
epatch "${FILESDIR}"/${PN}-3.4.0-man-pages.diff
epatch "${FILESDIR}"/${P}-freetype.patch
sed -i -e "/^CC=/ { s:gcc:$(tc-getCC): }" Makefile
sed -i -e "/^CFLAGS_SYS=/ { s:-O.*$:${CFLAGS}: }" Makefile
sed -i -e "/^LIBS_FT=/ { s:-L/usr/lib:-L/usr/$(get_libdir): }" Makefile
sed -i -e "/^LIBXDIR =/ { s:libexec:$(get_libdir): }" Makefile
}
вставляем свой патч сюда
epatch "${FILESDIR}"/${PN}-3.4.4-freetype2.patch
получаем вот такой результат:
src_prepare() {
epatch "${FILESDIR}"/${P}-Makefile.patch
epatch "${FILESDIR}"/${P}-LDFLAGS.patch
epatch "${FILESDIR}"/${PN}-3.4.0-man-pages.diff
epatch "${FILESDIR}"/${P}-freetype.patch
epatch "${FILESDIR}"/${PN}-3.4.4-freetype2.patch # patch Dmitry 'daks' Fomenko
sed -i -e "/^CC=/ { s:gcc:$(tc-getCC): }" Makefile
sed -i -e "/^CFLAGS_SYS=/ { s:-O.*$:${CFLAGS}: }" Makefile
sed -i -e "/^LIBS_FT=/ { s:-L/usr/lib:-L/usr/$(get_libdir): }" Makefile
sed -i -e "/^LIBXDIR =/ { s:libexec:$(get_libdir): }" Makefile
}
Теперь нам надо создать свой манифест
# ebuild /var/calculate/portage/app-text/ttf2pt1/ttf2pt1-3.4.4-r9.ebuild digest
Часть пятая. Предварительная подготовка к установке 1С сервера.
Делаем от root.
Сперва мы займеся следующим действиями:
1. Создаём файл в следующей директории /etc/portage/package.keywords.
# touch /etc/portage/package.keywords/1С
Пропишем следующие строчки файле /etc/portage/package.keywords/1C:
Пример:
# echo -e 'media-gfx/imagemagick **' >>/etc/portage/package.keywords/1С
# echo -e 'app-office/1C_Enterprise-client **' >>/etc/portage/package.keywords/1С
# echo -e 'app-office/1C_Enterprise-server **' >>/etc/portage/package.keywords/1С
# echo -e 'app-office/1C_Enterprise-common **' >>/etc/portage/package.keywords/1С
# echo -e 'dev-db/postgresql-server ~amd64' >>/etc/portage/package.keywords/1С
# echo -e 'sys-apps/hasp ~amd64' >>/etc/portage/package.keywords/1С
# echo -e 'app-office/1C_Enterprise-ws **' >>/etc/portage/package.keywords/1С
# echo -e 'app-office/1C_Enterprise-crs **' >>/etc/portage/package.keywords/1С
# echo -e 'app-admin/eselect-postgresql **' >>/etc/portage/package.keywords/1С
Вот весь список:
media-gfx/imagemagick **
app-office/1C_Enterprise-client **
app-office/1C_Enterprise-server **
app-office/1C_Enterprise-common **
dev-db/postgresql-server ~amd64
sys-apps/hasp ~amd64
app-office/1C_Enterprise-ws **
app-office/1C_Enterprise-crs **
app-admin/eselect-postgresql **
Это мы разблокировали установку пакетов с «нестабильной» ветки (более подробно читайте документацию по OS Gentoo Linux), так как у нас дистрибутив со «стабильной» ветки, установку на него программного обеспечения с «нестабильной» ветки, возможно только таким образом.
2.Создаём файл в следующей директории /etc/portage/package.mask
# touch /etc/portage/package.mask/1С
Пропишем следующие строчки файле /etc/portage/package.mask/1C:
Пример:
# echo -e 'dev-db/postgresql-base::gentoo' >>/etc/portage/package.mask/1С
Вот весь список:
dev-db/postgresql-base::gentoo
dev-db/postgresql-docs::gentoo
dev-db/postgresql-server::gentoo
Мы таким образом, блокируем установку СУБД PostgreSQL с основной ветки «gentoo», так как для установки 1С сервера нам нужен про патченый СУБД PostgreSQL (патч от 1С).
3.Создаём файл в следующей директории /etc/portage/package.unmask
# touch /etc/portage/package.unmask/1С
Пропишем следующие строчки файле /etc/portage/package.unmask/1C:
Пример:
# echo -e '=dev-db/postgresql-server-9.2.4-r2::daks' >>/etc/portage/package.unmask/1С
Вот весь список:
=dev-db/postgresql-server-9.2.4-r2::daks
=dev-db/postgresql-base-9.2.4-r2::daks
Таким образом мы разрешаем установку про патченый СУБД PostgreSQL (патч от 1С) с оверлея «daks».
4.Создаём файл в следующей директории /etc/portage/package.use
# touch /etc/portage/package.use/1С
Пропишем следующие строчки файле /etc/portage/package.use/1C:
Пример:
# echo -e 'media-gfx/imagemagick corefonts' >>/etc/portage/package.use/1С
Вот весь список:
media-gfx/imagemagick corefonts
app-office/1C_Enterprise-server postgres
dev-db/postgresql-server 1c pg_legacytimestamp
dev-db/postgresql-base 1c pg_legacytimestamp threads
sys-apps/hasp net_hasp usb
Это ключи нужны для нормальной установки сервера (более подробно читайте документацию по OS Gentoo Linux).
5. Решим проблему: emerge: there are no ebuilds to satisfy “>=app-admin/eselect-postgresql-1.2.0”.
По каким-то причинам при установки с оверлея «daks» СУБД PostgreSQL (с патчем от 1С), не находится это «ebuild» «app-admin/eselect-postgresql-1.2.0». Это «ebuild» находится в основной ветке тут:
# eix eselect-postgresql
* app-eselect/eselect-postgresql
Available versions: 1.2.1
Homepage: https://www.gentoo.org/
Description: Utility to select the default PostgreSQL slot
Это проблема решается просто, нам надо скопировать ebuild с основной ветки в наш локальный оверлей.
Создаём в локальном оверлеи папку app-admin
# mkdir -pv /var/calculate/portage/app-admin
и копируем туда всю папку eselect-postgresql с основной ветки:
# cp -Rva /usr/portage/app-eselect/eselect-postgresql/ /var/calculate/portage/app-admin/
# ebuild /var/calculate/portage/app-admin/eselect-postgresql/eselect-postgresql-1.2.1.ebuild digest
6. Проблема с ядром Linux, решаем так:
sysctl -w kernel.shmmax=662020352
sysctl -w kernel.shmall=662020352
echo "kernel.shmmax = 662020352" >> /etc/sysctl.conf
echo "kernel.shmmall = 662020352" >> /etc/sysctl.conf
Эти настройки «shared memory» нужны для 1С сервера.
http://wiki.ayac.ru/skripty/nastrojka-shared-memory
Часть шестая. Ставим 1С сервер.
Теперь мы ставим сервер.
# emerge -av app-office/1C_Enterprise-server
Выйдет следующие сообщение:
These are the packages that would be merged, in order:
Calculating dependencies... done!
[binary N ] app-arch/cabextract-1.6::gentoo USE="-extras" 76 KiB
[ebuild N ] media-fonts/corefonts-1-r7::gentoo USE="-X -tahoma" 7460 KiB
[binary N ] dev-db/unixODBC-2.3.2-r1::gentoo USE="minimal unicode -odbcmanual -static-libs" ABI_X86="(64) -32 (-x32)" 303 KiB
[ebuild N ] app-text/ttf2pt1-3.4.4-r9::local 226 KiB
[binary N ] dev-libs/icu-55.1:0/55::gentoo USE="-debug -doc -examples -static-libs" ABI_X86="(64) -32 (-x32)" 11345 KiB
[binary NS ] media-libs/openjpeg-2.1.0:2/7::gentoo [1.5.2:0/5::gentoo] USE="-doc -static-libs {-test}" 228 KiB
[ebuild N f *] app-office/1C_Enterprise-common-8.3.6.2299:8.3::local USE="nls" 0 KiB
[ebuild N ] app-admin/eselect-postgresql-1.2.1::local 4 KiB
[ebuild N #] dev-db/postgresql-base-9.2.4-r2:9.2::daks USE="1c nls pam pg_legacytimestamp readline ssl threads zlib -doc -kerberos -ldap -python" LINGUAS="de en es fr it pl pt_BR ro ru -af -cs -fa -hr -hu -ko -nb -sk -sl -sv -tr -zh_CN -zh_TW" PYTHON_SINGLE_TARGET="python2_7 -python3_3" PYTHON_TARGETS="python2_7 -python3_3" 16058 KiB
[ebuild N #] dev-db/postgresql-server-9.2.4-r2:9.2::daks USE="1c nls pam pg_legacytimestamp -doc -kerberos -perl -python (-selinux) -tcl {-test} -uuid -xml" LINGUAS="de en es fr it pl pt_BR ro ru -af -cs -fa -hr -hu -ko -nb -sk -sl -sv -tr -zh_CN -zh_TW" PYTHON_SINGLE_TARGET="python2_7 -python3_3" PYTHON_TARGETS="python2_7 -python3_3" 4 KiB
[ebuild N ~] media-gfx/imagemagick-6.9.2.0:0/6.9.2.0::gentoo USE="bzip2 corefonts cxx jpeg jpeg2k openmp png tiff truetype zlib -X -autotrace -djvu -fftw -fontconfig -fpx -graphviz -hdri -jbig -lcms -lqr -lzma -opencl -openexr -pango -perl -postscript -q32 -q64 -q8 -raw -static-libs -svg {-test} -webp -wmf -xml" 8049 KiB
[ebuild N ] gnome-extra/libgsf-1.14.34:0/114::gentoo USE="bzip2 introspection -gtk" 596 KiB
[ebuild N f *] app-office/1C_Enterprise-server-8.3.6.2299:8.3::local USE="fontconfig nls postgres -pax_kernel" 0 KiB
Total: 13 packages (12 new, 1 in new slot, 4 binaries), Size of downloads: 44344 KiB
Fetch Restriction: 2 packages
Would you like to merge these packages? [Yes/No]
Как видим что по зависимости с «ebuild-ом» app-office/1C_Enterprise-server-8.3.6.2299:8.3 «вытягиваются» и другие «пакеты» программ, это нормально, продолжаем установку. Нажимаем «Yes».
Получаем вот такой результат:
>>> Verifying ebuild manifests
>>> Emerging binary (1 of 13) app-arch/cabextract-1.6::gentoo
>>> Emerging binary (2 of 13) dev-db/unixODBC-2.3.2-r1::gentoo
>>> Emerging (3 of 13) app-text/ttf2pt1-3.4.4-r9::local
>>> Emerging binary (4 of 13) dev-libs/icu-55.1::gentoo
>>> Installing (1 of 13) app-arch/cabextract-1.6::gentoo
>>> Emerging binary (5 of 13) media-libs/openjpeg-2.1.0::gentoo
>>> Installing (2 of 13) dev-db/unixODBC-2.3.2-r1::gentoo
>>> Emerging (6 of 13) app-admin/eselect-postgresql-1.2.1::local
>>> Installing (5 of 13) media-libs/openjpeg-2.1.0::gentoo
>>> Emerging (7 of 13) gnome-extra/libgsf-1.14.34::gentoo
>>> Installing (4 of 13) dev-libs/icu-55.1::gentoo
>>> Emerging (8 of 13) media-fonts/corefonts-1-r7::gentoo
>>> Installing (6 of 13) app-admin/eselect-postgresql-1.2.1::local
>>> Emerging (9 of 13) app-office/1C_Enterprise-common-8.3.6.2299::local
>>> Installing (3 of 13) app-text/ttf2pt1-3.4.4-r9::local
>>> Installing (8 of 13) media-fonts/corefonts-1-r7::gentoo
>>> Emerging (10 of 13) dev-db/postgresql-base-9.2.4-r2::daks
>>> Installing (9 of 13) app-office/1C_Enterprise-common-8.3.6.2299::local
>>> Emerging (11 of 13) media-gfx/imagemagick-6.9.2.0::gentoo
>>> Installing (7 of 13) gnome-extra/libgsf-1.14.34::gentoo
>>> Installing (10 of 13) dev-db/postgresql-base-9.2.4-r2::daks
>>> Emerging (12 of 13) dev-db/postgresql-server-9.2.4-r2::daks
>>> Installing (11 of 13) media-gfx/imagemagick-6.9.2.0::gentoo
>>> Installing (12 of 13) dev-db/postgresql-server-9.2.4-r2::daks
>>> Emerging (13 of 13) app-office/1C_Enterprise-server-8.3.6.2299::local
>>> Installing (13 of 13) app-office/1C_Enterprise-server-8.3.6.2299::local
>>> Recording app-office/1C_Enterprise-server in "world" favorites file...
>>> Jobs: 13 of 13 complete Load avg: 1.99, 2.41, 2.38
* Messages for package dev-db/postgresql-base-9.2.4-r2:
* If you need a global psqlrc-file, you can place it in:
* /etc/postgresql-9.2/
* Messages for package dev-db/postgresql-server-9.2.4-r2:
* Gentoo specific documentation:
* http://www.gentoo.org/doc/en/postgres-howto.xml
*
* Official documentation:
* http://www.postgresql.org/docs/9.2/static/index.html
*
* The default location of the Unix-domain socket is:
* /run/postgresql/
*
* Before initializing the database, you may want to edit PG_INITDB_OPTS
* so that it contains your preferred locale in:
* /etc/conf.d/postgresql-9.2
*
* Then, execute the following command to setup the initial database
* environment:
* emerge --config =dev-db/postgresql-server-9.2.4-r2
* Messages for package app-office/1C_Enterprise-server-8.3.6.2299:
* You can config fonts for 1C ERP system by exec
* /opt/1C/v8.3/x86_64/utils/config_server /path/to/font/dir/corefonts
* Perhaps you should add locale en_US in /etc/localegen and
* regenerate locales to use 1C with postgres.
>>> Auto-cleaning packages...
>>> No outdated packages were found on your system.
* GNU info directory index is up-to-date.
Как видите мне после сборки и установки выходят сообщения, что нужно потом сделать для настройки и запуска. Но этим мы займёмся во второй части этой статьи.
Конец.
Первая статья во вложении, формате pdf с картинками.
По всем вопросам сюда:
http://www.iterra-samara.ru/
Установка_сервера_Calculate_Scratch_Server_v1.pdf (1.84 MB)