Closed ausiddiqui closed 3 years ago
Interesting.
Have (or will) you set up locate
on your machine? If so, please provide the output of --
locate -0 libiodbcinst | xargs -0 sudo ls -l
If you haven't (and don't want to) set up locate
, please provide output of this command (which will take somewhat longer to run, especially if you have mounted any network volumes) --
sudo find / -name "*libiodbcinst*" -print0 | xargs -0 sudo ls -l
(simplified answer)
I have downloaded the Teradata driver on my Big Sur system and recreated your error.
It indeed looks like Apple is only installing the symlinks to their build of the libiodbcinst.2.1.18.dylib
, but forgot to actually install the library itself in /usr/lib
. As this directory cannot be changed by a user (or root for that matter) we cannot directly fix the issue in our installers. We can try to raise a problem report to Apple, but it is unsure how long this may take.
Your idea to change the DYLD_LIBRARY_PATH unfortunately also does not work transparently, unless you set it on some system-wide level. Starting the iODBC Administrator64.app from the UI does not inherit the environment settings from your shell.
As it looks like Teradata is not directly linking to the libiodbcinst.dylib library, but loads the library dynamically when the dialog is instantiated, you should report this problem to them and tell them to contact us. We would be more than happy to work with them to fix this issue for their customers.
So i checked if i could fix the Teradata installation on my system.
First i went to the directory where the setup dialog has been written by looking at my /Library/ODBC/odbcinst.ini
which has the following lines:
[Teradata Database ODBC Driver 16.20]
Driver = /Library/Application Support/teradata/client/16.20/lib/tdataodbc_sbu.dylib
Setup = /Library/Application Support/teradata/client/16.20/lib/TeradataODBCSetup.bundle/Contents/MacOS/TeradataODBCSetup
This problem is actually easier to fix than i originally wrote up.
As you have the iODBC and iODBCinst frameworks installed on your system, the only thing we need to do is create a symlink in one of the search directories that the system uses so it can find the missing library. Since /usr/lib/
is not writeable anymore, the next best thing is to use /usr/local/lib/
Please perform the following commands in a Terminal session:
$ cd /usr/local/lib
$ sudo ln -s /Library/Frameworks/iODBCinst.framework/iODBCinst libiodbcinst.dylib
You should now be able to configure a DSN using the iODBC Administrator64.app
@ausiddiqui -- Can you confirm whether the above brought you success?
Please also note that new installers of iODBC 3.52.15 have just been posted, which will bring improved experience on macOS Big Sur.
The symbolic linking @pkleef suggested worked. Thank you!
When trying to onfigure a driver (Teradata ODBC Driver) using iODBC Administrator I get the warning dialog box with an OK button:
Dynamic Library Error libiodbcinst.dylib is missing.
This is on macOS Big Sur 11.2.3 and I installed OpenLink iODBC Driver Manager v3.52.14 through the dmg file in the release link on GitHub.
There are only two copies of libiodbcinst.dylib on my machine:
/usr/local/iODBC/lib
-- symbolic link to//Library/Frameworks/iODBCinst.framework/iODBCinst
/usr/lib
-- this is a broken symbolic link tolibiodbcinst.2.1.18.dylib
This second link in
/usr/lib
cannot be edited, removed and a new link cannot be added in this directory (even with sudo).I have added
/usr/local/iODBC/lib
to both myPATH
andDYLD_LIBRARY_PATH
environment variables without any luck.