在CentOS 6.5上搞定Cadence INNOVUS 15.20:一份避坑无数的保姆级环境配置清单
如果你正在CentOS 6.5上部署Cadence INNOVUS 15.20,那么恭喜你选择了一条充满挑战的道路。这个组合就像让一辆老爷车跑出F1的速度——不是不可能,但需要极其精细的调校。本文将带你穿越依赖包的地雷阵、权限设置的迷宫和系统配置的暗礁区,最终抵达一个稳定可用的EDA环境。
1. 系统环境准备:打好地基
在开始安装之前,我们需要确保系统环境足够健壮。CentOS 6.5虽然稳定,但它的软件仓库已经相当陈旧,这会给后续的依赖解决带来不少麻烦。
1.1 配置可靠的yum源
由于官方源已经停止维护,我们需要配置替代源:
# 备份原有repo文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak # 使用vault源 wget -O /etc/yum.repos.d/CentOS-Base.repo https://vault.centos.org/6.5/os/x86_64/CentOS-Base.repo # 添加EPEL源 rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm # 清理并重建缓存 yum clean all yum makecache1.2 基础依赖安装
以下命令将安装INNOVUS所需的核心库文件:
yum groupinstall -y "Development Tools" yum install -y ksh csh libXp libXext libXtst libXt libGLU libelf libXrender \ libXrandr openmotif compat-libstdc++-33 glibc-devel注意:如果遇到
Protected multilib错误,可以添加--setopt=protected_multilib=false参数。
2. 解决依赖地狱:那些年我们踩过的坑
2.1 缺失库文件的替代方案
CentOS 6.5的仓库中有些包已经不可用,我们需要手动解决:
| 缺失包 | 解决方案 | 备注 |
|---|---|---|
| alliance-libs | 从CentOS 7源下载rpm手动安装 | 需解决依赖链 |
| libstdc++.so.5 | 安装compat-libstdc++-33 | 32位和64位都要装 |
| libreadline.so.5 | 创建符号链接 | 见下文 |
创建必要的符号链接:
# 解决libstdc++兼容性问题 ln -s /usr/lib/libstdc++.so.6 /usr/lib/libstdc++.so.5 # 处理readline版本问题 cd /lib64 ln -s libreadline.so.6 libreadline.so.5 cd /usr/lib64 ln -s libhistory.so.6 libhistory.so.52.2 字体配置技巧
EDA工具对字体要求严格,以下配置可以避免界面显示异常:
yum install -y xorg-x11-fonts-* fc-cache -fv如果仍然遇到字体问题,可以尝试:
- 从Windows系统复制simsun.ttc到/usr/share/fonts/
- 执行
mkfontscale && mkfontdir - 修改/etc/fonts/fonts.conf添加新字体路径
3. 系统调优:让老系统焕发新生
3.1 内核参数调整
在/etc/sysctl.conf中添加以下内容:
# 增加系统最大文件打开数 fs.file-max = 65536 # 优化内存管理 vm.swappiness = 10 vm.dirty_ratio = 40 vm.dirty_background_ratio = 10 # 网络相关优化 net.ipv4.tcp_fin_timeout = 30 net.core.somaxconn = 1024应用配置:sysctl -p
3.2 用户环境配置
创建专用用户并设置环境变量:
useradd -m -s /bin/csh eda_user passwd eda_user在~/.cshrc中添加:
setenv CDS_ROOT /eda/cds setenv OA_HOME $CDS_ROOT/oa_v22.50.028 setenv PATH $CDS_ROOT/INNOVUS15.20/bin:$PATH # 许可证设置 setenv LM_LICENSE_FILE 27000@localhost4. 安装后的关键检查点
完成安装后,执行以下验证步骤:
库依赖检查
ldd /eda/cds/INNOVUS15.20/bin/innovus | grep "not found"许可证测试
lmstat -c $LM_LICENSE_FILE图形界面验证
xclock & # 测试X11转发 /eda/cds/INNOVUS15.20/bin/innovus -small
常见问题解决方案:
- 如果启动时报GLX错误,尝试
export LIBGL_ALWAYS_INDIRECT=1 - 遇到字体问题,检查
xlsfonts | grep ISO输出 - 许可证失效时,检查主机名是否与hosts文件一致
5. 性能优化技巧
为了让INNOVUS在老旧硬件上运行更流畅:
内存管理:
# 增加swap空间 dd if=/dev/zero of=/swapfile bs=1M count=4096 mkswap /swapfile swapon /swapfile磁盘IO优化:
- 使用noatime挂载选项
- 考虑将工作目录放在tmpfs上
启动参数调整:
innovus -64 -m 2048 -d 512 -small其中:
-m设置Java堆大小(MB)-d设置数据库缓存大小(MB)-small使用精简界面
6. 自动化维护脚本
创建一个维护脚本/usr/local/bin/eda_maintain.sh:
#!/bin/bash # 清理临时文件 find /tmp -name "cadence*" -mtime +7 -exec rm -rf {} \; # 检查许可证状态 license_status=$(lmstat -c $LM_LICENSE_FILE | grep "UP") if [ -z "$license_status" ]; then systemctl restart lmgrd fi # 检查磁盘空间 df -h /eda | awk 'NR==2 {if ($5 > 90) print "Warning: EDA partition is over 90% full"}'设置定时任务:
(crontab -l 2>/dev/null; echo "0 3 * * * /usr/local/bin/eda_maintain.sh") | crontab -