Ubuntu 20.04部署HORSE API更新后出现ICU库找不到错误求助
检查ICU库是否安装
先确认系统中是否存在ICU相关依赖包,执行命令:dpkg -l | grep libicu
如果无输出或版本不匹配,直接安装Ubuntu 20.04默认兼容的版本:sudo apt-get install libicu66确保Firebird能定位到ICU库
编辑Firebird配置文件/etc/firebird/3.0/firebird.conf,找到ICUConfigFile参数,取消注释并设置为对应路径:ICUConfigFile = /usr/share/icu/66.1/icudt66l.dat
也可以临时设置环境变量让Firebird找到库,执行:export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
之后重启Firebird服务:sudo systemctl restart firebird3.0排查API更新后的依赖问题
用ldd命令检查API二进制文件的依赖情况:ldd /path/to/your/horse/api/binary
查看是否有缺失的ICU相关库(比如libicuuc.so.66),如果存在依赖缺失,重新编译API时指定正确的ICU库路径,或确保系统已安装对应版本的依赖。验证Firebird服务状态
重启Firebird后,查看服务运行状态:sudo systemctl status firebird3.0
也可以直接用Firebird自带工具测试连接:isql-fb localhost:/path/to/your/db.fdb
如果数据库连接正常,说明Firebird本身的ICU问题已解决,再重点排查API调用逻辑。检查文件权限
确认Firebird运行用户(默认是firebird)拥有ICU库文件和配置文件的读取权限,执行:ls -l /usr/lib/x86_64-linux-gnu/libicu*.so*
确保文件权限允许其他用户读取。
内容的提问来源于stack exchange,提问作者Henrique Gama

