To mi się przydarzyło. Jeśli tak się dzieje, być może zaoszczędzi ci to trochę czasu.
Instalowałem 64-bitowy serwer DB2 10.5 (nie jestem pewien, jaki dokładnie pakiet produktu - ktoś mi go dał) na 64-bitowym systemie Ubuntu 12.04 SoftLayer zawierającym stos LAMP.
Podsumowując: Okazuje się, że brakowało mi 32-bitowego libpam i 64-bitowego libaio i musiałem zrobić:
apt-get install libpam0g:i386 libaio1
Przebieg większości ludzi będzie bez wątpienia różny. Jeśli tylko część doświadczenia dotyczy Ciebie i byłaby dla Ciebie pomocna, oto więcej szczegółów.
Przed instalacją db2prereqcheck
skarżył się:
DBT3514W The db2prereqcheck utility failed to find the following
32-bit library file: "/lib/libpam.so*".
Rzeczywiście, wszystko, co miałem, to:
/lib/x86_64-linux-gnu/libpam.so.0.83.0
/lib/x86_64-linux-gnu/libpamc.so.0
/lib/x86_64-linux-gnu/libpam.so.0
/lib/x86_64-linux-gnu/libpam_misc.so.0.82.0
/lib/x86_64-linux-gnu/libpamc.so.0.82.1
/lib/x86_64-linux-gnu/libpam_misc.so.0
Po rozejrzeniu się po Internecie zrobiłem:
apt-get install libpam0g:i386
po czym miałem również:
/lib/i386-linux-gnu/libpam.so.0.83.0
/lib/i386-linux-gnu/libpamc.so.0
/lib/i386-linux-gnu/libpam.so.0
/lib/i386-linux-gnu/libpam_misc.so.0.82.0
/lib/i386-linux-gnu/libpamc.so.0.82.1
/lib/i386-linux-gnu/libpam_misc.so.0
Ale db2prereqcheck nadal zgłaszał tę samą skargę.
Zalecane jest kilka miejsc w sieci:
ln -s /lib/i386-linux-gnu/libpam.so.0 /lib/libpam.so.0
ale wydawało mi się to groteskowym hackiem, który z pewnością sprawiłby mi różne kłopoty z różnymi aplikacjami w dalszej części drogi.
Próbowałem wielu rzeczy ze zmiennymi środowiskowymi, w tym
LD_LIBRARY_PATH
i LD_LIBRARY_PATH_32
, ale nic nie pomogło z db2prereqcheck
.
Ktoś, komu ufam, powiedział, że mimo wszystko kontynuuje instalację. Więc zrobiłem
db2_install
(był to system zdalnego bez głowy), i chociaż db2prereqcheck który działa jako część instalację narzekali, instalacja nie pracę.
Niestety db2start narzekał:
sqllib/adm/db2start: error while loading shared libraries:
libaio.so.1: wrong ELF class: ELFCLASS32
Osoba, której zaufałem, poleciła:
apt-get install libaio1
który zainstalował 64-bitowe libaio (wcześniej mój system zawierał tylko 32-bit), po czym skończyłem z:
/lib/i386-linux-gnu/libaio.so.1.0.1
/lib/i386-linux-gnu/libaio.so.1
/lib/x86_64-linux-gnu/libaio.so.1.0.1
/lib/x86_64-linux-gnu/libaio.so.1
Potem wszystko poszło dobrze.
Znowu najważniejsze: brakowało mi 32-bitowego libpam i 64-bitowego libaio.
BTW, mój obraz systemu już zawierał pakiety libstdc++6
i lib32stdc++6
- coś, czego wielu ludziom wydaje się brakować w swoich środowiskach.
Mam nadzieję że to pomoże.
źródło
Odpowiedzi:
Na serwerze Ubuntu 14.04.02 (64-bitowym) musiałem zainstalować następujące pakiety przed zainstalowaniem programu DB2 10.5:
źródło
sudo dpkg --add-architecture i386
wtedysudo apt-get update
i na końcusudo apt-get install libpam0g:i386
. Uwaga dla początkujących instalujących DB2: Te pakiety instaluje się za pomocąapt-get
menedżera pakietów Ubuntu. Npapt-get install libx32stdc++6
. : Służysudo
do uruchamiania tych poleceń jako root. (W przeciwnym razie możesz nie mieć wystarczających uprawnień dostępu.)To załatwiło sprawę, pomimo brzydkiego włamania.
apt-get install libpam0g
powiedział, że wszystko zostało zainstalowane i aktualne.źródło
Być może będziesz musiał uruchomić
ldconfig
po zainstalowaniu wersji pam w bibliotece pam; DB2 przeszukuje pamięć podręczną konsolidatora pod kątem swoich zależności, więc jeśli jest zainstalowany i zawiera wpis/etc/ld.so.cache.d/
, powinien go znaleźć, jeślildconfig
został uruchomiony.Uruchomienie czegoś podobnego
strace db2 connect to sample
da ci wiele informacji.źródło