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环境搭建知识体系 操作系统选择 软件包安装 环境变量配置 网络与存储设置 CentOS/Rocky Linux Ubuntu LTS 开发工具组 依赖库安装 PATH/LD_LIBRARY_PATH 许可证/工具路径 静态IP / 防火墙 分区 / 挂载 / LVM 四个核心步骤,按顺序执行,缺一不可

总结一下: Linux环境搭建就四步——选对系统、装好软件、配好环境、搞定网络存储。每一步都有坑,但按我上面说的来,基本不会出大问题。记住,生产环境求稳,测试环境求快。


公众号:蓝海资料掘金营,微信deep3321