个人工具

UbuntuHelp:HowToBuildToraWithOracle

来自Ubuntu中文

跳转至: 导航, 搜索

Installing Tora with Oracle Support

The "tora" database client package in Feisty Fawn comes with Postgres support, and MySQL if you have the libraries. This How-To shows you how to build Oracle Instantclient 10g support into tora. This is client only. You will not install the whole Oracle database. BTW, if you don't have time to build the whole thing, here is the .deb package I built using this How-To. It's x386 only, and you'll need to have instantclient installed before you can use it. attachment:tora_1.3.22-5_i386.deb is an updated .deb package for instantclient 11.1.0.1 and tora 1.3.22. attachment:tora_1.3.23-1_amd64.deb is an updated .deb package for 64-bit instantclient 11.1.0.7.0 and tora 1.3.23

First Step: Install Oracle Instantclient

  • Download the Oracle Instantclient files from here [1]. You will need "oracle-instantclient-basiclite-11.1.0.1-1.i386.rpm", "oracle-instantclient-sqlplus-11.1.0.1-1.i386.rpm", and "oracle-instantclient-devel-11.1.0.1-1.i386.rpm".
  • 64-bit Oracle Instantclient files are here [2].
  • Convert these .rpm files into .deb packages and install using "alien" ("sudo apt-get install alien" if you don't have it):
alien -i oracle-instantclient-basiclite-11.1.0.1-1.i386.rpm
alien -i oracle-instantclient-sqlplus-11.1.0.1-1.i386.rpm
alien -i oracle-instantclient-devel-11.1.0.1-1.i386.rpm
  • Test your Instantclient install by using "sqlplus" to connect to your database:
sqlplus  username/password@//dbhost:1521/SID

If sqlplus complains of a missing libsqlplus.so file, jump down to the "Make Ubuntu recognize the Oracle libraries" step below so ldconf will know where to look. If sqlplus complains of a missing libaio.so.1 file, run "sudo apt-get install libaio1". If all is well, move on to compiling "tora"

Second Step: Build Tora

  • Install some required libraries:
apt-get install build-essential g++ gcc autoconf automake flex zlib1g-dev docbook-xsl
apt-get install libqt3-mt-dev libqt3-compat-headers libqscintilla-dev
apt-get install debhelper dpatch texinfo
  • Make Ubuntu recognize the Oracle libraries. Create a new file as follows:
sudo vi /etc/ld.so.conf.d/oracle.conf

and add this line:

/usr/lib/oracle/11.1.0.1/client/lib

then do:

sudo ldconfig

You can also just add the above line to the LD_LIBRARY_PATH environment variable instead of the above.

  • Download the tora source code:
sudo apt-get source tora
  • Edit some build lines for Instantclient:
cd /usr/src/tora-1.3.21
sudo vi debian/rules

change the line:

./configure --prefix=/usr --without-oracle --without-rpath --disable-new-check --with-kde --enable-libsuffix=

to look like this:

./configure --prefix=/usr --with-instantclient --with-oracle-includes=/usr/include/oracle/11.1.0.1/client --without-kde --without-rpath --disable-new-check --enable-libsuffix=
  • Now you're ready to build. First become root:
sudo -i
  • Then set ORACLE_HOME to point to the appropriate place (you should also set this in your .bash_profile:
export ORACLE_HOME=/usr/lib/oracle/11.1.0.1/client
  • Then build:
cd /usr/src/tora-1.3.21
debian/rules binary

If all goes well, after a "'long'" time, you should end up with a file in /usr/src called "tora_1.3.21-3ubuntu1_i386.deb". You can install it like this:

dpkg -i tora_1.3.21-3ubuntu1_i386.deb

If dpkg gives an error like so:

 tora depends on libqt3-mt-psql | libqt3-mt-odbc | libqt3-mt-mysql; however:
  Package libqt3-mt-psql is not installed.
  Package libqt3-mt-odbc is not installed.
  Package libqt3-mt-mysql is not installed.

you can have apt fix its dependencies like so (afterwhich running the above dpkg -i command again should work):

apt-get -f install

Step Three: Using Tora to connect to an Oracle database

  • Start "tora".
  • In the connect box make sure the connection provide says "Oracle. Then enter an Instantclient connect string in the boxes. Put "username" and "password" in the appropriate places. Then put the string //dbhost:<portno>/SID in the "Database" box. Here is a picture.

This How-To owes thanks to this page from Ben Pinter; this|page, which was a bit outdated; and this entry on Ubuntuforums.