Установка 32х битной версии на 64х битный хост
Не выполнять проверку операционной системы
./runInstaller -ignoreSysPrereqs
Ошибка в файле $ORACLE_HOME/sqlplus/lib/ins_sqlplus.mk
EXPDLIBS=-lclntsh
Ошибка в файле $ORACLE_HOME/network/lib/ins_net_server.mk
Необходимо в файле $ORACLE_HOME/network/lib/env_network.mk заменить строку
LINK=$(PURECMDS) gcc $(LDFLAGS) $(COMPSOBJS)
на
LINK=$(PURECMDS) gcc -Wl,--no-as-needed $(LDFLAGS) $(COMPSOBJS)
Ошибка в файле $ORACLE_HOME/rdbms/lib/ins_rdbms.mk
sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.5 /usr/lib64/
Убедимся что в /lib64 так же имеется необходимая либа для сборки:
~$ ls -l /lib64/libgcc_s.so.1
lrwxrwxrwx 1 root root 35 Apr 25 16:17 /lib64/libgcc_s.so.1 -> /lib/x86_64-linux-gnu/libgcc_s.so.1
~$
Затем выполним команды:
sed -i 's/^(s*$(MK_EMAGENT_NMECTL))s*$/1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.mk
sed -i 's/^($LD $LD_RUNTIME) ($LD_OPT)/1 -Wl,--no-as-needed 2/g' $ORACLE_HOME/bin/genorasdksh
sed -i 's/^(s*)($(OCRLIBS_DEFAULT))/1 -Wl,--no-as-needed 2/g' $ORACLE_HOME/srvm/lib/ins_srvm.mk
sed -i 's/^(TNSLSNR_LINKLINE.*$(TNSLSNR_OFILES)) ($(LINKTTLIBS))/1 -Wl,--no-as-needed 2/g' $ORACLE_HOME/network/lib/env_network.mk
sed -i 's/^(ORACLE_LINKLINE.*$(ORACLE_LINKER)) ($(PL_FLAGS))/1 -Wl,--no-as-needed 2/g' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/^(KFED_LINKLINE.*$(S0MAIN)) ($(SSKFEDED))/1 -Wl,--no-as-needed 2/g' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/^(KFOD_LINKLINE.*$(S0MAIN)) ($(SSKFODED))/1 -Wl,--no-as-needed 2/g' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/^(KFNDG_LINKLINE.*$(S0MAIN)) ($(SSKFNDGED))/1 -Wl,--no-as-needed 2/g' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/^(AMDU_LINKLINE.*$(S0MAIN)) ($(SSKFMUED))/1 -Wl,--no-as-needed 2/g' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
строку:
$(SPOBJS) -Wl,--no-as-needed $(LLIBSERVER) $(LLIBODM) $(LLIBSAGE)
Ошибка в файле $ORACLE_HOME/sysman/lib/ins_emdb.mk
Error in invoking target 'collector' of makefile '/opt/oracle/product/10g/dbname_1/sysman/lib/ins_emdb.mk'
Игнорируем данную ошибку, так как функция, которая компилится судя по всему нигде и не используется.
Ошибка при первом запуске "Oracle Database Configuration Assistant" (shared memory)
Для того чтобы разрешить группе dba, в которую входит наш пользователь oracle иметь возможность писать в расширенные участки памяти достаточно узнать UID группы dba из файла /etc/group после чего добавить в файл /etc/sysctl.conf следующего вида строку:
vm.hugetlb_shm_group = тут_UID_группы
Затем нужно принудительно применить новые правила:
sysctl -p
ORA-00371: not enough shared pool memory, should be atleast 143364812 bytes
*.shared_pool_size=293601280