在Ubuntu上安装IBM Informix数据库,需要注意以下几个关键点,因为Informix官方主要支持RHEL、SUSE等企业级Linux发行版,在Ubuntu上安装属于非官方支持环境,可能会遇到依赖和兼容性问题。
以下是详细的注意事项和步骤指南:
Informix依赖一些较老的库(如 libaio, libncurses, libstdc++ 等),而Ubuntu默认可能不安装这些,或者版本太新。
sudo apt-get update
sudo apt-get install -y libaio1 libncurses5 libstdc++6 libgcc-s1 ksh
ksh (Korn Shell):Informix 的很多脚本(特别是安装脚本)依赖 ksh。Ubuntu 默认可能没有,或者 ksh 的行为与 pdksh 略有不同。建议安装 ksh 或 mksh。libc6-i386 等。Informix 强烈建议不要使用 root 用户运行,需要创建专用的用户和组。
sudo groupadd informix
sudo useradd -g informix -m -d /home/informix -s /bin/bash informix
sudo passwd informix # 设置密码
Informix 需要共享内存和信号量。Ubuntu 默认的内核参数通常足够开发测试,但生产环境建议调整。
/etc/sysctl.conf:kernel.shmmax = 4294967295 # 共享内存段最大大小 (示例值,4GB)
kernel.shmall = 1048576 # 共享内存总页数
kernel.sem = 250 32000 100 128 # 信号量
sudo sysctl -p 生效。.tar 包(例如 ids_install 或 Bundle包)。chmod +x ids_install
.rpm),Ubuntu 需要用 alien 转换,非常麻烦且容易出错,不推荐。ids_install):建议以 root 身份运行安装程序,以便它自动设置环境变量和权限;或者先以 root 解压,再 chown -R informix:informix 给目录赋权,最后以 informix 用户执行初始化。/opt/ibm/informix 或 /home/informix。避免安装在有空格或特殊字符的路径下。安装完成后,必须配置 informix 用户的环境变量。编辑 /home/informix/.bashrc 或 /home/informix/.profile:
export INFORMIXDIR=/opt/ibm/informix # 改成你的实际安装路径
export INFORMIXSERVER=demo_on # 你的实例名
export ONCONFIG=onconfig.demo_on # 你的配置文件名
export PATH=$INFORMIXDIR/bin:$PATH
export LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql:$LD_LIBRARY_PATH
注意:修改后执行 source ~/.bashrc。
这是最容易报错的一步。
cp $INFORMIXDIR/etc/onconfig.std $INFORMIXDIR/etc/onconfig.demo_on
onconfig.demo_on 中的关键参数(如 ROOTPATH 指向的数据空间路径,确保 informix 用户有权限读写)。oninit -ivy
$INFORMIXDIR/tmp 下的日志文件(通常是 online.log)。/bin/sh 指向 dash:Ubuntu 默认 /bin/sh 是 dash 而不是 bash。Informix 的某些脚本可能假设 /bin/sh 是 bash。建议在运行安装脚本前,临时修改或确保脚本头部指定了 #!/bin/bash。如果需要通过网络访问 Informix,记得开放端口(默认是 9088 或 sqlexec 服务名对应的端口,定义在 /etc/services 中)。
sudo ufw allow 9088/tcp
如果你只是做开发测试,且不想折腾,建议:
一句话总结:注意依赖库(特别是 libncurses5 和 ksh),不要用 root 跑数据库服务,环境变量一定要配准。