1. 项目概述
作为一名长期使用Ubuntu进行开发的工程师,我经常需要在新设备或虚拟机上快速搭建完整的开发环境。Ubuntu 22.04 LTS作为长期支持版本,提供了稳定的基础系统,但默认安装后仍需要进行大量配置才能满足开发需求。本文将分享我在VMware虚拟机中安装和优化Ubuntu 22.04的完整流程,涵盖从虚拟机创建到开发环境配置的全过程。
这个方案特别适合以下场景:
- 需要在Windows系统上搭建Linux开发环境的前端/后端工程师
- 学习Linux系统但不想影响主机系统的初学者
- 需要快速重建开发环境的团队新成员
- 需要隔离测试环境的软件测试人员
2. 环境准备与虚拟机创建
2.1 VMware Workstation安装与配置
VMware Workstation Pro 17是目前最稳定的版本,建议从官网下载最新版。安装时注意以下关键点:
- 安装类型选择"自定义"而非"典型"
- 勾选"增强型键盘驱动程序"(对Linux支持更好)
- 安装完成后检查BIOS中虚拟化技术是否开启(Intel VT-x/AMD-V)
提示:如果主机是AMD处理器,建议在BIOS中关闭SVM Mode(安全虚拟机模式),可以避免一些兼容性问题。
2.2 创建Ubuntu虚拟机
新建虚拟机时采用以下配置方案:
- 选择"自定义(高级)"配置
- 硬件兼容性选择"Workstation 17.x"
- 操作系统选择"Linux"-"Ubuntu 64位"
- 处理器配置:2核(开发用建议4核)
- 内存分配:4GB起步(开发环境建议8GB)
- 网络类型:NAT(最方便的上网方式)
- 磁盘类型:SCSI(推荐LSI Logic)
- 虚拟磁盘大小:至少50GB(建议100GB)
- 磁盘存储方式:单个文件(性能更好)
关键技巧:在"自定义硬件"中:
- 移除不必要的设备(如声卡、打印机)
- 显存设置为2GB(方便后续GUI操作)
- 开启"虚拟化CPU性能计数器"
3. Ubuntu 22.04系统安装
3.1 安装过程详解
- 下载Ubuntu 22.04 LTS镜像(建议从官网获取)
- 启动虚拟机并加载ISO镜像
- 语言选择English(避免后续终端乱码)
- 安装类型选择"Minimal installation"(减少不必要的软件)
- 分区方案:
- EFI分区:512MB
- swap分区:内存的1.5倍(8GB内存配12GB swap)
- /分区:剩余全部空间(ext4格式)
- 时区设置为上海(即使不在国内也建议保持统一)
- 用户名设置全小写英文(避免后续开发环境问题)
重要:安装完成后立即执行
sudo apt update && sudo apt upgrade -y更新系统
3.2 初始系统配置
- 安装VMware Tools(增强功能):
sudo apt install open-vm-tools-desktop -y sudo reboot - 配置终端:
sudo apt install zsh -y chsh -s $(which zsh) sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" - 基础工具安装:
sudo apt install git curl wget build-essential -y
4. 系统深度优化
4.1 性能调优
- 修改swappiness值(减少swap使用):
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf sudo sysctl -p - 调整文件系统缓存:
echo 'vm.vfs_cache_pressure=50' | sudo tee -a /etc/sysctl.conf - 禁用不必要的服务:
sudo systemctl disable bluetooth.service sudo systemctl disable ModemManager.service
4.2 开发环境基础配置
- 修改软件源(国内用户建议):
sudo sed -i 's|http://.*archive.ubuntu.com|https://mirrors.aliyun.com|g' /etc/apt/sources.list sudo sed -i 's|http://.*security.ubuntu.com|https://mirrors.aliyun.com|g' /etc/apt/sources.list - 安装常用开发库:
sudo apt install libssl-dev zlib1g-dev libbz2-dev \ libreadline-dev libsqlite3-dev llvm libncurses5-dev \ libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev -y
5. 开发环境搭建
5.1 Python开发环境
- 安装pyenv:
在.zshrc中添加:curl https://pyenv.run | bashexport PATH="$HOME/.pyenv/bin:$PATH" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" - 安装Python 3.10:
pyenv install 3.10.6 pyenv global 3.10.6 - 配置pip:
pip install --upgrade pip pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
5.2 Java开发环境
- 安装OpenJDK 11:
sudo apt install openjdk-11-jdk -y - 配置环境变量:
echo 'export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64' >> ~/.zshrc echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.zshrc - 安装Maven:
sudo apt install maven -y
5.3 Node.js环境
- 安装nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash - 安装Node LTS:
nvm install --lts nvm use --lts - 配置npm源:
npm config set registry https://registry.npmmirror.com
6. 开发工具安装
6.1 Visual Studio Code
- 通过官方deb包安装:
wget -O vscode.deb https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64 sudo dpkg -i vscode.deb - 安装常用扩展:
code --install-extension ms-python.python code --install-extension vscjava.vscode-java-pack code --install-extension dbaeumer.vscode-eslint
6.2 Docker环境
- 安装Docker CE:
sudo apt install docker.io -y sudo systemctl enable --now docker - 配置用户组:
sudo usermod -aG docker $USER - 配置镜像加速:
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://your-mirror.mirror.aliyuncs.com"] } EOF sudo systemctl restart docker
7. 常见问题解决
VMware分辨率问题:
xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync xrandr --addmode Virtual1 "1920x1080_60.00" xrandr --output Virtual1 --mode "1920x1080_60.00"中文输入法安装:
sudo apt install fcitx5 fcitx5-chinese-addons -y然后在设置中添加拼音输入法
共享文件夹配置:
sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid=1000
8. 系统备份与恢复
创建虚拟机快照(推荐在完成所有配置后)
使用Timeshift进行系统备份:
sudo apt install timeshift -y配置为BTRFS模式(如果使用BTRFS文件系统)
导出开发环境配置:
pip freeze > requirements.txt npm list -g --depth=0 > npm_global.txt
这套环境配置方案经过我在多个项目中的实际验证,特别适合需要快速搭建标准化开发环境的团队。根据具体项目需求,可以在此基础上添加特定语言的开发环境(如Go、Rust等)。建议将关键配置脚本化,方便在新环境中快速部署。