anonymous@RULINUX.NET~# Last login: 2024-12-25 23:40:14
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]
Скрыть

Ещё один прикол с апгрейдом F23 -> F24

Дано - версии совта в старой и новой версии Федоры:

text

Fedora 23:                  Fedora 24:
    Postgres  v.9.4.8           Postgres  v.9.5.3
    Postgis   v.2.1.8           Postgis   v.2.2.1
    pgRouting v.2.0.0           pgRouting v.2.2.2
 

... апгрейдим Федору.

После апгрейда Постгрес не запускается - требуется ручками запустить `postgresql-setup --upgrade`. ОК, запускаем.

Команда ломается, выхлоп такой:
text

command: "/usr/bin/pg_dump" --host "/var/lib/pgsql" --port 5432 --username "postgres" --schema-only --quote-all-identifiers --binary-upgrade --format=custom  --file="pg_upgrade_dump_33571.custom" "test1" >> "pg_upgrade_dump_33571.log" 2>&1
pg_dump: [archiver (db)] query failed: ERROR:  could not access file "$libdir/postgis-2.1": No such file or directory
pg_dump: [archiver (db)] query was: SELECT pg_catalog.pg_get_viewdef('34854'::pg_catalog.oid) AS viewdef
 


Вот что про postgis есть в $libdir:
text

# pg_config --pkglibdir
/usr/lib64/pgsql

# ls -1 `pg_config --pkglibdir`/postgis*
/usr/lib64/pgsql/postgis-2.1.so
/usr/lib64/pgsql/postgis-2.2.so
/usr/lib64/pgsql/postgis_topology-2.2.so
 

Снёс Postgis v.2.2.1 и попробовал взять Postgis v.2.1.8 из rpmfind - накатил на 24ку - она даже установилась. Результат - ровно тот же.

Похожие баги:
1342285 (Reported: 2016-06-02)
1055293 (Reported: 2014-01-19)


Пока вот такие попытки предпринял (не успешно)
text

-----------------------------------------------------------------
Кажется, для апгрейда Федора сохранила огрызок старого постгресса
в /usr/lib64/pgsql/postgresql-9.4/ - пробую использовать её чтобы
проапдейтить postgis на старых данных
-----------------------------------------------------------------

$ cd /usr/lib64/pgsql/postgresql-9.4/bin
$ ./pg_ctl -D /var/lib/pgsql/data/ start

$ psql -h /tmp

test1=# ALTER EXTENSION postgis UPDATE TO '2.2.1';
ERROR:  could not open extension control file "/usr/lib64/pgsql/postgresql-9.4/share/extension/postgis.control": No such file or directory

$ dnf download postgis

Копируем всё из RPM usr/share/pgsql/extension в /usr/lib64/pgsql/postgresql-9.4/share/extension

test1=# ALTER EXTENSION postgis UPDATE TO '2.2.1';
ERROR:  could not access file "$libdir/plpgsql": No such file or directory

$ dnf download postgresql-server --releasever=23

Копируем всё отсутствующее из RPM usr/lib64/pgsql в /usr/lib64/pgsql/postgresql-9.4/lib

test1=# ALTER EXTENSION postgis UPDATE TO '2.2.1';
ERROR:  could not access file "$libdir/postgis-2.2": No such file or directory

$ ls -s /usr/lib64/pgsql/postgis* /usr/lib64/pgsql/postgresql-9.4/lib/

test1=# ALTER EXTENSION postgis UPDATE TO '2.2.1';
ERROR:  incompatible library "/usr/lib64/pgsql/postgresql-9.4/lib/postgis-2.2.so": version mismatch
DETAIL:  Server is version 9.4, library is version 9.5.

Если слинковать postgis-2.1.so из старой версии postgis на postgis-2.2.so, то получаем другую ошибку:

test1=# ALTER EXTENSION postgis UPDATE TO '2.2.1';
ERROR:  could not find function "gserialized_distance_nd" in file "/usr/lib64/pgsql/postgresql-9.4/lib/postgis-2.2.so"

Всё, кажется, приплыли - постгис 2.2 не запустится под постгрессом 9.4.

---------------------------------------------------------------------------
Пробую ещё раз запустить апгрейд - всё-таки в багзилле человек сказал,
что скопировал файлы из rpm-ок  - и у него всё заработало:
---------------------------------------------------------------------------

$ postgresql-setup --debug --upgrade

Жалобы на отсутствие $libdir/librouting (не был уверен для старого или нового постгресса, на всякий случай установил роутинг штатно и подсунул в старый тоже)

$ dnf download pgRouting --releasever=23

$ pgRouting postgis postgis-utils
Копируем все so-шки в /usr/lib64/pgsql/postgresql-9.4/lib/, а usr/share/pgsql/extension в /usr/lib64/pgsql/postgresql-9.4/share/extension

$ ln -s /usr/lib64/pgsql/postgresql-9.4/lib/*rout*.so /usr/lib64/pgsql/


`postgresql-setup --debug --upgrade` выдал ошибки вида:
Could not load library "$libdir/librouting_dd"
ERROR:  could not load library "/usr/lib64/pgsql/librouting_dd.so": libboost_thread.so.1.58.0: cannot open shared object file: No such file or directory

--> ага, значит librouting_dd.so и т.п. были нужны новой версии постгресса. Но к новой версии постгресса идёт и новая версия пг-роутинга 2.2.2 в которой есть всего одна библиотека libpgrouting-2.2.so и всё.

---------------------------------------------------------------------------
 
"А вот теперь точно п-ц" - вдруг подсказал внутренний голос..

anonymous(*) (2016-07-11 04:35:35)

Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0

[Ответить на это сообщение]
[#] [Добавить метку] [Редактировать] Ответ на: Ещё один прикол с апгрейдом F23 -> F24 от anonymous 2016-07-11 04:35:35
avatar
Скрыть

Re:Ещё один прикол с апгрейдом F23 -> F24

судя по твоим сообщениям - обновляться не буду

vilfred(*)(2016-07-11 10:35:33)

Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0
[#] [Добавить метку] [Редактировать] Ответ на: Ещё один прикол с апгрейдом F23 -> F24 от anonymous 2016-07-11 04:35:35
avatar
Скрыть

Re:Ещё один прикол с апгрейдом F23 -> F24

> libboost_thread.so.1.58.0
А эту-то библиотеку ты пробовал подсунуть?

anonymous(*)(2016-07-11 13:03:10)

[#] [Добавить метку] [Редактировать] Ответ на: Re:Ещё один прикол с апгрейдом F23 -> F24 от vilfred 2016-07-11 10:35:33
avatar
Скрыть

Re:Ещё один прикол с апгрейдом F23 -> F24

> судя по твоим сообщениям - обновляться не буду

Да ладно, не всё так ужасно. Прошлая проблема вылечилась простым `systemctl enable sddm.service`. Эта вообще не у возникнет у тех, кто не включал postgis в базе.

anonymous(*)(2016-07-11 20:08:30)

[#] [Добавить метку] [Редактировать] Ответ на: Re:Ещё один прикол с апгрейдом F23 -> F24 от anonymous 2016-07-11 13:03:10
avatar
Скрыть

Re:Ещё один прикол с апгрейдом F23 -> F24

> А эту-то библиотеку ты пробовал подсунуть?

Не-а. Спать хотелось. А, исходя из того, что новый постгрес хочет старого роутинга - скорее всего у них всё равно ничего не получится.. Скорее всего будет как и с постгисом ошибка: "Server is version 9.4, library is version 9.5.", только наоборот. Хотя можно, конечно попробовать..

anonymous(*)(2016-07-11 20:13:39)

Этот тред читают 1 пользователь:
Анонимных: 1
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!