其实Oracle官方是一直不支持debian的,但是最近一个需求是在 一个中间跳板机上安装sqlplus ,让一些开发同事能在跳板机上查询数据库。这个跳板机是debian的。
可能的方法有2种:
1. rpm包类型。 下载rpm ,转成deb
2. 下载gzip的客户端包,用静默方式去安装,需要模板文件,这个没试过。
下面就讲下第一种方式:
1.准备4个rpm (至于真正需要是2个还是4个,有待考证)。basic和sqlplus是必须的。包可以去oracle官网下载。
oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm
oracle-instantclient11.2-jdbc-11.2.0.4.0-1.x86_64.rpm
oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm
2.在debian机器上安装上alien
3.用alien把rpm包转成debian系统能用的 deb包
alien oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
alien oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm
alien oracle-instantclient11.2-jdbc-11.2.0.4.0-1.x86_64.rpm
alien oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm
生成如下,注意后面自动变成了-2
oracle-instantclient11.2-basic_11.2.0.4.0-2_amd64.deb
oracle-instantclient11.2-devel_11.2.0.4.0-2_amd64.deb
oracle-instantclient11.2-jdbc_11.2.0.4.0-2_amd64.deb
oracle-instantclient11.2-sqlplus_11.2.0.4.0-2_amd64.deb
4.安装deb包
dpkg -i oracle-instantclient11.2-basic_11.2.0.4.0-2_amd64.deb
之后这些东西都会默认安装在 /usr/lib/oracle/11.2/client64/下。
5.中间跳板机一般用的都是普通用户,所以要设置普通用户下的环境变量,让它能找到我们新安装的sqlplus。
vi ~/.bash_profile (普通用户的家目录)
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export TNS_ADMIN=$ORACLE_HOME
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
source ~/.bash_profile 使之生效。
6.一般这个时候sqlplus就可以通过补齐显示出来了,但是都会报一个错,
就是缺少libaio包。sqlplus还是无法正常使用,那我们把这个包安装上。
# apt-cache search libaio
libaio1 - Linux kernel AIO access library - shared library
libaio-dev - Linux kernel AIO access library - development files
apt-get install libaio1 libaio-dev
之后正常使用。
7.如果不配置tnsnames.ora 文件,可以直接通过指定ip和端口的方式连接数据库
sqlplus username/password@192.168.2.181:1521/sid
如果配置的话,在这个目录下 ORACLE_HOME=/usr/lib/oracle/11.2/client64
vi tnsnames.ora
HAHA =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.3)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = haha)
)
)
之后就可以 sqlplus username/password@haha 了。