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

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

Код прогрулины:
Код: 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
несоответствие отличительного блока (PG_MODULE_MAGIC)
    #38825444
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
inforse,

покажите: aptitude search ~ipostgres
...
Рейтинг: 0 / 0
несоответствие отличительного блока (PG_MODULE_MAGIC)
    #38825719
inforse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ёш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
несоответствие отличительного блока (PG_MODULE_MAGIC)
    #38825864
Гость_0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
inforse, вроде всё верно, покажите ещё версии:
aptitude -F'%v %p' search ~ipostgres
...
Рейтинг: 0 / 0
несоответствие отличительного блока (PG_MODULE_MAGIC)
    #38825920
inforse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гость_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
несоответствие отличительного блока (PG_MODULE_MAGIC)
    #38826002
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
несоответствие отличительного блока (PG_MODULE_MAGIC)
    #38826338
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
Но это не помогло, ошибка сохранилась.
...
Рейтинг: 0 / 0
несоответствие отличительного блока (PG_MODULE_MAGIC)
    #38826351
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
несоответствие отличительного блока (PG_MODULE_MAGIC)
    #38828655
inforse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk,

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


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