Open HardRock4Life opened 2 years ago
Note, that precompiled Linux binary of the driver depends on specific ABI version of ICU lib: libicuuc.so.50
. The one that is installed by the system's packet manager (libicu
) is probably of another incompatible version. See the notes on v1.1.7.20200414 release.
The solution for this would be building the driver from sources on that particular machine, so that it will be linked to the ICU version supplied by the system. Please follow this: https://github.com/ClickHouse/clickhouse-odbc#building-from-sources
Ok, I'll try tomorrow and report the results here.
@HardRock4Life any news on this?
Get new driver Release 1.2.1.20220905 on ubuntu 22.04. Same problem:
# ldd /usr/lib/x86_64-linux-gnu/odbc/libclickhouseodbc.so
linux-vdso.so.1 (0x00007ffc79ee8000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f74557db000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f74557d6000)
libodbcinst.so.2 => /lib/x86_64-linux-gnu/libodbcinst.so.2 (0x00007f74557c1000)
libicuuc.so.50 => not found
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f74557bc000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f7454f19000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7454cf1000)
/lib64/ld-linux-x86-64.so.2 (0x00007f74557e7000)
libltdl.so.7 => /lib/x86_64-linux-gnu/libltdl.so.7 (0x00007f74557af000)
You are not testing before release?! Where you can get libicuuc.so.50? Ubuntu 18.04 - libicuuc.so.60.2 Ubuntu 22.04 - libicuuc.so.70.1
this is expected behavior described in release notes
the pre-built Linux package is built on CentOS 7, and it depends on the default system version of ICU, which is ICU 50. If you plan to use it in any other Linux distribution, you have to make sure, that this exact version of ICU is available at run-time there. Otherwise, you will need to build the driver manually for your system so that it links with its ICU version. The process is trivial, follow the instructions at "Building from sources" section from README.md.
Workaround with the existing package coming from RHEL7 ;
ln -s libicuuc.so.50.2 libicuuc.so.50
ln -s libicudata.so.50.2 libicudata.so.50
$ls $HOME/libicu/
libicudata.so.50 libicudata.so.50.2 libicuuc.so.50 libicuuc.so.50.2
export LD_LIBRARY_PATH=$HOME/libicu:$LD_LIBRARY_PATH
I'm trying to set up an ODBC driver for a Docker image of Clickhouse on a remote Debian server (9.12 stretch).
I've configured the connection like this:
[myconnection] Description = ODBC Driver (ANSI) for ClickHouse Driver = /lib64/libclickhouseodbc.so Setup = /lib64/libclickhouseodbc.so UsageCount = 1
[ODBC Data Sources] myconnection = myconnection
[myconnection] Driver = myconnection