ИНСТРУКЦИЯ
По сборке родного (нативного) клиента 1С платформа 8.3 дистрибутив платформу Calculate-Linux и установка «hasp» ключа.
ПРЕДИСЛОВИЕ.
Хочу сразу высказать благодарность за созданный «оверелей» «daks» Дмитрию Фоменко (Dmitry ‘daks’ Fomenko) и Артёму Власову (оверлей «Yuego») . В этих «оверелеях» содержится «ebuild-ы» для установки 1С платформы, но сожалению они обновляются не оперативно, но в этой статье мы исправим эту проблему локально.
*Начало.
Часть первая. Создание своего локального оверлея.*
Делаем от root.
Сперва мы создадим собственный локальный оверлей, он нам понадобится для приведения «ebuild-а» нужное текущие состояние 1С платформы. На данный момент текущая платформа 1С версия 8.8.3.5.1146, как я и писал раньше в оверлеи «daks» находится последняя версия 1C 8.3.5.1068 а оверлеи «Yuego» версия 1C 8.3.5.1119, а мы хотим версию 8.8.3.5.1146. Для этого мы и создаем свой локальный оверлей. Дальше я описываю как это сделать локально. Взято тут:
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://login.1c.ru/login?service=https%3A%2F%2Fusers.v8.1c.ru%2Fdistribution%2Fpublic%2Fsecurity_check
Далее список пакетов что нужно скачать для платформа 1С 8.8.3.5.1146.
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.5.1068.ebuild
2. 1C_Enterprise-common-8.3.5.1068.ebuild
3. 1C_Enterprise-crs-8.3.5.1068.ebuild
4. 1C_Enterprise-server-8.3.5.1068.ebuild
5. 1C_Enterprise-ws-8.3.5.1068.ebuild
После этого мы создадим Manifest для последующей установки.
ebuild /var/calculate/portage/app-office/1C_Enterprise-client/1C_Enterprise-client-8.3.5.1146.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.
Теперь мы ставим клиента.
emerge -av 1C_Enterprise-client --autounmask-write
etc-update
ключ -5
emerge -av 1C_Enterprise-client
Не забудет добавить своего юзера в группу «grp1cv83» (но это не обязательно делать).
Пример:
usermod -a -G grp1cv83 Ваш_юзер
Если вы все сделали правильно то у вас установится «стоковый» 1С клиент платформы 8.8.3.5.1146 (почему «стоковый» так я не трогаю «USE FLAGS»).
Часть шестая. Ставим программное обеспечение для «hasp» ключа (net-misc/hasp).
Делаем от root.
Сперва выясним в каком оверлеи есть ПО «hasp», делаем так:
eix-remote update
потом
eix -R hasp
Получаем вот такой список.
* app-emulation/hasp [2]
Available versions: ~*3.0-r1 ~*3.0-r3 *3.0-r4 {net_hasp wine}
Homepage: http://www.etersoft.ru
Description: Hardware Against Software Piracy for access to parallel and usb keys
* app-emulation/hasp-par [2]
Available versions: ~1.7 ~1.7-r1 ~1.7-r2 1.7-r3 {KERNEL="linux"}
Homepage: http://www.aladdin.com
Description: HASP driver parallel port
* dev-haskell/haspell [4]
Available versions: ~1.1.0(0/1.1.0) {doc hoogle hscolour profile}
Homepage: https://github.com/otters/haspell
Description: Haskell bindings to aspell
* dev-perl/Role-HasPayload
Available versions: ~0.5[5] ~0.5[6]
Homepage: http://search.cpan.org/dist/Role-HasPayload/
Description: something that carries a payload
* net-misc/haspd
Available versions: 3.2.10-r1[1] 3.2.10-r1[3] {demo lpt-hasp sentinel skey +wine KERNEL="linux"}
Homepage: http://www.etersoft.ru
Description: Hardware Against Software Protection drivers and license managers
* sys-apps/hasp [7]
Available versions: ~3.3_p5-r1 {demo lpt net_hasp usb wine KERNEL="linux"}
Homepage: http://www.etersoft.ru
Description: Hardware Against Software Piracy for access to parallel and usb keys
[1] "daks" /var/lib/layman/daks
[2] "crg" layman/crg
[3] "daks" layman/daks
[4] "haskell" layman/haskell
[5] "perl-experimental" layman/perl-experimental
[6] "perl-experimental-snapshots" layman/perl-experimental-snapshots
[7] "rion" layman/rion
В оверлеи «daks» очень старое ПО для ключа (не работает с новыми ядрами). На нужен оверлей «rion»
Ставим этот оверлей «rion»
layman -a rion
взводим «USE FLAGS»
mcedit /etc/portage/package.use/custom
Потом добавляем туда следующие строки.
>=sys-apps/hasp-3.3_p5-r1 net_hasp wine
Теперь начнем собирать пакет.
emerge -av sys-apps/hasp --autounmask-write
etc-update
ключ -5
emerge -av sys-apps/hasp
Все установили.
Теперь надо сделать нормальный демон запуска
mcedit /etc/conf.d/hasplmd
вставляем туда строку
HASPLMD_ARGS="-s"
Дальше делаем файл для запускаемого демона
mcedit /etc/init.d/hasplm
Вставляем туда следующие строки.
#!/sbin/runscript
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
depend () {
need net localmount
after hasplmd
}
start() {
<------>ebegin "Starting HASP HL"
<------>start-stop-daemon --start --quiet --exec /usr/sbin/hasplm -- ${HASPLM_ARGS}
<------>eend $?
}
stop() {
<------>ebegin "Stopping HASP HL"
<------>start-stop-daemon --stop --quiet --retry 10 --exec /usr/sbin/hasplm
<------>eend $?
}
Теперь нам нужно сделать этот файл hasplm исполняемый с помощью Midnight Commander (как это сделать прочитай документацию… это выходит за рамки нашей инструкции)
Запускаем службы HASP LM.
/etc/init.d/hasplmd start ---это не обязательный "демон"! Он для ключей Cinderella
/etc/init.d/hasplm start
/etc/init.d/aksusbd start
Вы должны получить вот такое сообщение
# /etc/init.d/hasplmd start
* Caching service dependen
# /etc/init.d/hasplm start
* Starting HASP HL ...
# /etc/init.d/aksusbd start
Теперь вы добавьте запуск этих «демонов» в rc-update (автозапуск)
rc-update add hasplmd default ---это не обязательный "демон"! Он для ключей Cinderella Aladdin
rc-update add hasplm default
rc-update add aksusbd default
P.S.
Есть еще один “демон” из этого пакета sys-apps/hasp-3.3_p5-r1:
/etc/init.d/winehasp status
Но разбирайтесь с ними сами.
Еще поступила рекомендация сделать так:
sysctl -w kernel.shmmax=662020352
sysctl -w kernel.shmall=662020352
echo "kernel.shmmax = 662020352" >> /etc/sysctl.conf
echo "kernel.shmmall = 662020352" >> /etc/sysctl.conf
Конец.
Инструкция будет обновляться и исправляться.
Особая благодарность Жукоцкому Даниле за помощь написании инструкции.
УДАЧИ ВСЕМ!