Narazil jsem na tento problém s klientem Oracle 11R2. Nejsem si jistý, jestli to udělal instalátor Oracle nebo to udělal někdo tady, než jsem dorazil. Nebylo to 64bitové vs 32bitové, vše bylo 64bitové.
Chyba byla libexpat.so.1
nebyl symbolický odkaz.
Ukázalo se, že existují dva stejné soubory, libexpat.so.1.5.2
a libexpat.so.1
. Odstranění problematického souboru a vytvoření symbolického odkazu na verzi 1.5.2 způsobilo, že chyba zmizela.
Dává smysl, že byste chtěli, aby známé jméno bylo symbolickým odkazem na aktuální verzi. Pokud to uděláte, je méně pravděpodobné, že skončíte se zastaralou knihovnou.
Vyřešeno, alespoň v bodě otázky.
Hledal jsem na webu, než jsem se zeptal, a neexistovalo žádné přesvědčivé řešení, důvod, proč je tato chyba:lib1.so a lib2.so nejsou v pořádku, velmi pravděpodobně nejsou zkompilovány pro 64 PC, ale jinak pro 32bitový stroj lib3.so je 64bitová lib. Alespoň taková je moje hypotéza.
VELMI bohužel ldconfig nedává čistou chybovou zprávu informující, že nemohl načíst knihovnu, pouze pumpuje:
ldconfig:/folder_where_the_wicked_lib_is/ není symbolický odkaz
Vyřešil jsem to, když jsem odstranil libs nenalezené ldd přes binární soubor. Nyní je snazší vědět, kde je problém.
Moje stará verze:GNU ld verze 2.20.51 a nevím, jestli má nejnovější verze pro své uživatele lepší zprávu.
Děkuji.
Jednoduše jsem spustil níže uvedený příkaz:
export LD_LIBRARY_PATH=/usr/lib/
Nyní to funguje dobře.