[ODBC] Nie można otworzyć biblioteki, Can't open lib '/usr/lib/libmodbc.so' : file not found |
[ODBC] Nie można otworzyć biblioteki, Can't open lib '/usr/lib/libmodbc.so' : file not found |
8.09.2021, 20:26:05
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 834 Pomógł: 225 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
Dzisiaj mam problem z połączeniem się z bazą ODBC dla sterownika MacroBase (zna ktoś?)
Samo odbc na systemie przebiegło poprawnie, bo widać do po ustawieniach w plikach odbc.ini i odbcinst.ini jednakże gdy wykonuje testowe polecenie: isql -v -k "DRIVER={Macrobase};SERVER=localhost;UID=adm;PWD=xyz" otrzymuję komunikat: Kod [unixODBC][Driver Manager] Can't open lib '/usr/lib/libmodbc.so' : file not found [ISQL] ERROR: Could not SQLConnect sprawdzając pliki np. poleceniem: file /usr/libmodbc.so to mam informację np. że jest to plik 32 bitowy. prawa dostępu do pliku: root 444 (wcześniej 777) |
|
|
9.09.2021, 07:36:02
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Sprawdzałeś to: ? https://stackoverflow.com/questions/3462411...o-file-not-foun
|
|
|
9.09.2021, 08:19:41
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 834 Pomógł: 225 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
Niestety ale to nie było moje rozwiązanie,
zgłosił problem gdzie plik biblioteki miał w innej lokacji niż ścieżka w ustawieniach, ja mam dokładnie to samo co w ustawieniach. Skorzystałem za to z rady drugiej: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib niestety bez efektu. Swoją drogą, na Stackoeverflow szukałem rozwiązania dużo wcześniej, zanim rozpocząłem wątek tutaj na forum. Ten post edytował Tomplus 9.09.2021, 08:20:51 |
|
|
9.09.2021, 08:44:05
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
A pokaż co zwraca `/usr/lib/libmodbc.so`
|
|
|
9.09.2021, 09:10:17
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 834 Pomógł: 225 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
Wrzucę bardziej kompleksowe informacje, pracuję na Debian/WSL2.
Kod root@admin:/# ls -lah /etc/odbc
total 3.7M drwxr-xr-x 2 root root 4.0K Sep 8 15:04 . drwxr-xr-x 68 root root 4.0K Sep 8 15:02 .. -rwxrwxrwx 1 tom tom 1.3K Sep 8 13:54 as_dsn.ini -rwxrwxrwx 1 tom tom 896 Sep 3 10:53 dsn.ini -rwxrwxrwx 1 tom tom 4.7K Sep 3 10:18 install_driver.sh -rwxrwxrwx 1 tom tom 4.7K Sep 3 10:18 install_driver64.sh -rwxrwxrwx 1 tom tom 4.8K Sep 3 10:18 install_driver64_legacy.sh -rwxrwxrwx 1 tom tom 4.8K Sep 3 10:18 install_dsn.sh -rwxrwxrwx 1 tom tom 568K Sep 8 15:03 libmodbc.so -rwxrwxrwx 1 tom tom 639K Sep 8 15:04 libmodbc64.so -rwxrwxrwx 1 tom tom 640K Sep 8 15:04 libmodbc64_legacy.so -r--r--r-- 1 root root 568K Sep 8 13:16 libodbc.so -r--r--r-- 1 root root 639K Sep 8 13:17 libodbc64.so -r--r--r-- 1 root root 640K Sep 8 13:17 libodbc_legacy.so lrwxrwxrwx 1 root root 13 Sep 8 14:05 odbc.ini -> /etc/odbc.ini lrwxrwxrwx 1 root root 17 Sep 8 14:05 odbcinst.ini -> /etc/odbcinst.ini -rwxrwxrwx 1 tom tom 2.1K Sep 3 10:18 switch_drivers64.sh -rwxrwxrwx 1 tom tom 2.1K Sep 3 10:18 switch_drivers64_legacy.sh root@admin:/# cat /etc/odbc/odbcinst.ini [MacroBASE] Driver=/usr/lib/libmodbc.so Description=libmodbc.so UsageCount=1 root@admin:/# cat /etc/odbc/odbc.ini [Macrobase] DRIVER=MacroBASE UID= PWD= AS=1 ASNAME=xpertis ASGROUP=default ASADDRESS=10.0.0.102 ASPORT=5580 ASCERTUSE=0 ASCERTPTH= root@admin:/# file /usr/lib/libmodbc.so /usr/lib/libmodbc.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, with debug_info, not stripped root@admin:/# ls -lah /usr/lib/ |grep "libm" -r--r--r-- 1 root root 568K Sep 8 15:03 libmodbc.so -r--r--r-- 1 root root 639K Sep 8 15:04 libmodbc64.so -r--r--r-- 1 root root 640K Sep 8 15:04 libmodbc64_legacy.so root@admin:/# isql -v Macrobase [01000][unixODBC][Driver Manager]Can't open lib '/usr/lib/libmodbc.so' : file not found [ISQL]ERROR: Could not SQLConnect root@admin:/# isql -v -k "DRIVER={Macrobase};SERVER=10.0.0.102;UID=szef;PWD=szef" [01000][unixODBC][Driver Manager]Can't open lib '/usr/lib/libmodbc.so' : file not found [ISQL]ERROR: Could not SQLDriverConnect root@admin:/# isql Macrobase szef szef "select * from JM" [ISQL]ERROR: Could not SQLConnect root@admin:/# isql -v Macrobase szef szef "select * from JM" [01000][unixODBC][Driver Manager]Can't open lib '/usr/lib/libmodbc.so' : file not found [ISQL]ERROR: Could not SQLConnect |
|
|
9.09.2021, 09:12:04
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
poka jeszcze ldd /usr/lib/libmodbc.so
|
|
|
9.09.2021, 09:26:12
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 834 Pomógł: 225 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
Kod ldd /usr/lib/libmodbc.so not dynamic executable |
|
|
9.09.2021, 09:59:17
Post
#8
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Próbowałeś uzywać wersji 64bit?
|
|
|
13.09.2021, 08:40:38
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 834 Pomógł: 225 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
Próbowałem, także wersji 32bit dla wszystkich...
polecenie LDD w ogóle na jednym serwerze z Debian działało, na innym już nie, nawet po zainstalowaniu dodatkowych bibliotek. Tutaj mam przykład inny, niby informuje mnie o braku biblioteki, ale po dodaniu powiązania powiązania symbolicznego do tych miejsc nadal wskazuje że nie ma biblioteki: Kod root@SERVER-R220:/data/server/run# ldd libmodbc.so linux-gate.so.1 (0xf7f99000) libodbcinst.so => not found libpthread.so.0 => /lib32/libpthread.so.0 (0xf7f12000) libc.so.6 => /lib32/libc.so.6 (0xf7d34000) /lib/ld-linux.so.2 (0xf7f9b000) root@SERVER-R220:/data/server/run# find / -iname libodbcinst.so /data/server/run/libodbcinst.so /usr/lib32/libodbcinst.so /usr/libx32/libodbcinst.so /usr/lib/x86_64-linux-gnu/libodbcinst.so /usr/lib/libodbcinst.so root@SERVER-R220:/data/server/run# file /data/server/run/libodbcinst.so /data/server/run/libodbcinst.so: symbolic link to /usr/lib/x86_64-linux-gnu/libodbcinst.so /usr/lib/x86_64-linux-gnu/libodbcinst.so: symbolic link to libodbcinst.so.2.0.0 root@SERVER-R220:/data/server/run# file /usr/lib/x86_64-linux-gnu/libodbcinst.so.2.0.0 /usr/lib/x86_64-linux-gnu/libodbcinst.so.2.0.0: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=68020233737860bb4243431aae7a9186e9c1c6db, with debug_info, not stripped Mam dodatkowe pytanie które może rozwiąże mój problem, a mianowicie jak mam dodać bibliotekę aby była widoczna dla innej biblioteki? ldconfig -l {źródło_do_lib} Nie działa. Tj. działa, ale nie tak jakbym oczekiwał. Kod ldconfig -lX /lib64/libodbcinst.so
root@admin:/lib/odbc# ldconfig -v |grep libodbcinst libodbcinst.so.2 -> libodbcinst.so.2.0.0 root@admin:/lib/odbc# ldd /data/server/run/libmodbc.so linux-gate.so.1 (0xf7f64000) libodbcinst.so => not found libpthread.so.0 => /lib32/libpthread.so.0 (0xf7edf000) libc.so.6 => /lib32/libc.so.6 (0xf7d01000) /lib/ld-linux.so.2 (0xf7f66000) |
|
|
13.09.2021, 17:47:14
Post
#10
|
|
Grupa: Zarejestrowani Postów: 531 Pomógł: 55 Dołączył: 3.01.2016 Skąd: Łowicz Ostrzeżenie: (0%) |
czy o coś takiego Ci chodzi? https://tldp.org/HOWTO/Program-Library-HOWT...-libraries.html
-------------------- Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
|
|
|
15.09.2021, 08:57:27
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 834 Pomógł: 225 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
Sprawdzę to, ale odsuwam to w czasie.
Póki co wkurzyłem się i zrobiłem to samo pod WINDOWS. -> zainstalowałem sterownik MacroBASE -> następnie w ODBC 32bit, utworzyłem połączenie DSN -> pobrałem Apache 32bit -> pobrałem PHP8 32bit --- Teraz działa pobieranie danych z bazy. Może faktycznie potrzebny był mi system linux w pełni 32bitowy, bo instalowanie bibliotek 32bitowych pod linuxem to katorga, mimo że segregują się bardzo klarownie drzewie katalogów, to gubię się w tym co jeszcze potrzebuję, jak tylko wywala mi jakiś błąd że czegoś nie ma, a jest. |
|
|
Wersja Lo-Fi | Aktualny czas: 19.04.2024 - 06:25 |