Компиляция TOra в Debian
TOra - расшифровывается как "Toolkit For Oracle" и представляет из себя IDE для таких СУБД как Oracle, MySQL, PostgreSQL. На данный момент является одной из трех полноценных Oracle IDE под Linux (остальные две - это "SQL Developer" от Oracle и "Aqua Data Studio" от AquaFold). Концептуальное отличие - язык программирования исходного кода: "SQL Developer", "Aqua Data Studio" - Java, "TOra" - C++.
На днях пришлось собирать ее из исходных кодов, так как по лицензионным причинам, в стандартной сборке TOra из репозитария Debian GNU/Linux не включена поддержка Oracle.
Все работы велись в Debian Lenny: $ uname -a
Linux Debian4Test 2.6.22-3-686 #1 SMP Mon Nov 12 08:32:57 UTC 2007 i686 GNU/Linux
Версия TOra:
$ ls -l /usr/src/tora-1.3.22/
-rw-r--r-- 1 root src 3496227 2008-01-15 18:19 tora-1.3.22.tar.gz
Итак... поехали...
- Получение Oracle Instant Client Скачиваем следующие пакеты:
- oracle-instantclient-basiclite_10.2.0.3-2_i386.deb
- oracle-instantclient-devel_10.2.0.3-2_i386.deb
- oracle-instantclient-sqlplus_10.2.0.3-2_i386.deb
- Установка Oracle Instant Client
- Создание файла TNSNAMES.ORA Создаем файл /usr/lib/oracle/tnsnames.ora и заполняем его необходимыми данными для соединения с экземплярами БД Oracle.
- Настройка кэша динамических библиотек В файл /etc/ld.so.conf добавляем следующую строку:
- Настройка переменных окружения Добавляем следующие строки в файл /etc/profile:
- Получение и распаковка исходных кодов TOra Исходный код можно загрузить с оф. сайта:
- Подготовка к пересборке TOra Устанавливаем необходимые модули:
- Сборка TOra Переходим в директорию с исходным кодом и выполняем конфигурацию:
- Запуск TOra Проверяем, где располагается TOra:
Или, как вариант, можно скачать соответствующие *.rpm пакеты с сайта Oracle и с помощью утилиты "alien" преобразовать их в *.deb.
$ sudo dpkg -i oracle-instantclient-basic_10.2.0.3-2_i386.deb
$ sudo dpkg -i oracle-instantclient-devel_10.2.0.3-2_i386.deb
$ sudo dpkg -i oracle-instantclient-sqlplus_10.2.0.3-2_i386.deb
Проверяем, куда был установлен клиент Oracle:
$ whereis oracle
oracle: /usr/lib/oracle /usr/include/oracle /usr/share/oracle
/usr/lib/oracle/10.2.0.3/client/lib
После чего перегружаем кэш:
$ sudo ldconfig
LD_LIBRARY_PATH=/usr/lib/oracle/10.2.0.3/client/lib:$LD_LIBRARY_PATH
TNS_ADMIN=/usr/lib/oracle
export LD_LIBRARY_PATH TNS_ADMIN
$ sudo mkdir /usr/src/tora
$ cd /usr/src/tora
$ wget http://switch.dl.sourceforge.net/sourceforge/tora/tora-1.3.22.tar.gz
$ sudo tar zxvf tora-1.3.22.tar.gz
$ sudo aptitude install g++ gcc autoconf automake flex zlib1g-dev docbook-xsl
$ sudo aptitude install libqt3-mt-dev libqt3-compat-headers
$ cd /usr/src/tora/tora-1.3.22/
$ ./configure --with-oracle=$ORACLE_HOME --with-oci-version=10G CC=gcc-4.2 --without-kde --with-xinerama
В результате последней операции получаем сообщение об ошибке:
...
checking whether uic supports -nounload ... yes
checking if STL implementation is SGI like... yes
checking for oracle... checking oci works... yes
checking for qscintilla... configure: error: Couldn't compile a simple QScintilla application. See config.log or specify its location with --with-qscintilla-includes
make: *** [configure-stamp] Ошибка 1
То есть, в системе не оказалось пакета "libqscintilla-dev". Скачиваем его и повторяем попытки компиляции:
$ wget http://ftp.pl.debian.org/debian/pool/main/q/qscintilla/libqscintilla-dev_1.7.1-2_all.deb
$ sudo dpkg -i libqscintilla-dev_1.7.1-2_all.deb
$ ./configure --with-oracle=$ORACLE_HOME --with-oci-version=10G CC=gcc-2.95 --without-kde --with-xinerama
$ make
$ sudo make install
На этот раз ошибок не появилось.
$ whereis tora
tora: /usr/bin/tora /usr/lib/tora /usr/local/tora /usr/share/tora /usr/share/man/man1/tora.1.gz
Запускаем IDE:
/usr/bin/tora
Подробнее...