Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / несоответствие отличительного блока (PG_MODULE_MAGIC) / 9 сообщений из 9, страница 1 из 1
04.12.2014, 18:42:29
    #38825364
inforse
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несоответствие отличительного блока (PG_MODULE_MAGIC)
Доброго всем вечера! Прошу помощи, поскольку заколебался уже. Заранее прошу прощения, может это где то уже обсуждалось. Не нашел.

Написал простенькую функцию на С, для того что бы подхватить на сервере. Так сказать проверить возможности.
Соответственно порылся в мануалах, сделал как описано все.

Код прогрулины:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
#include "postgres.h"
#include "fmgr.h"
#include "utils/geo_decls.h"

#ifdef PG_MODULE_MAGIC
PG_MODULE_MAGIC;
#endif

PG_FUNCTION_INFO_V1(add_one_float8);

Datum
add_one_float8(PG_FUNCTION_ARGS)
{
    float8  arg = PG_GETARG_FLOAT8(0);
    PG_RETURN_FLOAT8(arg + 1.0);
}




затем соответсвенно скомпилировал:
либо так
Код: powershell
1.
2.
cc -I/usr/include/postgresql/9.1/server -fpic -c test.c
cc -shared -lpq -o test.so test.o


либо так
Код: powershell
1.
gcc -I/usr/include/postgresql/9.1/server -fpic -lpq test.c -o  test.so



затем скопировал файлик в usr/lib/postgresql/9.1/lib
И соответственно поменял права на postgres у файлика

Затем иду в pgadmin и
Код: plsql
1.
2.
3.
4.
5.
CREATE OR REPLACE FUNCTION test_float(float)
  RETURNS float AS
'$libdir/test', 'add_one_float8'
  LANGUAGE c VOLATILE STRICT
  COST 1;



И возникает ошибка..

postgresqlОШИБКА: несовместимая библиотека "/usr/lib/postgresql/9.1/lib/test.so": несоответствие отличительного блока
DETAIL: В сервере NAMEDATALEN = 256, в библиотеке: 64.
********** Ошибка **********

ОШИБКА: несовместимая библиотека "/usr/lib/postgresql/9.1/lib/test.so": несоответствие отличительного блока
SQL-состояние: XX000
Подробности: В сервере NAMEDATALEN = 256, в библиотеке: 64.


Может кто сталкивался? Я так понимаю ошибка в PG_MODULE_MAGIC, что при проверке версий, что то не совпадает. Может нужно при компиляции что то дописывать?

Linux на основе Debian, x64. Компилирую на машине с базой.

P.S. пробовал на redhat стареньком x32 там последовательность этих же действий привела к успеху..

Может что подскажете?
...
Рейтинг: 0 / 0
04.12.2014, 19:35:13
    #38825444
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несоответствие отличительного блока (PG_MODULE_MAGIC)
inforse,

покажите: aptitude search ~ipostgres
...
Рейтинг: 0 / 0
05.12.2014, 09:29:34
    #38825719
inforse
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несоответствие отличительного блока (PG_MODULE_MAGIC)
Ёшinforse,

покажите: aptitude search ~ipostgres

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
root@astra-repl:~# aptitude search ~ipostgres
i   fly-admin-postgres                                                           - PostgreSQL administration tool
i   postgresql                                                                   - object-relational SQL database (supported version)
i A postgresql-9.1                                                               - object-relational SQL database, version 9.1 server
i   postgresql-client                                                            - front-end programs for PostgreSQL (supported version)
i A postgresql-client-9.1                                                        - front-end programs for PostgreSQL 9.1
i A postgresql-client-common                                                     - manager for multiple PostgreSQL client versions
i A postgresql-common                                                            - PostgreSQL database-cluster manager
i   postgresql-contrib                                                           - additional facilities for PostgreSQL (supported version)
i A postgresql-contrib-9.1                                                       - additional facilities for PostgreSQL
i   postgresql-doc                                                               - documentation for the PostgreSQL database management system
i A postgresql-doc-9.1                                                           - documentation for the PostgreSQL database management system
i   postgresql-server-dev-9.1                                                    - development files for PostgreSQL 9.1 server-side programming
...
Рейтинг: 0 / 0
05.12.2014, 10:54:43
    #38825864
Гость_0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несоответствие отличительного блока (PG_MODULE_MAGIC)
inforse, вроде всё верно, покажите ещё версии:
aptitude -F'%v %p' search ~ipostgres
...
Рейтинг: 0 / 0
05.12.2014, 11:20:17
    #38825920
inforse
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несоответствие отличительного блока (PG_MODULE_MAGIC)
Гость_0inforse, вроде всё верно, покажите ещё версии:
aptitude -F'%v %p' search ~ipostgres

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
root@astra-repl:/opt# aptitude -F'%v %p' search ~ipostgres
1.0.9-7        fly-admin-postgres
9.1+130astra.s postgresql
9.1.6-astra.se postgresql-9.1
9.1+130astra.s postgresql-client
9.1.6-astra.se postgresql-client-9.1
130astra.se1   postgresql-client-common
130astra.se1   postgresql-common
9.1+130astra.s postgresql-contrib
9.1.6-astra.se postgresql-contrib-9.1
9.1+130astra.s postgresql-doc
9.1.6-astra.se postgresql-doc-9.1
9.1.11-1       postgresql-server-dev-9.1
...
Рейтинг: 0 / 0
05.12.2014, 11:57:06
    #38826002
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несоответствие отличительного блока (PG_MODULE_MAGIC)
inforse,

о, вот и проблема:
9.1.6-astra.se postgresql-9.1
9.1.11-1 postgresql-server-dev-9.1
видимо они по разному собраны, вам нужно где-то найти пакет postgresql-server-dev-9.1 для вашей сборки postgresql-9.1 9.1.6-astra.se
...
Рейтинг: 0 / 0
05.12.2014, 15:22:01
    #38826338
inforse
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несоответствие отличительного блока (PG_MODULE_MAGIC)
Ёшinforse,

о, вот и проблема:
9.1.6-astra.se postgresql-9.1
9.1.11-1 postgresql-server-dev-9.1
видимо они по разному собраны, вам нужно где-то найти пакет postgresql-server-dev-9.1 для вашей сборки postgresql-9.1 9.1.6-astra.se

Спасибо за наводку!! Взял другую версию linuxa, там все пакеты 9.1.7, скомпилировал на ней, в базе подхватило все. Перекинул so шник на изначальный сервер, та же ошибка... (((

В связи с этим вопрос. Получается при переходе на следующую версию postgresa, все Сишные "свои" функции надо будет пересобирать???

P.S. нашел аналогичный пакет postgresql-server-dev-9.1_9.1.6-0ubuntu11.10_amd64.deb
Но это не помогло, ошибка сохранилась.
...
Рейтинг: 0 / 0
05.12.2014, 15:33:58
    #38826351
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несоответствие отличительного блока (PG_MODULE_MAGIC)
inforseЁшinforse,

о, вот и проблема:
9.1.6-astra.se postgresql-9.1
9.1.11-1 postgresql-server-dev-9.1
видимо они по разному собраны, вам нужно где-то найти пакет postgresql-server-dev-9.1 для вашей сборки postgresql-9.1 9.1.6-astra.se

Спасибо за наводку!! Взял другую версию linuxa, там все пакеты 9.1.7, скомпилировал на ней, в базе подхватило все. Перекинул so шник на изначальный сервер, та же ошибка... (((

В связи с этим вопрос. Получается при переходе на следующую версию postgresa, все Сишные "свои" функции надо будет пересобирать???

P.S. нашел аналогичный пакет postgresql-server-dev-9.1_9.1.6-0ubuntu11.10_amd64.deb
Но это не помогло, ошибка сохранилась.

-astra postgres он патченый и не совместимый с обычным... поэтому модули и не цепляются вне зависимости от версий
вам -astra надо dev версию а не просто от обычного postgresql

PS: нет между минорными версиями модули пересобирать не обязательно.
...
Рейтинг: 0 / 0
09.12.2014, 10:09:17
    #38828655
inforse
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
несоответствие отличительного блока (PG_MODULE_MAGIC)
Maxim Boguk,

Спасибо жаль что я пакет для своей версии найти не смогу. Ну хоть буду знать.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / несоответствие отличительного блока (PG_MODULE_MAGIC) / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]