FreeBSD + PostgreSQL для 1С

   FreeBSD + Postgres под 1С
(Установка из портов или с помощью pkg)

    Добрый день!  Существует множество статей как накладывать патчи на Postgresql под Linux для работы 1C 8x (8.2, 8.3). И думаю, что под FreeBSD особо ни чем не отличается. Тут я лишь опишу пару рецептов как легко получить данную связку под FreeBSD. Дело в том, что многие рекомендуют скачивать исходник к примеру из репозиторий postgresql напрямую и накладывать патчи либо с сайта 1С и т.д. Я же предлагаю вариант по проще.

    Способ 1.

    Если у вас в системе нет скачанных стандартных портов в /usr/ports то советую скачать  распаковать. Если же они установлены то обновляем!

# portsnap fetch extract update

Далее дополняем нашу коллекцию портов:

# fetch --no-verify-peer --no-verify-hostname \
https://repo.kazcybersystems.kz/ports/noarch/postgresql10-10.3-3.1C.src.txz -o -  | tar xvpf - -C /usr/ports/databases

Если у вас стоит другая версия postgresql, то придется ее снести. Так как эта реализация делает чистую установку. Далее устанавливаем:

# make -C /usr/ports/databases/postgresql10-1C.3-3.1C config

  ┌─────────────────────────── postgresql-1C-10.3_3 ─────────────────────────────┐
  │ ┌──────────────────────────────────────────────────────────────────────────┐ │
  │ │+[ ] DEBUG             Build with debugging support                       │ │  │ │+[ ] DTRACE            Build with DTrace probes                           │ │  │ │+[ ] GSSAPI            Build with GSSAPI support                          │ │  │ │+[x] INTDATE           Builds with 64-bit date/time type                  │ │  │ │+[ ] LDAP              Build with LDAP authentication support             │ │  │ │+[x] NLS               Use internationalized messages                     │ │  │ │+[ ] OPTIMIZED_CFLAGS  Builds with compiler optimizations (-O3)           │ │       │ │+[ ] PAM               Build with PAM Support                             │ │  │ │+[x] SSL               Build with OpenSSL support                         │ │  │ │+[x] TZDATA            Use internal timezone database                     │ │  │ │+[x] XML               Build with XML data type                           │ │  │ └──────────────────────────────────────────────────────────────────────────┘ │
  ├──────────────────────────────────────────────────────────────────────────────┤
  │                       <  OK  >            <Cancel>                           │  └──────────────────────────────────────────────────────────────────────────────┘ # make BATCH=yes -C /usr/ports/databases/portsgresql10-1C.3-3.1C install clean
# sysrc postgresql_enable="YES" postgresql_pass="<Мой личный пароль>"
service postgresql start 
Файлы, относящиеся к этой СУБД, будут принадлежать пользователю "postgres".От его имени также будет запускаться процесс сервера.Кластер баз данных будет инициализирован с локалью "ru_RU.UTF-8".Кодировка БД по умолчанию, выбранная в соответствии с настройками: "UTF8".Выбрана конфигурация текстового поиска по умолчанию "russian".Контроль целостности страниц данных отключён.исправление прав для существующего каталога /data/db/postgres/data10... оксоздание подкаталогов... оквыбирается значение max_connections... 100выбирается значение shared_buffers... 128MBвыбор реализации динамической разделяемой памяти... posixсоздание конфигурационных файлов... оквыполняется подготовительный скрипт... оквыполняется заключительная инициализация... оксохранение данных на диске... окПРЕДУПРЕЖДЕНИЕ: используется проверка подлинности "trust" для локальных подключений.Другой метод можно выбрать, отредактировав pg_hba.conf или используя ключи -A,--auth-local или --auth-host при следующем выполнении initdb.Готово. Теперь вы можете запустить сервер баз данных:    /usr/local/bin/pg_ctl -D /data/db/postgres/data10 -l файл_журнала startALTER ROLE

 

   Способ 2.

Второй способ заключается в установке из бинарных пакетов, первым делом смотрим редакцию своей системы:

# uname -r
11.2-RELEASE
# uname -U
1102000
# uname -m
amd64

Далее идем на сайт и скачиваем нужный вам архив из раздела databases смотрите по редакции вашей ОС. В моем случае:

# fetch --no-verify-peer --no-verify-hostname -o /var/cache/pkg/ https://repo.kazcybersystems.kz/distfiles/databases/FBSD-11-amd64/postgresql-1C-10.3_3.txz

ну а теперь устанавливаем;

# pkg install /var/cache/pkg/postgresql-1C-10.3_3.txz
pkg: Warning: Major OS version upgrade detected.  Running "pkg-static install -f pkg" recommendedUpdating FreeBSD repository catalogue...pkg: Repository FreeBSD load error: access repo file(/var/db/pkg/repo-FreeBSD.sqlite) failed: No such file or directoryFetching meta.txz: 100%    940 B   0.9kB/s    00:01    Fetching packagesite.txz: 100%    6 MiB   1.1MB/s    00:06    Processing entries: 100%FreeBSD repository update completed. 32371 packages processed.All repositories are up to date.Updating database digests format: 100%The following 9 package(s) will be affected (of 0 checked):
New packages to be INSTALLED: postgresql-1C: 10.3_3 gettext-runtime: 0.19.8.1_2 indexinfo: 0.3.1 icu: 63.1_1,1 libxml2: 2.9.7 openssl: 1.0.2q,1 postgresql10-client: 10.6_2 perl5: 5.28.1 readline: 7.0.5
Number of packages to be installed: 9
The process will require 155 MiB more space.31 MiB to be downloaded.
Proceed with this action? [y/N]: y
[1/9] Fetching gettext-runtime-0.19.8.1_2.txz: 100%  149 KiB 152.7kB/s    00:01    [2/9] Fetching indexinfo-0.3.1.txz: 100%    6 KiB   5.7kB/s    00:01    [3/9] Fetching icu-63.1_1,1.txz: 100%   10 MiB   1.3MB/s    00:08    [4/9] Fetching libxml2-2.9.7.txz: 100%  811 KiB 830.9kB/s    00:01    [5/9] Fetching openssl-1.0.2q,1.txz: 100%    3 MiB 787.2kB/s    00:04    #[6/9] Fetching postgresql10-client-10.6_2.txz: 100%    3 MiB 658.6kB/s    00:04    [7/9] Fetching perl5-5.28.1.txz: 100%   14 MiB   1.0MB/s    00:15    [8/9] Fetching readline-7.0.5.txz: 100%  335 KiB 343.2kB/s    00:01    Checking integrity... done (0 conflicting)[9/9] Installing indexinfo-0.3.1...Extracting indexinfo-0.3.1: 100%[1/9] Installing gettext-runtime-0.19.8.1_2...[1/9] Extracting gettext-runtime-0.19.8.1_2: 100%[2/9] Installing perl5-5.28.1...[2/9] Extracting perl5-5.28.1: 100%[3/9] Installing readline-7.0.5...[3/9] Extracting readline-7.0.5: 100%[4/9] Installing icu-63.1_1,1...[4/9] Extracting icu-63.1_1,1: 100%[5/9] Installing libxml2-2.9.7...[5/9] Extracting libxml2-2.9.7: 100%[6/9] Installing openssl-1.0.2q,1...[6/9] Extracting openssl-1.0.2q,1: 100%[7/9] Installing postgresql10-client-10.6_2...[7/9] Extracting postgresql10-client-10.6_2: 100%[8/9] Installing postgresql-1C-10.3_3...===> Creating groups.Creating group 'postgres' with gid '770'.===> Creating usersCreating user 'postgres' with uid '770'.install: /usr/ports/databases/postgresql10-10.3-3.1C/files/dot.cshrc.in: No such file or directory
  =========== BACKUP YOUR DATA! =============  As always, backup your data before  upgrading. If the upgrade leads to a higher  minor revision (e.g. 8.3.x -> 8.4), a dump  and restore of all databases is  required. This is *NOT* done by the port!  ===========================================[8/9] Extracting postgresql-1C-10.3_3: 100%Message from perl5-5.28.1:
The /usr/bin/perl symlink has been removed starting with Perl 5.20.For shebangs, you should either use:
#!/usr/local/bin/perl
or
#!/usr/bin/env perl
The first one will only work if you have a /usr/local/bin/perl,the second will work as long as perl is in PATH.Message from openssl-1.0.2q,1:
Edit /usr/local/openssl/openssl.cnf to fit your needs.Message from postgresql10-client-10.6_2:
The PostgreSQL port has a collection of "side orders":
postgresql-docs  For all of the html documentation
p5-Pg  A perl5 API for client access to PostgreSQL databases.
postgresql-tcltk   If you want tcl/tk client support.
postgresql-jdbc  For Java JDBC support.
postgresql-odbc  For client access from unix applications using ODBC as access  method. Not needed to access unix PostgreSQL servers from Win32  using ODBC. See below.
ruby-postgres, py-psycopg2  For client access to PostgreSQL databases using the ruby & python  languages.
postgresql-plperl, postgresql-pltcl & postgresql-plruby  For using perl5, tcl & ruby as procedural languages.
postgresql-contrib  Lots of contributed utilities, postgresql functions and  datatypes. There you find pg_standby, pgcrypto and many other cool  things.
etc...Message from postgresql-1C-10.3_3:
For procedural languages and postgresql functions, please note thatyou might have to update them when updating the server.
If you have many tables and many clients running, consider raisingkern.maxfiles using sysctl(8), or reconfigure your kernelappropriately.
The port is set up to use autovacuum for new databases, but you mightalso want to vacuum and perhaps backup your database regularly. Thereis a periodic script, /usr/local/etc/periodic/daily/502.pgsql, thatyou may find useful. You can use it to backup and perform vacuum on alldatabases nightly. Per default, it performs `vacuum analyze'. See thescript for instructions. For autovacuum settings, please review~pgsql/data/postgresql.conf.
If you plan to access your PostgreSQL server using ODBC, pleaseconsider running the SQL script /usr/local/share/postgresql/odbc.sqlto get the functions required for ODBC compliance.
Please note that if you use the rc script,/usr/local/etc/rc.d/postgresql, to initialize the database, unicode(UTF-8) will be used to store character data by default.  Setpostgresql_initdb_flags or use login.conf settings described below toalter this behaviour. See the start rc script for more info.
To set limits, environment stuff like locale and collation and otherthings, you can set up a class in /etc/login.conf before initializingthe database. Add something similar to this to /etc/login.conf:---postgres:\ :lang=en_US.UTF-8:\ :setenv=LC_COLLATE=C:\ :tc=default:---and run `cap_mkdb /etc/login.conf'.Then add 'postgresql_class="postgres"' to /etc/rc.conf.
======================================================================
To initialize the database, run
  /usr/local/etc/rc.d/postgresql initdb
You can then start PostgreSQL by running:
  /usr/local/etc/rc.d/postgresql start
For postmaster settings, see ~pgsql/data/postgresql.conf
NB. FreeBSD's PostgreSQL port logs to syslog by default    See ~pgsql/data/postgresql.conf for more info
NB. If you're not using a checksumming filesystem like ZFS, you might    wish to enable data checksumming. It can only be enabled during    the initdb phase, by adding the "--data-checksums" flag to    the postgres_initdb_flags rcvar.  Check the initdb(1) manpage    for more info and make sure you understand the performance    implications.
======================================================================
To run PostgreSQL at startup, add'postgresql_enable="YES"' to /etc/rc.conf

После установки запускаем:

sysrc postgresql_enable="YES" postgresql_pass="<Мой личный пароль>"
#  service postgresql start 
Файлы, относящиеся к этой СУБД, будут принадлежать пользователю "postgres".От его имени также будет запускаться процесс сервера.Кластер баз данных будет инициализирован с локалью "ru_RU.UTF-8".Кодировка БД по умолчанию, выбранная в соответствии с настройками: "UTF8".Выбрана конфигурация текстового поиска по умолчанию "russian".Контроль целостности страниц данных отключён.исправление прав для существующего каталога /data/db/postgres/data10... оксоздание подкаталогов... оквыбирается значение max_connections... 100выбирается значение shared_buffers... 128MBвыбор реализации динамической разделяемой памяти... posixсоздание конфигурационных файлов... оквыполняется подготовительный скрипт... оквыполняется заключительная инициализация... оксохранение данных на диске... окПРЕДУПРЕЖДЕНИЕ: используется проверка подлинности "trust" для локальных подключений.Другой метод можно выбрать, отредактировав pg_hba.conf или используя ключи -A,--auth-local или --auth-host при следующем выполнении initdb.Готово. Теперь вы можете запустить сервер баз данных:    /usr/local/bin/pg_ctl -D /data/db/postgres/data10 -l файл_журнала startALTER ROLE

Установка PostgreSQL 1C закончена, теперь можно проверить я использую webadmin для 1С, используем логин postgres и пароль который вы задали ранее postgresql_pass="<Мой личный пароль>".