1. 项目概述
作为一名长期使用Ubuntu进行开发的工程师,我经常需要在新设备或虚拟机中配置开发环境。每次从头开始安装和优化系统都要花费大量时间,于是决定整理一份完整的Ubuntu 22.04安装与配置指南。这份指南不仅包含基础安装步骤,还涵盖了VMware虚拟机配置、系统性能优化以及开发环境搭建的全流程。
Ubuntu 22.04 LTS(Jammy Jellyfish)是Canonical在2022年4月发布的长期支持版本,将获得5年的官方支持。相比前代版本,它在性能、安全性和开发者工具方面都有显著改进。对于开发者而言,合理配置的Ubuntu系统可以成为高效的生产力工具。
提示:本指南同样适用于物理机安装,但会特别标注虚拟机环境下的注意事项。
2. 环境准备与安装
2.1 下载与验证系统镜像
首先从Ubuntu官网下载22.04 LTS镜像。推荐选择桌面版(Desktop image)而非服务器版,因为桌面版包含图形界面,更适合开发环境使用。下载完成后务必验证镜像完整性:
# 下载官方SHA256校验文件 wget https://releases.ubuntu.com/22.04/SHA256SUMS # 计算下载镜像的哈希值 sha256sum ubuntu-22.04.3-desktop-amd64.iso # 对比校验结果 grep ubuntu-22.04.3-desktop-amd64.iso SHA256SUMS | sha256sum --check2.2 VMware虚拟机配置
在VMware Workstation Pro中创建新虚拟机时,有几个关键配置需要注意:
硬件配置:
- 至少分配2核CPU(4核更佳)
- 内存建议4GB起步,运行大型IDE需8GB+
- 硬盘空间至少40GB(建议选择"立即分配所有磁盘空间"提升性能)
- 启用虚拟化引擎的"虚拟化Intel VT-x/EPT或AMD-V/RVI"选项
高级设置:
- 将虚拟磁盘类型设置为SCSI(推荐LSI Logic)
- 网络适配器选择NAT模式(便于主机-虚拟机通信)
- 在"选项"标签中启用"加速3D图形"
安装过程:
- 选择"安装Ubuntu"后,语言选English(避免后续开发中出现编码问题)
- 键盘布局保持默认English (US)
- 安装类型选择"最小安装"并勾选"安装时下载更新"
- 分区方案使用默认的LVM(便于后续磁盘管理)
注意:首次启动前,建议在VMware中设置虚拟机自动登录,方便后续操作。这可以通过编辑/etc/gdm3/custom.conf文件实现。
3. 系统基础优化
3.1 初始系统更新
安装完成后首先更新软件源并升级所有包:
sudo apt update && sudo apt upgrade -y sudo apt dist-upgrade -y sudo apt autoremove -y3.2 关键系统配置
- 修改swapiness值(对于8GB以上内存的机器):
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf sudo sysctl -p- 调整文件描述符限制(开发服务器必备):
echo '* soft nofile 65535' | sudo tee -a /etc/security/limits.conf echo '* hard nofile 65535' | sudo tee -a /etc/security/limits.conf- 禁用不必要的服务:
sudo systemctl disable bluetooth.service sudo systemctl disable avahi-daemon.service3.3 必备工具安装
安装开发基础工具包:
sudo apt install -y build-essential git curl wget htop net-tools tree unzip配置更高效的替代工具:
sudo apt install -y bat exa fd-find ripgrep echo "alias cat='bat --paging=never'" >> ~/.bashrc echo "alias ls='exa --group-directories-first --icons'" >> ~/.bashrc4. 开发环境配置
4.1 版本控制工具
- Git全局配置:
git config --global user.name "Your Name" git config --global user.email "your.email@example.com" git config --global core.editor "code --wait" git config --global pull.rebase true- Git别名设置(添加到~/.gitconfig):
[alias] co = checkout br = branch ci = commit st = status lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit4.2 Python开发环境
- 安装pyenv:
curl https://pyenv.run | bash- 添加到bashrc:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc source ~/.bashrc- 安装常用Python版本:
pyenv install 3.10.12 pyenv install 3.11.4 pyenv global 3.11.4- 配置pip:
pip install --upgrade pip pip install pipx pipx ensurepath4.3 Node.js环境
使用nvm管理Node版本:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash source ~/.bashrc nvm install --lts nvm use --lts4.4 Docker安装与配置
- 安装Docker CE:
sudo apt install -y ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin- 配置非root用户使用Docker:
sudo usermod -aG docker $USER newgrp docker- 配置Docker镜像加速(国内用户):
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://registry.docker-cn.com"] } EOF sudo systemctl restart docker5. 桌面环境优化
5.1 GNOME扩展安装
- 先安装扩展管理器:
sudo apt install -y gnome-shell-extensions gnome-tweaks chrome-gnome-shell- 推荐安装的扩展:
- Dash to Panel(任务栏优化)
- Arc Menu(开始菜单)
- Clipboard Indicator(剪贴板历史)
- CPU Power Manager(CPU性能调节)
5.2 终端优化
- 安装Zsh和Oh My Zsh:
sudo apt install -y zsh sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"- 推荐插件:
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting- 修改~/.zshrc配置:
plugins=(git zsh-autosuggestions zsh-syntax-highlighting) ZSH_THEME="agnoster"5.3 字体安装
- 安装编程字体:
sudo apt install -y fonts-firacode fonts-powerline- 下载并安装JetBrains Mono:
wget https://download.jetbrains.com/fonts/JetBrainsMono-2.242.zip unzip JetBrainsMono-2.242.zip -d ~/.fonts fc-cache -fv6. 性能调优与问题排查
6.1 虚拟机性能优化
- 安装VMware Tools增强功能:
sudo apt install -y open-vm-tools-desktop sudo reboot- 调整虚拟机内存分配策略:
echo "vm.dirty_ratio = 10" | sudo tee -a /etc/sysctl.conf echo "vm.dirty_background_ratio = 5" | sudo tee -a /etc/sysctl.conf sudo sysctl -p6.2 常见问题解决
- 分辨率问题:
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 vmhgfs-fuse .host:/ /mnt/hgfs -o subtype=vmhgfs-fuse,allow_other- 时钟不同步问题:
timedatectl set-local-rtc 0 sudo apt install ntpdate sudo ntpdate pool.ntp.org6.3 安全加固
- 配置UFW防火墙:
sudo ufw allow 22/tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable- 禁用root SSH登录:
sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config sudo systemctl restart sshd- 配置自动安全更新:
sudo apt install -y unattended-upgrades sudo dpkg-reconfigure -plow unattended-upgrades7. 开发工具安装
7.1 Visual Studio Code
- 官方仓库安装:
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg sudo install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/ sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list' sudo apt update sudo apt install -y code- 推荐扩展:
- Python
- ESLint
- Docker
- GitLens
- Remote - Containers
7.2 JetBrains工具
- 安装Toolbox App:
wget https://download.jetbrains.com/toolbox/jetbrains-toolbox-1.27.2.13801.tar.gz tar -xzf jetbrains-toolbox-*.tar.gz cd jetbrains-toolbox-*/ ./jetbrains-toolbox- 通过Toolbox安装:
- IntelliJ IDEA Ultimate
- PyCharm Professional
- WebStorm
7.3 数据库工具
- 安装DBeaver CE:
sudo snap install dbeaver-ce- 安装MySQL Workbench:
sudo apt install -y mysql-workbench- 安装TablePlus(可选):
sudo snap install tableplus8. 备份与恢复策略
8.1 Timeshift系统备份
- 安装配置:
sudo apt install -y timeshift- 首次配置建议:
- 选择RSYNC备份方式
- 备份位置选择外部存储或网络存储
- 包含所有系统文件
- 设置每日自动备份(保留最近5份)
8.2 开发环境备份
- 导出已安装的apt包列表:
apt-mark showmanual | sort > ~/apt_packages.txt- 备份dotfiles:
mkdir -p ~/dotfiles_backup cp -r ~/.bashrc ~/.zshrc ~/.gitconfig ~/.ssh ~/dotfiles_backup/- 导出VS Code扩展列表:
code --list-extensions > ~/vscode_extensions.txt8.3 快速恢复脚本
创建恢复脚本restore_env.sh:
#!/bin/bash # 恢复apt包 xargs sudo apt install -y < ~/apt_packages.txt # 恢复dotfiles cp -r ~/dotfiles_backup/.* ~/ # 恢复VS Code扩展 cat ~/vscode_extensions.txt | xargs -L 1 code --install-extension