Установка Oracle 11g на Ubuntu 14.04 [дубликат]

Я уже несколько дней пытаюсь установить Oracle 11g на Ubuntu 14.04. Существует множество заметок / руководств по этому вопросу, и я попробовал более десяти из них, но я продолжаю сталкиваться с одной и той же проблемой, когда запускаю программу установки Oracle, на этапе 'Link Binaries' она всегда жалуется с этим сообщением:

Error in invoking target 'install' of makefile '/u01/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk'. See '/u01/app/oraInventory/logs/installActions2015-01-07_03-25-51OM.log' for details.

В лог-файле написано

INFO: //usr/lib/x86_64-linux-gnu/libstdc++.so.5: undefined reference to `memcpy@GLIBC_2.14'
collect2: error: ld returned 1 exit status

Из десятков форумов, которые я просмотрел, большинство, кажется, предполагают, что проблема в том, что Ubuntu поставляется с установленным libstdc++6, но Oracle 11gR2 требует libstdc++5.

Поэтому, как советуют во многих местах, я сделал что-то похожее на следующее, хотя мне пришлось немного покопаться, чтобы найти нужные версии:

wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-3.3/libstdc++5_3.3.6-17ubuntu1_amd64.deb
dpkg-deb -x libstdc++5_3.3.6-17ubuntu1_amd64.deb ia64-libs
sudo cp ia64-libs/usr/lib/libstdc++.so.5.0.7 /usr/lib64/
cd /usr/lib64/
sudo ln -s libstdc++.so.5.0.7 libstdc++.so.5

wget http://security.ubuntu.com/ubuntu/pool/universe/i/ia32-libs/ia32-libs_2.7ubuntu6.1_amd64.deb
dpkg-deb -x ia32-libs_2.7ubuntu6.1_amd64.deb ia32-libs
sudo cp ia32-libs/usr/lib32/libstdc++.so.5.0.7 /usr/lib32/
cd /usr/lib32
sudo ln -s libstdc++.so.5.0.7 libstdc++.so.5

Но это... просто... не... работает!

Я перезагрузился и т.д., чтобы убедиться, что это вступает в силу, но безуспешно. Это на чистой установке Ubuntu 14.04, без чего-либо, кроме некоторых настроек прокси, и установленной java 7.

Я создал отдельного пользователя oracle (и группы oinstall и dba), и я вхожу под пользователем oracle перед запуском runInstaller скрипта из извлеченной загрузки oracle.

Есть ли у кого-нибудь пошаговое руководство, применимое к Ubuntu 14.04 и Oracle 11gR2?


Обновление Fri 09 Jan 2015

Еще немного информации, которая может иметь значение.

В /usr/lib32/ у меня есть это:

lrwxrwxrwx  1 root root     18 Jan  7 15:22 libstdc++.so.5 -> libstdc++.so.5.0.7
-rw-r--r--  1 root root 737192 Jan  7 15:21 libstdc++.so.5.0.7

В /usr/lib64/ у меня есть это:

lrwxrwxrwx  1 root root     42 Jan  7 13:46 libc_nonshared.a -> /usr/lib/x86_64-linux-gnu/libc_nonshared.a
lrwxrwxrwx  1 root root     48 Jan  7 13:47 libpthread_nonshared.a -> /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a
lrwxrwxrwx  1 root root     18 Jan  7 14:52 libstdc++.so.5 -> libstdc++.so.5.0.7
-rw-r--r--  1 root root 829792 Jan  7 14:51 libstdc++.so.5.0.7
lrwxrwxrwx  1 root root     40 Jan  7 13:47 libstdc++.so.6 -> /usr/lib/x86_64-linux-gnu/libstdc++.so.6

В ~/. bashrc (для пользователя oracle) у меня вот что:

export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=mydb
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib32:/usr/lib64:$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$CLASSPATH
1
задан 8 January 2015 в 16:04

2 ответа

У меня была та же "неопределенная ссылка на 'memcpy@GLIBC_2.14'" ошибка с Oracle 11-граммовый R2 на (Jessie) Debian 8. Я решил его с решением , найденным здесь :

Определяют соответствующие каталоги:

ORACLE_HOME="/u01/app/oracle/product/11.2.0/dbhome_1"
mkfile="$ORACLE_HOME/ctx/lib/ins_ctx.mk"

Создают короткую обертку C:

cat << __EOF__ > /tmp/memcpy_wrap.c
#include <stddef.h>
#include <string.h>

asm (".symver wrap_memcpy, memcpy@GLIBC_2.14");
void *wrap_memcpy(void *dest, const void *src, size_t n) {
    return memcpy(dest, src, n);
}
__EOF__

Редактирование make-файл, чтобы использовать эту обертку и скомпилировать его:

sed -i -e 's/\$(INSO_LINK)/\$(INSO_LINK) -Wl,--wrap=memcpy_wrap \$(ORACLE_HOME)\/ctx\/lib\/memcpy_wrap.o/g' "$mkfile"
gcc -c /tmp/memcpy_wrap.c -o ${ORACLE_HOME}/ctx/lib/memcpy_wrap.o && rm /tmp/memcpy_wrap.c
1
ответ дан 11 November 2019 в 02:28

Я думаю, что разработал это. Я плохо знаком с Ubuntu (просто установил 14.04 на старом сервере), и пытались взломать проблему memcpy@GLIBC_2.14 также. Я следовал тем же примечаниям, и т.д. Вы обращаетесь к вышеупомянутому.

казалось бы, что libstdc++.so.5.0.7 оказывается в нескольких местах т.е. /usr/lib64, /usr/lib/x86_64-linux-gnu. Когда я работаю через все различные ссылки, и т.д. казалось бы, что /usr/lib64/libstdc++.so.5 библиотека на самом деле указывает на версию, находящуюся в /usr/lib/x86_65-linux-gnu. Это является значительно более новым, чем то Вы (и I) загрузка.

я сделал копию оригинала libstdc++.so.5.0.7 в /usr/lib/x86-64 и затем скопировал файл, который мы загрузили в этот каталог и повторно указали эти libstdc++.so.5 ссылка на новую версию файла.

Это шло дальше. Теперь, я получаю проблемы с Руководителем предприятия, возвратится к этому.

0
ответ дан 11 November 2019 в 02:28

Другие вопросы по тегам:

Похожие вопросы: