三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

2024年为何仍推荐在虚拟机安装Ubuntu 20.04 LTS?新手避坑指南

2024年为何仍推荐在虚拟机安装Ubuntu 20.04 LTS?新手避坑指南

1. 为什么在VM里装Ubuntu 20.04 LTS依然是个好选择

最近帮几个刚入行的朋友搭开发环境,发现他们还在纠结选哪个Linux发行版和版本。我直接建议:别想太多,先在虚拟机里装个Ubuntu 20.04 LTS。这话一说,有人就问了:“这都2024年了,Ubuntu都出到24.04了,为啥还推荐一个四年前的‘老’版本?” 这问题问得好,也恰恰点出了很多新手甚至一些老手在环境搭建第一步就容易踩的坑——盲目追新。

Ubuntu 20.04 LTS,代号Focal Fossa,发布于2020年4月。LTS代表“长期支持”,官方提供长达5年的标准支持(直到2025年4月),对于企业用户还可以购买扩展安全维护。这意味着什么?意味着它的核心系统、软件仓库在2025年之前都会持续收到安全更新和关键Bug修复,系统基石是稳固的。对于学习、开发、甚至是轻度生产环境来说,稳定性远比拥有几个花哨的新特性重要。你肯定不希望正在调试一个复杂的项目时,系统自动更新了一个不兼容的库,导致环境崩掉。

其次,生态兼容性无敌。经过四年的沉淀,几乎所有主流软件、开发工具、第三方库都对Ubuntu 20.04提供了近乎完美的支持。无论是Docker、Kubernetes、各种编程语言环境(Python、Node.js、Go、Java),还是像VS Code、IntelliJ IDEA这类IDE,你都能找到大量现成的、经过验证的安装教程和配置方案。社区里你遇到的99%的问题,几乎都能搜到针对20.04的解决方案。而新版本(如22.04、24.04)虽然也兼容大部分软件,但偶尔会遇到一些依赖库版本冲突、驱动不完善等“先锋队”才会遇到的问题。对于初学者,一个“踩坑少、资料多”的环境,能让你把精力集中在学习核心内容上,而不是和系统环境搏斗。

最后,从虚拟机(VM)实践的角度来看,Ubuntu 20.04 LTS对硬件资源的要求相对温和,在虚拟机里跑起来更流畅。你的宿主机可能是Windows或macOS,分配给虚拟机的内存和CPU资源有限。一个更成熟、优化更好的系统版本,在有限的虚拟资源下,往往能提供更稳定和跟手的体验。所以,无论你是想学习Linux命令、搭建Web服务器、进行软件开发,还是单纯想有一个隔离的沙盒环境做实验,在VM里安装Ubuntu 20.04 LTS都是一个非常稳妥且高效的起点。

2. 虚拟机软件选型与宿主机准备要点

工欲善其事,必先利其器。在下载Ubuntu镜像之前,得先把“房子”(虚拟机软件)准备好。目前主流的选择有三个:VMware Workstation Player(个人版免费)、VirtualBox(完全免费开源)和Hyper-V(Windows专业版/企业版自带)。我的建议是,如果你是Windows用户且系统是专业版以上,可以优先考虑Hyper-V;否则,VMware Workstation Player是更省心的选择。

为什么这么选?VirtualBox虽然免费,但在性能和与宿主机(特别是Windows 11/10最新版)的兼容性上,有时会出一些幺蛾子,比如USB设备识别、显卡加速、文件拖拽等方面的问题可能需要额外折腾。对于新手,我们不希望把时间浪费在解决虚拟机软件本身的问题上。VMware Workstation Player在易用性和性能上做得更均衡,安装过程简单,对Ubuntu的“开箱即用”支持非常好,提供了完善的VMware Tools(增强功能包),能无缝实现宿主机和虚拟机之间的文件共享、剪贴板共享、屏幕自适应调整。它的个人免费版对于学习和开发完全够用。

如果你使用的是Windows 10/11专业版、企业版或教育版,那么内置的Hyper-V是一个强大的替代方案。它是Type-1类型的裸机虚拟化,性能理论上更优,资源开销更小。启用方法也简单:打开“控制面板” -> “程序” -> “启用或关闭Windows功能”,勾选“Hyper-V”包括管理工具,重启即可。之后你就可以在开始菜单找到“Hyper-V管理器”了。不过要注意,开启Hyper-V后,你的Windows本身也会运行在Hyper-V虚拟化层之上,这可能会导致一些传统的虚拟机软件(如VMware、VirtualBox)无法以硬件加速模式运行,或者与某些依赖VT-x/AMD-V的软件(如某些安卓模拟器)冲突。如果你电脑上还有其他这类软件,就需要权衡一下。

对于macOS用户,主流选择是VMware Fusion Player(个人免费)或开源的UTM。Parallels Desktop虽然体验极佳,但它是收费的。新手用VMware Fusion Player足以。

在安装虚拟机软件前,务必进入你电脑的BIOS/UEFI设置,确认并开启CPU的虚拟化技术(Intel VT-x 或 AMD-V)。这个选项通常在“Advanced”或“CPU Configuration”菜单里,名称可能是“Intel Virtualization Technology”、“VT-d”、“AMD SVM”等。这是虚拟机能够高效运行的基础,没开启的话后续安装会报错或性能极差。

最后,为你的Ubuntu虚拟机规划好“住处”。建议在SSD硬盘上预留至少25GB的可用空间(这是安装系统本身的最小建议,如果你想在里面放很多项目文件,建议50GB以上)。内存方面,分配给虚拟机至少2GB(2048MB)才能保证基本流畅,如果宿主机内存有8GB或以上,分配4GB是更舒适的选择。处理器核心数,分配2个核心通常就能满足大部分学习开发需求。

3. 获取系统镜像与创建虚拟机的关键步骤

准备好了虚拟机软件,接下来就是获取“建筑材料”——Ubuntu 20.04 LTS的ISO镜像文件。务必从官方渠道下载,这是保证系统纯净、安全的第一步。直接访问Ubuntu官方网站的下载页面,找到20.04 LTS的版本。通常你会看到“Desktop image”和“Server image”两个选项,我们选择“Desktop image”,它包含图形化界面,更适合初学者上手。下载下来的文件大概2.6GB左右,是一个以.iso结尾的文件,比如ubuntu-20.04.6-desktop-amd64.iso。后面的“6”代表这是第6个更新版本,集成了截至发布时的所有更新,比最初发布的20.04.0更稳定。

以最常用的VMware Workstation Player为例,我们一步步创建虚拟机:

  1. 打开VMware,点击“创建新虚拟机”。
  2. 选择“典型”配置即可,下一步。
  3. 在“安装程序光盘映像文件”这一项,点击“浏览”,找到你刚才下载的.iso文件。VMware会自动检测到这是Ubuntu 64位系统。
  4. 接下来需要设置一个“简易安装信息”。这里有个小技巧:强烈建议在这里预先设置好你的用户名、密码和计算机名。勾选“使用简易安装”,然后填入信息。比如,全名可以写Your Name,用户名用devubuntu(小写,无空格),密码设一个你记得住的。这样在安装过程中,系统会自动跳过手动创建用户那一步,实现无人值守安装,非常省事。
  5. 为虚拟机命名并选择存储位置。位置请选在你之前预留了足够空间的磁盘分区。
  6. 指定磁盘容量。默认的20GB对于只装系统来说勉强够用,但如前所述,我建议至少调到40GB或更多。选择“将虚拟磁盘存储为单个文件”,这样性能更好,管理也方便。
  7. 在最后一步“已准备好创建虚拟机”时,先别急着点完成!点击“自定义硬件...”。这里是精细化配置的关键。
    • 内存:根据宿主机情况调整,例如宿主机16GB,可以分4GB给虚拟机。
    • 处理器:数量选2,每个处理器的核心数也选2(即总共2核心2线程,或根据你CPU逻辑核心数合理分配)。
    • 网络适配器:默认的“NAT”模式就行。这种模式下,虚拟机会共享宿主机的IP地址上网,就像你家路由器下的另一台设备,宿主机和虚拟机可以互相访问,虚拟机也能直接访问外网,是最省心的网络模式。
    • 显示器:将“加速3D图形”勾选上,这对后续使用图形界面有性能提升。
  8. 确认无误后,关闭硬件设置窗口,点击“完成”。

虚拟机创建好后,VMware会自动启动并开始运行简易安装流程。你基本上只需要看着它自动完成分区、拷贝文件、安装系统等一系列操作,期间可能会重启一两次。最终,它会进入Ubuntu的登录界面,用你之前设置的用户名和密码登录即可。如果安装过程中没有使用简易安装预设密码,那么第一次启动时会提示你创建用户。

注意:在安装过程中,如果遇到“Install third-party software for graphics and Wi-Fi hardware and additional media formats”这个选项,建议勾选。它会安装一些额外的驱动和编解码器(如MP3播放支持),让系统体验更完整。虽然这涉及非自由软件,但对于个人桌面使用来说非常方便。

4. 安装后的首要十件事:从能用变好用

当你第一次进入Ubuntu 20.04的桌面,一个干净的系统呈现在眼前。但要让这个系统真正成为一个顺手的开发或学习环境,我们还需要进行一些关键的初始设置。这些事情做与不做,后续的使用体验天差地别。

4.1 更换软件源与系统更新

系统安装后第一件事,就是更换软件源服务器地址。默认的源服务器可能在国外,更新和下载软件速度会很慢。我们需要将其替换为国内的镜像源,比如阿里云、腾讯云、清华大学的镜像站。

  1. 打开“软件和更新”程序(可以在应用菜单里搜索)。
  2. 点击“下载自”旁边的下拉框,选择“其他...”。
  3. 在弹出的服务器列表里,找到“China”,然后选择一个镜像站,比如mirrors.aliyun.com。选择后系统会要求你重新加载软件源信息。
  4. 关闭窗口,系统会自动刷新。

接下来,打开终端(快捷键Ctrl+Alt+T),执行全面的系统更新:

sudo apt update # 刷新软件源列表,获取最新的软件包信息 sudo apt upgrade # 升级所有已安装的软件包到最新版本 sudo apt dist-upgrade # 处理升级过程中可能出现的依赖关系变更(更智能)

这个过程会下载并安装大量更新,需要一些时间。更新完成后,强烈建议重启一次系统,以确保所有更新,特别是内核更新,完全生效。

4.2 安装VMware Tools / Open VM Tools

这是让虚拟机体验脱胎换骨的一步。它提供了宿主机和虚拟机之间的一系列集成功能:

  • 剪贴板共享:可以在宿主机和虚拟机之间复制粘贴文本。
  • 文件拖放:可以直接将文件从宿主机桌面拖到虚拟机里,反之亦然。
  • 屏幕自适应:调整虚拟机窗口大小时,Ubuntu桌面分辨率会自动适应。
  • 更好的性能:特别是图形和鼠标响应。

对于VMware,如果你使用的是Workstation 16及以上版本,Ubuntu 20.04通常已经自带了开源的open-vm-tools,并且默认启用。我们可以验证并确保其完整安装:

sudo apt install open-vm-tools-desktop

安装后重启虚拟机即可生效。

如果你使用的是较老的VMware或者发现功能不正常,也可以尝试安装VMware官方的Tools。在VMware菜单栏点击“虚拟机” -> “安装VMware Tools”,这会在虚拟机内挂载一个光盘镜像,里面包含安装脚本。但通常来说,open-vm-tools是更推荐的选择,因为它通过系统包管理器管理,更新更方便。

4.3 配置基础开发环境

作为一个准开发环境,一些基础工具链必不可少。

安装Build Essential(编译工具集):这是一组包含GCC、G++、make等编译和构建软件必需的工具包。很多软件的源码安装都依赖它。

sudo apt install build-essential

安装Git版本控制工具:这是现代开发的标配。

sudo apt install git git config --global user.name "Your Name" git config --global user.email "your.email@example.com"

安装Python3及pip:Ubuntu 20.04默认已经安装了Python 3.8,但pip(Python包管理器)可能需要单独安装。

sudo apt install python3-pip

为了避免系统Python环境被污染,强烈建议后续为每个项目使用venv虚拟环境。

4.4 优化终端与Shell体验

默认的终端和Bash Shell能用,但可以更好。

安装并配置Zsh和Oh My Zsh:Zsh是一个功能更强大的Shell,配合Oh My Zsh框架,可以提供智能补全、主题美化、丰富的插件等功能,极大提升命令行效率。

sudo apt install zsh sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

安装脚本会提示你是否将默认Shell切换为Zsh,选择“是”。之后你可以通过编辑~/.zshrc文件来更换主题(如agnosterrobbyrussell)和启用插件(如gitz快速跳转目录)。

安装常用命令行工具:一些能让生活更轻松的工具。

sudo apt install tree htop net-tools curl wget
  • tree: 以树状图列出目录内容。
  • htop: 一个强大的交互式进程查看器,比top更直观。
  • net-tools: 包含ifconfig等传统网络工具(虽然ip命令是未来,但ifconfig更广为人知)。
  • curl/wget: 命令行下载工具。

4.5 设置共享文件夹(如果需要)

如果你需要在宿主机和虚拟机之间频繁交换大量文件,仅靠拖放可能不够。可以设置一个共享文件夹。

在VMware中,先关闭虚拟机。在虚拟机设置 -> “选项” -> “共享文件夹”中,添加宿主机上的某个目录,并选择“总是启用”。启动虚拟机后,共享文件夹通常会被自动挂载到/mnt/hgfs/目录下。如果没有,可能需要手动安装open-vm-tools-desktop(前面已做)并检查内核模块是否加载。

4.6 调整系统设置与外观

  • 隐私设置:进入“设置” -> “隐私”,关闭“位置服务”、“诊断”等你不希望开启的选项。
  • 电源管理:在“设置” -> “电源”中,将“空白屏幕”和“自动挂起”调成“从不”或一个较长的时间,避免在下载或编译时系统自动休眠。
  • 外观:安装Gnome Tweaks工具来深度定制外观。
    sudo apt install gnome-tweaks
    安装后,你可以在这里启用最小化点击、调整字体、更换主题、管理扩展等。

4.7 安装必备的日常软件

通过Ubuntu Software(基于Snap)或直接使用apt命令安装:

  • 浏览器:Firefox已预装,也可以安装Google Chrome。
    wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb sudo apt install ./google-chrome-stable_current_amd64.deb
  • 编辑器/IDE:Visual Studio Code是跨平台首选。
    sudo snap install --classic code
  • 通讯工具:如Telegram、Slack等,可通过Snap或官网下载.deb包安装。

4.8 配置快照与备份策略

这是虚拟机最大的优势之一——快照。在进行了大量配置、安装了很多软件,系统处于一个稳定好用的状态时,务必创建一个快照。在VMware里,点击“虚拟机” -> “快照” -> “拍摄快照”,给它起个名字,比如“Base with Dev Tools”。这样以后无论你把系统玩坏了,还是想测试一个危险的操作,都可以瞬间回滚到这个干净的状态。养成重要操作前拍快照的习惯,能为你节省无数重装系统的时间。

4.9 网络与防火墙基础配置

Ubuntu 20.04默认使用了ufw(Uncomplicated Firewall)作为防火墙前端,但默认是关闭的。如果你需要开启防火墙,并只开放必要的端口(比如SSH的22端口,Web服务的80/443端口),可以这样操作:

sudo ufw allow ssh # 允许SSH连接 sudo ufw allow 80/tcp # 允许HTTP sudo ufw allow 443/tcp # 允许HTTPS sudo ufw enable # 启用防火墙 sudo ufw status verbose # 查看规则状态

对于纯粹在NAT模式下做开发的本地虚拟机,防火墙不开启通常问题也不大,但了解如何管理是必要的技能。

4.10 探索与下一步

完成以上步骤,你的Ubuntu 20.04虚拟机就已经从一个裸系统,变成了一个功能齐全、高效易用的开发学习平台。你可以开始:

  • 学习Linux常用命令和文件系统结构。
  • 搭建LAMP/LEMP(Apache/Nginx + MySQL + PHP)或MEAN/MERN(MongoDB + Express + Angular/React + Node.js)等Web开发栈。
  • 学习Docker容器技术,在更干净的环境里运行应用。
  • 配置SSH服务,学习从宿主机用终端远程连接虚拟机。

这个环境就像你的数字实验室,稳定、隔离、可随时重置。基于这个坚实的基础,任何更深入的学习和探索都会事半功倍。

← 返回列表