4、Linux环境搭建:Linux操作系统选择(CentOS/Ubuntu)、必要软件包安装、环境变量配置、网络与存储设置
做工艺平台搭建,第一步就是选Linux系统。说实话,我见过不少新手在这上面栽跟头。选错了系统,后面装软件、配环境全是坑。今天我把这些年踩过的坑和经验,一次性说清楚。
4.1 操作系统选择:CentOS还是Ubuntu?
这个问题,我当年刚入行时也纠结过。后来在几个项目里来回切换,慢慢摸出了门道。
CentOS(现在推荐Rocky Linux / AlmaLinux)
- 企业级稳定性,适合生产环境
- 包管理用yum/dnf,软件版本偏保守
- 我在做半导体工艺仿真平台时,客户指定用CentOS 7,因为他们的EDA工具只认证了这个版本
Ubuntu LTS
- 社区活跃,软件包更新快
- 包管理用apt,对新手友好
- 我个人习惯在开发测试阶段用Ubuntu 20.04/22.04 LTS,等稳定了再迁移到RHEL系
我的建议:
- 如果是搭建正式工艺平台,选Rocky Linux 9.x(CentOS的替代品)
- 如果是学习或原型验证,Ubuntu 22.04 LTS更省心
- 千万别用CentOS 8了,已经停止维护,我吃过这个亏
小技巧: 选系统前,先查清楚你的EDA工具(比如Cadence、Synopsys)官方支持哪些发行版。我曾经因为没查,装完系统发现工具不兼容,白白浪费两天。
4.2 必要软件包安装
系统装好后,第一件事就是装基础软件包。嗯,这里要注意,不同发行版的包名可能不一样。
CentOS/Rocky Linux 安装命令:
# 更新系统
sudo dnf update -y
# 安装开发工具组
sudo dnf groupinstall "Development Tools" -y
# 安装常用库
sudo dnf install -y epel-release
sudo dnf install -y \
gcc gcc-c++ gfortran \
make cmake \
git wget curl \
openssl-devel \
readline-devel \
zlib-devel \
bzip2-devel \
libffi-devel \
ncurses-devel \
tcl tk \
libX11-devel libXext-devel libXft-devel \
mesa-libGL-devel \
python3 python3-devel \
java-11-openjdk java-11-openjdk-devel
Ubuntu 安装命令:
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装开发工具
sudo apt install -y build-essential
# 安装常用库
sudo apt install -y \
gcc g++ gfortran \
make cmake \
git wget curl \
libssl-dev \
libreadline-dev \
libz-dev \
libbz2-dev \
libffi-dev \
libncurses-dev \
tcl tk \
libx11-dev libxext-dev libxft-dev \
libgl1-mesa-dev \
python3 python3-dev python3-pip \
openjdk-11-jdk
避坑指南: 我曾经在装EDA工具时,发现缺少libXext.so.6这个库,结果工具直接崩溃。后来养成习惯,先把所有X11相关的开发库都装上,省得后面折腾。
4.3 环境变量配置
环境变量配置,说白了就是告诉系统「我的工具和库放在哪」。我习惯把配置写在 ~/.bashrc 或 ~/.bash_profile 里。
典型配置示例:
# 编辑配置文件
vim ~/.bashrc
# 添加以下内容
# ========== 工艺平台环境变量 ==========
export TOOLS_HOME=/opt/tools
export EDA_HOME=$TOOLS_HOME/eda
# 添加PATH
export PATH=$EDA_HOME/bin:$PATH
export PATH=$TOOLS_HOME/local/bin:$PATH
# 库路径
export LD_LIBRARY_PATH=$EDA_HOME/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$TOOLS_HOME/local/lib:$LD_LIBRARY_PATH
# Python环境
export PYTHONPATH=$TOOLS_HOME/python_packages:$PYTHONPATH
# 许可证设置(以Cadence为例)
export LM_LICENSE_FILE=5280@license-server:${LM_LICENSE_FILE}
# 使配置生效
source ~/.bashrc
重要提醒:
- 每次修改完环境变量,记得执行
source ~/.bashrc或重新登录 - 我习惯把环境变量按功能分组,用注释隔开,方便维护
- 不要把所有东西都塞进PATH,保持简洁
4.4 网络与存储设置
工艺平台对网络和存储的要求,比普通开发环境高不少。你想想看,一个工艺仿真跑下来,数据量动不动就几十GB。
网络配置要点:
- 静态IP:服务器必须用静态IP,不能DHCP。我见过有人用动态IP,结果许可证服务器一重启IP变了,所有客户端连不上
- 主机名解析:在
/etc/hosts里配好所有节点的主机名和IP - 防火墙:开放EDA工具需要的端口(比如Cadence用5280,Synopsys用27000)
# 配置静态IP(以Rocky Linux为例)
sudo nmcli con mod eth0 \
ipv4.addresses 192.168.1.100/24 \
ipv4.gateway 192.168.1.1 \
ipv4.dns 8.8.8.8 \
ipv4.method manual
sudo nmcli con up eth0
# 配置hosts
sudo vim /etc/hosts
192.168.1.100 server01
192.168.1.101 server02
存储设置要点:
- 分区规划:我建议至少分三个区——系统区(/,100GB)、数据区(/data,剩余空间)、交换分区(swap,等于内存大小)
- 文件系统:数据区用XFS或ext4,别用btrfs或zfs,兼容性更好
- 挂载点:把大容量存储挂载到
/data或/workspace
# 查看磁盘信息
lsblk
# 格式化并挂载数据盘(以/dev/sdb为例)
sudo mkfs.xfs /dev/sdb
sudo mkdir /data
sudo mount /dev/sdb /data
# 设置开机自动挂载
sudo vim /etc/fstab
/dev/sdb /data xfs defaults 0 0
我的经验: 存储这块,我建议用LVM(逻辑卷管理)。好处是以后扩容方便,不用重新分区。我在一个项目里,数据量从2TB涨到8TB,用LVM在线扩容,业务完全没中断。
4.5 知识体系总览
下面这张图,是我梳理的Linux环境搭建核心逻辑。你看一遍,心里就有谱了。
总结一下: Linux环境搭建就四步——选对系统、装好软件、配好环境、搞定网络存储。每一步都有坑,但按我上面说的来,基本不会出大问题。记住,生产环境求稳,测试环境求快。
公众号:蓝海资料掘金营,微信deep3321