在 CentOS 上安装 IBM Informix 失败 是比较常见的问题,通常与 系统环境、依赖、权限、内核参数、SELinux、用户配置 等有关。下面我按 排查思路 + 常见错误 + 解决方案 给你一个完整指南。
cat /etc/centos-release
✅ 推荐版本
⚠️ 确认是 x86_64
uname -m
常见版本:
⚠️ 32 位 Informix 不能装在 64 位系统(除非做兼容)
groupadd informix
useradd -g informix informix
passwd informix
编辑 ~/.bash_profile:
export INFORMIXDIR=/opt/informix
export INFORMIXSERVER=ol_informix
export PATH=$INFORMIXDIR/bin:$PATH
export LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql:$LD_LIBRARY_PATH
生效:
source ~/.bash_profile
yum install -y \
glibc \
libgcc \
libstdc++ \
ncurses \
pam \
ksh \
bc \
file \
unzip
dnf install -y \
glibc \
libgcc \
libstdc++ \
ncurses \
pam \
ksh \
bc \
file \
unzip
⚠️ 缺少 ksh / ncurses 是常见报错原因
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
systemctl stop firewalld
systemctl disable firewalld
not a valid binary / cannot execute✅ 原因:
ld-linux.so✅ 解决:
yum install -y glibc.i686
Full Disk / Permission denied✅ 解决方法:
chown -R informix:informix /opt/informix
chmod -R 755 /opt/informix
✅ 确保磁盘空间 > 2GB
df -h
✅ 通常是 主机名解析问题
hostname
cat /etc/hosts
✅ 必须包含:
127.0.0.1 localhost
127.0.0.1 your_hostname
shared memory error✅ 检查内核参数 /etc/sysctl.conf:
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
生效:
sysctl -p
ROOTPATH does not exist✅ onconfig 中的 ROOTPATH 必须存在:
touch /opt/informix/data/rootdbs
chmod 660 /opt/informix/data/rootdbs
chown informix:informix /opt/informix/data/rootdbs
$INFORMIXDIR/tmp
$INFORMIXDIR/online.log
/var/log/messages
✅ informix 用户存在
✅ INFORMIXDIR 设置正确
✅ 依赖已安装
✅ SELinux 已关闭
✅ 主机名可解析
✅ 磁盘空间充足
✅ rootdbs 存在且权限正确
你可以把 具体报错信息 发给我,例如:
oninit -ivy 输出online.log 内容-271、25507)我可以直接告诉你 是哪一步、为什么会失败、怎么改 ✅
如果你是在做 生产环境 / 测试环境 / Docker,也可以告诉我,我可以给你一套 完整可运行方案。