Oracle 19c官方仅提供.rpm包,无Ubuntu原生.deb包,故apt无法直接安装;alien转换会跳过RPM预检脚本(如用户创建、内核参数设置),必须手动补全组/用户、sysctl、limits、32位依赖及DISPLAY配置,或改用Docker/VNC图形方式规避兼容性问题。
oracle 19c 官方不提供 ubuntu 原生 .deb 包,只发布 .rpm(面向 rhel/centos/ol)。在 ubuntu 上直接安装必须转换格式并补全缺失依赖——这不是“一键能跑”的流程,稍有疏漏就会卡在 libaio 版本、kernel.shmmax 或图形界面 display 报错上。
为什么不能直接用 apt 安装 Oracle 19c
Ubuntu 的包管理器 apt 无法识别 .rpm,而 Oracle 官方从未发布过 .deb 安装包。有人尝试 alien -i *.rpm 强转,但会跳过大量预检脚本(如 oracle-rdbms-server-19c-preinstall),导致后续 runInstaller 直接失败。关键点在于:alien 只转包结构,不执行 RPM 的 %pre/%post 阶段,而 Oracle 安装强依赖这些阶段创建用户、设置内核参数、校验 ulimit。
alien 转换 rpm 后必须手动补的 4 类配置
若坚持用 alien(例如已下载 LINUX.X64_193000_db_home.zip 并解压出 rpm 包),需立刻补做以下操作:
-
groupadd oinstall和groupadd dba;再useradd -g oinstall -G dba oracle,并设密码 - 手动写入
/etc/sysctl.conf:追加kernel.shmmax = 4294967296、kernel.shmall = 1073741824等至少 7 项,然后sudo sysctl -p -
echo "oracle soft nofile 65536" | sudo tee -a /etc/security/limits.conf—— 必须同时配hard和nproc,缺一不可 - Ubuntu 默认无
bc、ksh、libaio1:i386(32 位兼容库),需sudo apt install bc ksh libaio1 libaio-dev libaio1:i386
DISPLAY 图形报错:不是没装桌面,而是没授权
切换到 oracle 用户后运行 runInstaller 报 Can't connect to X11 window server,常见错误是只运行了 xhost +,却忘了 export DISPLAY=:0 或 export DISPLAY=$(grep -m 1 "localhost:" /tmp/.X11-unix/X* 2>/dev/null | cut -d' ' -f2)。更稳妥的做法是用 ssh -X 登录(需服务端 /etc/ssh/sshd_config 启用 X11Forwarding yes),避免本地桌面环境干扰。
比 alien 更稳的替代路径
对生产或长期使用场景,应放弃 alien 路线。推荐两条实际验证过的路径:
- 用 Docker:拉取阿里云镜像
registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c,挂载/opt/oracle/oradata到宿主机目录,启动即用,规避所有系统级依赖问题 - 用官方
runInstaller图形模式:在 Ubuntu 24.04 上装ubuntu-desktop+vnc4server,以oracle用户启动 VNC 会话,再在该会话中运行安装程序——这是 Oracle 文档隐含认可的方式,兼容性最可靠
真正容易被忽略的是:Oracle 19c 安装过程会硬检查 /etc/hosts 中 hostname 是否解析到非 127.0.1.1 的 IP,哪怕你用 localhost 连接也会失败。必须确保 hostname -i 输出的是真实网卡 IP,且该 IP 在 /etc/hosts 中有显式映射行。











