温馨提示×

Ubuntu装Informix要注意啥

小樊
32
2026-08-28 04:02:16
栏目: 智能运维

在Ubuntu上安装IBM Informix数据库,需要注意以下几个关键点,因为Informix官方主要支持RHEL、SUSE等企业级Linux发行版,在Ubuntu上安装属于非官方支持环境,可能会遇到依赖和兼容性问题。

以下是详细的注意事项和步骤指南:

1. 核心前提:确认版本与架构

  • 架构:确保是 x86_64 (64位) 架构。Informix 12.x 及以后版本基本不再支持32位。
  • 版本选择:建议选择较新的版本(如 Informix 14.1012.10)。老版本(如 11.70)在较新的Ubuntu内核上可能连启动都困难。
  • Ubuntu版本:尽量使用 Ubuntu LTS (长期支持版),如 20.04 或 22.04。非LTS版本内核更新太快,可能不兼容。

2. 依赖库问题(最常见坑点)

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 略有不同。建议安装 kshmksh
  • 32位兼容库:如果你的Informix是32位版本(极少见),还需要安装 libc6-i386 等。

3. 用户与组配置

Informix 强烈建议不要使用 root 用户运行,需要创建专用的用户和组。

sudo groupadd informix
sudo useradd -g informix -m -d /home/informix -s /bin/bash informix
sudo passwd informix  # 设置密码

4. 系统内核参数 (Kernel Parameters)

Informix 需要共享内存和信号量。Ubuntu 默认的内核参数通常足够开发测试,但生产环境建议调整。

  • 编辑 /etc/sysctl.conf
    kernel.shmmax = 4294967295  # 共享内存段最大大小 (示例值,4GB)
    kernel.shmall = 1048576     # 共享内存总页数
    kernel.sem = 250 32000 100 128 # 信号量
    
  • 执行 sudo sysctl -p 生效。

5. 安装步骤注意事项

  1. 获取安装包:从 IBM 官网下载 Linux x86_64 版本的 .tar 包(例如 ids_install 或 Bundle包)。
  2. 解压权限:解压后,确保安装脚本有执行权限。
    chmod +x ids_install
    
  3. 以 root 还是 informix 运行?
    • 如果是 RPM 包.rpm),Ubuntu 需要用 alien 转换,非常麻烦且容易出错,不推荐
    • 如果是 Tar 包Java 安装器 (ids_install):建议以 root 身份运行安装程序,以便它自动设置环境变量和权限;或者先以 root 解压,再 chown -R informix:informix 给目录赋权,最后以 informix 用户执行初始化。
  4. 安装路径:建议安装在 /opt/ibm/informix/home/informix。避免安装在有空格或特殊字符的路径下。

6. 环境变量配置

安装完成后,必须配置 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

7. 初始化实例 (初始化数据库)

这是最容易报错的一步。

  1. 复制配置文件模板:
    cp $INFORMIXDIR/etc/onconfig.std $INFORMIXDIR/etc/onconfig.demo_on
    
  2. 修改 onconfig.demo_on 中的关键参数(如 ROOTPATH 指向的数据空间路径,确保 informix 用户有权限读写)。
  3. 初始化:
    oninit -ivy
    
    • 如果报错,查看 $INFORMIXDIR/tmp 下的日志文件(通常是 online.log)。

8. Ubuntu 特有的坑

  • /bin/sh 指向 dash:Ubuntu 默认 /bin/shdash 而不是 bash。Informix 的某些脚本可能假设 /bin/shbash。建议在运行安装脚本前,临时修改或确保脚本头部指定了 #!/bin/bash
  • Systemd vs SysVinit:Informix 自带的开机启动脚本通常是 SysVinit 风格。在 Ubuntu 上,你可能需要手动编写 systemd 的 service 文件来管理 Informix 的启动和停止。

9. 防火墙

如果需要通过网络访问 Informix,记得开放端口(默认是 9088 或 sqlexec 服务名对应的端口,定义在 /etc/services 中)。

sudo ufw allow 9088/tcp

总结建议

如果你只是做开发测试,且不想折腾,建议:

  1. 使用 Docker。IBM 官方或社区有 Informix 的 Docker 镜像,在 Ubuntu 上跑 Docker 是最省事的方式。
  2. 如果必须物理安装,优先选择 Informix Developer Edition(免费版,限制CPU和内存,但功能全),安装包通常更友好。

一句话总结:注意依赖库(特别是 libncurses5ksh),不要用 root 跑数据库服务,环境变量一定要配准。

0