powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 4: Could not find acceptable ICU library
25 сообщений из 303, страница 12 из 13
Firebird 4: Could not find acceptable ICU library
    #39834297
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

фразу про таблицу соответствия ты конечно же пропустил
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39834316
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devhvladЯ хочу записать в БД дату\время '12.5.2024 9:00' по Сингапурскому местному времени.
Как мне в этом поможет моё UTC ?Зачем в БД хранить именно Сингапурское время?Мне, как клиенту, пофиг что и как хранит БД.
Но мне же НЕ пофиг чтобы БД выдала мна обратно то, что я туда положил.
И в том же самом виде.

rdb_devВ этом может быть какой-то особый смысл только в случае, когда необходимо знать из какого часового пояса был клиент, из сессии которого была инициирована в БД запись со штампом времени.Я сохраняю время события, которое происходит в Сингапуре по местному времени.
На кой чёрт мне время этого события в UTC ???
Ещё раз - я клиент и у меня нет возможности конвертировать время между таймзонами.

rdb_devВенда до WinX как-то справлялась с приведением времени и без icu библиотек - своими силами.Как-то справлялась - это ты мягко пошутил.

rdb_devСобственно, с этим прекрасно справляется любая нормальная операционная система.Ну давай, расскажи как это происходит
- в необновляемой Windows
- в обновляемой Windows
- в обновляемом Linux


rdb_devТеперь представим ситуацию, что в БД ты записал UTC+сингапурский_id, рассчитанный на 4 года вперёд, а в этой республике за 4 года правительство выкатило постановление об изменении часового пояса и так как, ПРЕДПОЛОЖИМ, администратор сервера или разработчик БД или разработчики СУБД не следили за постановлениями правительства Сингапура и за изменениями IANA таблицы часовых поясов, данные об этих изменениях попали только в регулярно обновляющуюся у сингапурского клиента ОС. И чо?Какие ко мне претензии, как к разработчику СУБД в этой ситуации ?
Способов выстрелить себе в ногу - больше, чем ты можешь придумать.
Но это не значит, что мы должны создавать новые.
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39834324
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийкстати, в linux'е есть пакет tzdata.
который содержит данные о часовых поясах всего мира и правилах перехода на летнее/зимнее время.
он периодически обновляется, чтобы отразить изменения, принимаемые в различных странах.
и ICU ему для этого нафиг не нужен, вообще-то.
мухи отдельно, котлеты отдельно.ICU использует именно эти данные.
И предоставляет ещё много связанных сервисов.
ICU в любом случае используется на стороне сервера.
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39834329
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
05.07.2019 12:46, hvlad пишет:
> ICU использует именно эти данные.

ну так и нахер тогда ICU на клиенте?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39834331
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийну так и нахер тогда ICU на клиенте?
21906677
21908785
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39834332
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

вот если бы вместе с timezone_id передавалось ещё и смещение, то он был не бы нужен. А так по одному id смещение без ICU хрен узнаешь.

Влад предложил ещё один вариант передавать не UTC + id, а преобразованное время + id. Собственно в этом варианте ICU всё равно может потребоваться, если надо будет преобразовать время к другому часовому поясу, но это более редкий случай.
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39834340
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
05.07.2019 13:00, Симонов Денис пишет:
> Влад предложил ещё один вариант передавать не UTC + id, а преобразованное время + id.

дык и я за это обеими ногами!
передавать UTC - маразм.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39834359
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисвот если бы вместе с timezone_id передавалось ещё и смещение, то он был не бы нужен.

Влад и предлагал передавать их обеих.

Симонов ДенисВлад предложил ещё один вариант передавать не UTC + id, а
преобразованное время + id.
Почему бы не решать это на этапе data coercion? Если приложение в sqltype запросило
SQL_TIMESTAMP_TZ - получает (и отправляет) UTC+TZ, а если какой-нибудь
SQL_LOCAL_TIMESTAMP_TZ - то локальное время + TZ.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39834363
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovСимонов Денисвот если бы вместе с timezone_id передавалось ещё и смещение, то он был не бы нужен.

Влад и предлагал передавать их обеих.


тут rdb_dev за 2 байта сильно беспокоиться, а это ещё 2 байта добавить
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39834756
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийкстати, в linux'е есть пакет tzdata.
который содержит данные о часовых поясах всего мира и правилах перехода на летнее/зимнее время.
он периодически обновляется, чтобы отразить изменения, принимаемые в различных странах.
и ICU ему для этого нафиг не нужен, вообще-то.
мухи отдельно, котлеты отдельно.

зы: только что прилетел пакет обновления.


Имел секас с этим делом.
Идея конечно правильная.
Но, к сожалению, те люди которые принимают законы о подвижке временных поясов, принятия/отмене летнего/зимнего времени - нихрена про этот tzdata не знают и знать не хотят. Посему информация о реальных изменениях во временных поясах попадает в этот tzdata постфактум, причем через достаточно большое время. И тут у меня возникает вопрос - если при записи времени события с таймзоной эта зона определяется как локальное время + информация о временной зоне ПО ТЕКУЩЕЙ ИНФОРМАЦИИ в tzdata, то после того как информация в tzdata наконец-то поменялась - мы получим из базы другое время?

Ну и в моем случае, на сервере стояла очень старая убунта к которой уже не было обновления.
Текущий формат tzdata уже не подходит к той программе что была в убунте. Пришлось вручную обновить весь пакет.
Однако и в свежайшем tzdata в информации по Новосибирску были неверные (т.е. устаревшие) данные. Пришлось тупо выбрать фиксированное смещение от GMT.

Так что ваши надежды на то что где-то там хранится совершенно достоверная информация, мне кажется излишне оптимистичным.
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39924623
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал в субботу поставить себе четверку, скачал текущий линуксовый снапшот с офсайта, ставлю, получаю
"не могу подхватить icu"
обновил оную icu с 52 версии до 65, сейчас стоит вот такая:
Нет кандидатов на обновление "icu-65.1-141.1.x86_64". Самая последняя версия уже установлена.

Какую icu трэба файрберду 4.0?

С тройкой ругани на icu не было ни со старой версией, ни с новой. Вернул тройку обратно, все завелось с полтычка.
я понимаю, что сделал прыжок сразу на дюжину версий... перепрыгнул нужную?
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39924640
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky,

6.3

Кто не может подхватить клиент или сервер?
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39924641
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky
Попробовал в субботу поставить себе четверку, скачал текущий линуксовый снапшот с офсайта, ставлю, получаю
"не могу подхватить icu"
Можно не придумывать свои сообщения об ошибках ? Ну не первый день замужем же :(

Ivan_Pisarevsky
обновил оную icu с 52 версии до 65, сейчас стоит вот такая:
Нет кандидатов на обновление "icu-65.1-141.1.x86_64".
Можешь найти точное имя файла любой из библиотек, например libicuinXXX.so ?

Ivan_Pisarevsky
Какую icu трэба файрберду 4.0?
Собирается с 63-ей, но и 65-я должна работать (если там не было радикальных изменений интерфейса)
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39924745
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad
Можешь найти точное имя файла любой из библиотек, например libicuinXXX.so ?
Похоже 65 впендюрилась рядом, симлинк указывает на 52. Грешен, не проверил.
hvlad
Собирается с 63-ей, но и 65-я должна работать
Спасибо. 52 похоже решительно стара.
В текущем 7 центосе в репе вообще 50 лежит, некроманты, блин.

hvlad
Можно не придумывать свои сообщения об ошибках ?
Пошел делать работу над ошибками.
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39924823
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad
Можно не придумывать свои сообщения об ошибках ? Ну не первый день замужем же :(

было
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
linux-p3is:/opt/Firebird-4.0.0.1766-Beta1.amd64 # ./install.sh

Firebird 4.0.0.1766-Beta1.amd64 Installation

Press Enter to start installation or ^C to abort
Extracting install data
Updated /etc/services
Please enter new password for SYSDBA user: masterkey
unable to open database
Could not find acceptable ICU library

Install completed

linux-p3is:/opt/Firebird-4.0.0.1766-Beta1.amd64 # zypper in icu
Загрузка данных о репозиториях...
Предупреждение: Репозиторий "openSUSE-Leap-15.0-Update-Non-Oss" устарел. Используйте другое зеркало или сервер.
Чтение установленных пакетов...
"icu" уже установлен.
Нет кандидатов на обновление "icu-60.2-lp150.1.4.x86_64". Самая последняя версия уже установлена.
Разрешение зависимостей пакетов...

Нечего выполнять.
linux-p3is:/opt/Firebird-4.0.0.1766-Beta1.amd64 # cd /usr/lib64
linux-p3is:/usr/lib64 # ls | grep icu
icu
libharfbuzz-icu.so
libharfbuzz-icu.so.0
libharfbuzz-icu.so.0.10705.0
libicudata.so
libicudata.so.60_2
libicudata.so.60.2
libicui18n.so
libicui18n.so.60_2
libicui18n.so.60.2
libicuio.so
libicuio.so.60_2
libicuio.so.60.2
libicutest.so
libicutest.so.60_2
libicutest.so.60.2
libicutu.so
libicutu.so.60_2
libicutu.so.60.2
libicuuc.so
libicuuc.so.60_2
libicuuc.so.60.2
linux-p3is:/usr/lib64 #

стало
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
linux-p3is:/opt/Firebird-4.0.0.1766-Beta1.amd64 # ./install.sh

Firebird 4.0.0.1766-Beta1.amd64 Installation

Press Enter to start installation or ^C to abort
Extracting install data
Updated /etc/services
Please enter new password for SYSDBA user: masterkey
unable to open database
Could not find acceptable ICU library

Install completed

linux-p3is:/opt/Firebird-4.0.0.1766-Beta1.amd64 # zypper in icu
Загрузка данных о репозиториях...
Предупреждение: Репозиторий "openSUSE-Leap-15.0-Update-Non-Oss" устарел. Используйте другое зеркало или сервер.
Чтение установленных пакетов...
"icu" уже установлен.
Нет кандидатов на обновление "icu-65.1-lp150.139.1.x86_64". Самая последняя версия уже установлена.
Разрешение зависимостей пакетов...

Нечего выполнять.
linux-p3is:/opt/Firebird-4.0.0.1766-Beta1.amd64 # 
linux-p3is:/usr/lib64 # 
linux-p3is:/usr/lib64 # ls | grep icu
icu
libharfbuzz-icu.so
libharfbuzz-icu.so.0
libharfbuzz-icu.so.0.10705.0
libicudata.so
libicudata.so.suse65.1
libicui18n.so
libicui18n.so.suse65.1
libicuio.so
libicuio.so.suse65.1
libicutest.so
libicutest.so.suse65.1
libicutu.so
libicutu.so.suse65.1
libicuuc.so
libicuuc.so.suse65.1
linux-p3is:/usr/lib64 # 

Мои лыжи определенно не едут.
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39924858
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky
Код: plaintext
libicudata.so. suse 65.1
Вот такие имена Firebird никогда не искал, не ищет и не будет искать.

Попробуй сделать такие симлинки

libicudata.so.65
libicuuc.so.65
libicui18n.so.65
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39924861
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот, например, официальные пакеты от ICU

https://github.com/unicode-org/icu/releases/tag/release-65-1

что для федоры, что для убунты - нормальные единообразные имена

libicuXXX.so
libicuXXX.so.65
libicuXXX.so.65.1
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39924865
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот имена без суффиксов (icuXXX.so) Firebird должен был подхватить, но там я вижу небольшую ошибку.
Постараюсь исправить на днях.

Правда, я не уверен, что это будет работать - но тут уже не к нам вопросы :)
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39924869
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
симлинки добавил, немного поменялась ошибка

linux-p3is:/opt/Firebird-4.0.0.1766-Beta1.amd64 # ./install.sh

Firebird 4.0.0.1766-Beta1.amd64 Installation

Press Enter to start installation or ^C to abort
Extracting install data
Updated /etc/services
Please enter new password for SYSDBA user: masterkey
unable to open database
Could not find acceptable ICU library
Missing entrypoint ucnv_open in ICU library
Error loading ICU library version 65.0

Install completed
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39924873
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky,

а ты можешь посмотреть - там entrypoint'ы имеют суффиксы с версией, или нет ?
Попробуй libicuuc
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39925158
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky,

покажи nm -D libicuuc.so | grep ucnv_open
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39925280
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
взял другой комп с текущей версией 15.1. была мысль, что 15.0 старьё, изначально была 60.2 поставил 65.1
linux-todu:/opt/Firebird-4.0.0.1766-Beta1.amd64 # ./install.sh

Firebird 4.0.0.1766-Beta1.amd64 Installation

Press Enter to start installation or ^C to abort
Extracting install data
Updated /etc/services
Please enter new password for SYSDBA user: masterkey
unable to open database
Could not find acceptable ICU library
Missing entrypoint ucnv_open in ICU library
Error loading ICU library version 65.0

Install completed


симлинков наделал на все лады

linux-todu:/usr/lib64 # ls | grep libicu
libicudata.so
libicudata.so.60_2
libicudata.so.60.2
libicudata.so.65
libicudata.so.65_1
libicudata.so.65.1
libicudata.so.suse65.1
libicui18n.so
libicui18n.so.60_2
libicui18n.so.60.2
libicui18n.so.65
libicui18n.so.65_1
libicui18n.so.65.1
libicui18n.so.suse65.1
libicuio.so
libicuio.so.60_2
libicuio.so.60.2
libicuio.so.65
libicuio.so.65_1
libicuio.so.65.1
libicuio.so.suse65.1
libicutest.so
libicutest.so.60_2
libicutest.so.60.2
libicutest.so.65
libicutest.so.65_1
libicutest.so.65.1
libicutest.so.suse65.1
libicutu.so
libicutu.so.60_2
libicutu.so.60.2
libicutu.so.65
libicutu.so.65_1
libicutu.so.65.1
libicutu.so.suse65.1
libicuuc.so
libicuuc.so.60_2
libicuuc.so.60.2
libicuuc.so.65
libicuuc.so.65_1
libicuuc.so.65.1
libicuuc.so.suse65.1




hvlad
покажи nm -D libicuuc.so | grep ucnv_open
linux-todu:/usr/lib64 # nm -D libicuuc.so | grep ucnv_open
000000000007a780 T ucnv_open_65_1
0000000000080fb0 T ucnv_openAllNames_65_1
000000000007a860 T ucnv_openCCSID_65_1
000000000007a7b0 T ucnv_openPackage_65_1
00000000000801e0 T ucnv_openStandardNames_65_1
000000000007a7c0 T ucnv_openU_65_1


Сейчас под руками есть еще и виртуалка с 7 центос, и его помучаю.
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39925299
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky,

спасибо. Оставь только libicuXXX.so.65_1
Буду думать, что с этим делать
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39925318
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если закинуть либы по ссылке, что ты постил выше на гитхаб, то там картинка чуть другая, но результат тот же.
linux-todu:/usr/lib64 # nm -D libicuuc.so | grep ucnv_open
0000000000075f70 T ucnv_open_65
000000000007c160 T ucnv_openAllNames_65
0000000000076040 T ucnv_openCCSID_65
0000000000075fa0 T ucnv_openPackage_65
000000000007b490 T ucnv_openStandardNames_65
0000000000075fb0 T ucnv_openU_65

Есть какая либо дока что делать с ику? практические примеры? типа "бери дистр такой-то и вперед"...
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39925348
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky,

я понятия не имею, почему suse распространяет свой "неправильный" ICU с "неправильными" суффиксами.

Для того, чтобы Firebird смог его использовать, нужно сделать симлинки вида libicuXXX.so.65_1
Другие "свои" симлинки нужно убрать.
Т.е. останутся только такие
libicuXXX.so
libicuXXX.so.65_1
libicuXXX.so.suse65.1

Если же ты хочешь поставить официальный пакет от ICU (который на гитхабе), то нужно удалить пакет
от suse, убедиться что не осталось симлинков и развернуть пакет с гитхаба. Его Firebird должен подхватить
без бубна.

Если очень хочется докопаться до сути, то читать тут
http://userguide.icu-project.org/design
http://userguide.icu-project.org/packaging
...
Рейтинг: 0 / 0
25 сообщений из 303, страница 12 из 13
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 4: Could not find acceptable ICU library
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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