OracleALS40/x86 64

Материал из ALT Linux Wiki

Как и любой другой энтерпрайз Oracle тоже ниасилил "честный" x86_64. Для создания биарча воспользуемся пакетом arepo.

Внимание! В Oracle 11g R2 этой проблемы уже нет. См. Oracle/СПТ


Я производил установку на Сизифе, но этот рецепт подходит и для Server/branch при наличии локального зеркала репозитория (кроме noarch нужны обе архитектуры i586 и x86_64). На данный момент (2008.10.30) в архитектуре x86_32 (есть только в Сизифе) не хватает нескольких пакетов, поэтому опишу весь процесс полностью.

Создаём arepo.conf примерно следующего содержания:

origin: /ALT/Sisyphus
source: i586
target: x86_64
flavor: classic
shadow: ~/biarch-repo

packages: >
    glibc-core
    glibc-nss
    glibc-gconv-modules
    glibc-devel

    gcc4.3
    libgcc4.3
    cpp4.3
    libgmp
    libmpfr

    libstdc++3.3

    libICE
    libSM
    libXau
    libXdmcp
    libxcb
    libX11
    libXext
    libXp
    libXt
    libXtst

    libuuid

    libaio
    libaio-devel

hacks:
    gcc4.3:
        after-install: |
            %define gcc64odir /usr/lib64/gcc/x86_64-alt-linux/%version
            mkdir -p %buildroot%gcc64odir
            ln -s ../../../../lib/gcc/i586-alt-linux/%version \
                %buildroot%gcc64odir/32
        after-files: |
            %gcc64odir/32

# vim:set ft=yaml et ts=4 sw=4:

Здесь origin это путь к зеркалу Сизифа (или любого другого репозитория, например 4.1/branch), полученные пакеты будут помещены в shadow. Для работы arepo нужны настроенный hasher и достаточно места в $TMPDIR. Создаём shadow и запускаем конвертацию пакетов:

$ mkdir -p ~/biarch-repo/i586/RPMS.classic
$ mkdir -p ~/biarch-repo/SRPMS.classic
$ mkdir -p ~/biarch-repo/i586/base
$ genbasedir --topdir ~/biarch-repo i586 classic
$ arepo /путь/к/arepo.conf

В случае использования репозитория с другим составом пакетов, возможно придётся скорректировать версии gcc и некоторых библиотек.

Далее добавляем в /etc/apt/sources.list примерно следующую строку:

rpm file:///путь/к/biarch-repo i586 classic

Выполняем apt-get update и устанавливаем пакеты:


  • i586-cpp4.3
  • i586-gcc4.3
  • i586-glibc-core
  • i586-glibc-devel
  • i586-glibc-gconv-modules
  • i586-glibc-nss
  • i586-libICE
  • i586-libSM
  • i586-libX11
  • i586-libXau
  • i586-libXdmcp
  • i586-libXext
  • i586-libXp
  • i586-libXt
  • i586-libXtst
  • i586-libaio
  • i586-libaio-devel
  • i586-libgcc4.3
  • i586-libgmp
  • i586-libmpfr
  • i586-libstdc++3.3
  • i586-libuuid
  • i586-libxcb

Дальше можно производить установку Oracle обычным образом. В процессе установки (линковки) возникнет ещё одна ошибка "

Error in invoking target 'collector' of makefile '$ORACLE_HOME/sysman/lib/ins_emdb.mk'. See log for details.

". Эту ошибку можно игнорировать, при попытке линковки nmccollector одновременно используются и 32-х и 64-х битные библиотеки. Вот что по этому поводу говорят знающие люди:

Tested installation on Fedora 8 x86_64. I've got the same error during linking of nmccollector.
In fact you don't need nmccollector as:
1) you are installing Oracle on non certified system for Oracle so it will be not probably in production
2) You can use "SQL Access" mode instead of "Memory Access" mode to check performance.

So you can ignore this error. If you apply patchset 10.2.0.3 or 10.2.0.4 then relink of nmccollector will be succesfull.

More about Memory Access Mode:
http://www.oracle.com/technology/pub/articles/10gdba/nanda_10gr2dba_part2.html
http://www.oracle.com/technology/pub/articles/10gdba/nanda_10gr2dba_part3.html
http://tonguc.wordpress.com/2007/08/20/memory-access-mode-of-oracle-enterprise-manager/

Источник: http://forums.oracle.com/forums/thread.jspa?messageID=2478830