刚接触Ubuntu那会儿,我最大的感受就是:系统装起来倒是顺利,但“软件安装”这四个字能把我活活卡死。Windows用习惯了,下载个exe双击一路下一步就行;到了Ubuntu这边,双击.deb文件没反应,终端里敲个sudo apt install又常常报错,第一反应基本就是懵。更让人头疼的是,网上搜“ubuntu软件安装”,出来的教程各说各话——有人让你用apt,有人甩给你源码编译,还有人一上来就叫你配这配那。我踩了无数次坑之后才想明白,其实Ubuntu装软件这件事,只要把底层逻辑搞清楚,再记住几个高频场景的标准操作,绝大多数问题都能顺手解决。
这篇东西我就按自己的实际经验来写,覆盖从装系统时的版本选择、日常装软件的几种姿势,到装GCC、Docker、中文输入法、显卡驱动这些高频任务,最后再讲一讲环境变量配错、SSH连不上、锁文件报错这些烦人问题怎么救。适合刚入坑Linux的新手,也适合给那些装了几次还是莫名失败的“半吊子”用户一个可以照抄的答案。
1. 装系统前,先把这三件事想清楚
很多人栽跟头不是栽在安装软件这一步,而是从选版本、下镜像、做启动盘这个环节就开始埋雷了。系统本身没装对,后面一切软件问题都会被放大。所以我把这部分也一并讲了,而且讲的是最容易踩坑的细节。
1.1 版本那么多,到底选哪个
Ubuntu的版本分两类:LTS(Long Term Support,长期支持版)和普通版。LTS一般是每两年发布一次,官方维护五年,稳定性第一;普通版本每半年更新一次,尝鲜为主,但维护期短,升级频繁。对绝大多数普通用户来说,没什么好纠结的,直接选最新的LTS,比如现在的22.04、24.04,装完能消停好几年。我个人推荐24.04 LTS起步,硬件兼容性和软件源里的软件版本都更新一些。
另外还要分清桌面版(Desktop)和服务器版(Server)。桌面版自带图形界面,日常办公、学习、开发调试都在这个上面做;服务器版默认没有图形桌面,是给跑服务的机器用的。如果你只是在VMware或者VirtualBox里体验一把,或者拿来当主力开发机,直接下Desktop版就行。至于网上偶尔有人问“我要用Python做系统要装哪些软件”,那大概率是这两类概念混在一起了——做Python开发其实装的是桌面版Ubuntu,然后补一套编译环境和Python工具链,这个后面在实战部分会详细讲。
1.2 镜像下载与U盘制作避坑
镜像别随便找第三方网站下,只认官方渠道。到Ubuntu官网的Download页面,选对应的Desktop版本,下载那个 .iso 文件,文件名一般像 ubuntu-24.04.2-desktop-amd64.iso 这样。下载完最好校验一下SHA256哈希值,官方页面会给对应的校验值,不怕麻烦就验一下,至少能排除下载损坏的情况。
国内的下载速度如果慢,可以使用国内高校或云厂商维护的镜像站,比如清华、中科大、阿里云的镜像站,上面同样有官方原版ISO,选一个速度快的即可。这里有一个特别容易忽略的坑:很多人下载完ISO直接用Windows的资源管理器“解压”到U盘里,或者用UltraISO的“写入硬盘映像”功能。结果装的时候直接报引导错误。正确做法是使用Rufus或balenaEtcher这类写盘工具,选择“以DD镜像模式写入”,这样才能把U盘做成真正的启动盘,而不是一个普通数据U盘。
1.3 先用虚拟机趟一遍
如果你之前完全没用过Linux,我不建议一上来就格式化硬盘装双系统。先用虚拟机体验几天,习惯一下命令行的操作节奏,再决定要不要实体机安装。VMware Workstation Player或者VirtualBox都是免费的选择。
虚拟机装Ubuntu时,几个关键参数直接决定你后续用起来爽不爽:
- 内存:建议至少4GB,能分8GB最好,不然开个浏览器再编译个东西就卡死了。
- 处理器:至少分配2核,有4核更好。
- 磁盘:建议40GB起步,并选择“将虚拟磁盘存储为单个文件”,性能稍好。
- 网络:默认NAT模式就能上网,不需要手动改。
在VirtualBox下,很多人装完Ubuntu发现分辨率特别小、无法全屏,那是因为没装“增强功能”(Guest Additions)。装这个的前提是系统里有编译工具,先执行 sudo apt install build-essential linux-headers-generic,然后再运行增强功能安装脚本,基本一次搞定。VMware则直接装“VMware Tools”或open-vm-tools,拷贝粘贴、屏幕自适应都会正常。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 软件安装的五种常用姿势
Ubuntu装软件和Windows最大的区别,就是没有任何一个“包打天下”的格式。你需要根据软件的发布方式来选择对应的安装方法。下面这五种是我日常最常用的,按优先级排个序,每一种我都说一下它适合什么场景、坑在哪里。
2.1 apt:日常90%的操作都靠它
apt是Ubuntu(以及Debian系发行版)的软件包管理工具,它做的事情简单来说就是:从一个软件源仓库里下载软件包、自动处理依赖关系、安装到系统里,后续还能一键升级、卸载。你用 sudo apt install 软件名 装东西时,就是在用它。
新手最需要理解两个命令的区别:sudo apt update 和 sudo apt upgrade。update 只是更新软件源缓存,让系统知道仓库里现在有什么新版本,本身不安装任何东西;upgrade 才是真正升级所有可升级的软件包。很多人上来不做update直接install,很容易遇到“软件包找不到”或者版本很旧的问题,这不是软件不存在,而是你的源缓存还没刷新,自然不知道有这个东西。
apt之所以好用,是因为它会自动解决依赖。比如你装一个软件,它依赖某个底层库,apt会一起装上。但这也带来一个问题:如果软件源里的版本太旧,而你需要的功能新版本才有,那就得考虑后面讲的其他方式了。
想加快apt下载速度的话,可以换国内软件源。操作很简单:备份 /etc/apt/sources.list.d/ 下的源配置文件,然后把官方源地址替换成国内镜像站的地址。以Ubuntu 24.04为例,把 archive.ubuntu.com 换成 mirrors.tuna.tsinghua.edu.cn(清华源)或 mirrors.aliyun.com(阿里源),再执行update即可。这里提醒一句:换源前务必备份,改坏了能用备份还原,别硬着头皮改。
2.2 dpkg与gdebi:手动安装deb包的组合拳
有些软件官方只提供 .deb 包,比如Google Chrome、一些厂商的工具软件,这时候你下载下来双击,Ubuntu默认可能会打开软件商店或者直接提示安装失败。更可靠的方式是命令行安装:
bash复制sudo dpkg -i 软件包.deb
但dpkg有个要命的缺点:它不会自动下载依赖。如果这个deb包依赖某个库,而你的系统里没有,dpkg会直接报“依赖关系不满足”的错。这时候有两个选择:
- 手动用
sudo apt --fix-broken install让它把缺失的依赖补上,然后再重新安装。 - 或者干脆安装gdebi,用它来安装deb包,它会自动调用apt帮你解决依赖问题:
bash复制sudo apt install gdebi
sudo gdebi 软件包.deb
我个人习惯是优先用gdebi,省得dpkg装到一半报错再来补。很多人第一次接触deb包时被“依赖错误”劝退,其实就是没搞清楚dpkg和apt的定位差异。
2.3 snap、Flatpak与AppImage:三种各有脾气的格式
这几类属于“容器化/打包式”的软件分发方式,核心思路是把软件和它需要的运行环境打包在一起,与系统其他部分隔离。好处是装在不同发行版上都能跑,坏处是体积大、启动可能慢一点。
snap是Ubuntu自家主推的格式,某些预装应用(比如Firefox)默认就是snap版本。用 sudo snap install 软件名 安装,但它有几个让不少人不爽的点:首次启动很慢、版本经常被强制更新、对系统目录访问受限。我写过不少脚本,在snap版的Python环境里跑总会遇到权限问题。所以我的原则是:能装apt版就不用snap,除非官方只推snap。
Flatpak是另一个跨发行版的方案,通过 flatpak install 安装,软件源是Flathub仓库。它的隔离性做得比snap更彻底,适合装一些GUI应用,比如音视频编辑软件。但它的初始化要比snap多一步——需要先添加Flathub仓库。
AppImage则是很多独立开发商喜欢用的免安装格式,一个文件就是一个软件,下载下来加执行权限就能跑:
bash复制chmod +x 应用.AppImage
./应用.AppImage
它不需要root权限、不需要安装,顺便还能用U盘带走。缺点是没有自动集成到应用菜单(需要自己处理.desktop文件),也没有自动更新机制。我建议把它当作“绿色软件”来对待,适合临时工具和官方不提供deb的软件。
下面这张表是我自己总结的,不同场景选哪个格式更合适:
| 安装方式 | 依赖处理 | 适合场景 | 缺点 |
|---|---|---|---|
| apt | 自动 | 系统工具、开发库、常用软件 | 源仓库的版本可能偏旧 |
| dpkg + gdebi | 需要辅助解决 | 官方只发布deb包的商业软件 | 不适合所有软件都靠它装 |
| snap | 自带环境 | Ubuntu预装生态里的应用 | 启动慢、权限限制多 |
| Flatpak | 自带环境 | 跨发行版GUI应用 | 需加第三方仓库 |
| AppImage | 无 | 免安装的单文件工具 | 桌面集成不完整 |
2.4 源码编译安装:最后的底牌
当软件仓库里没有、官方没给deb包和AppImage,只有源码包的时候,才需要走编译安装。典型流程是:
bash复制tar -xzf 软件源码.tar.gz
cd 软件源码目录
./configure --prefix=/usr/local
make -j$(nproc)
sudo make install
大部分用 ./autogen.sh 或 CMakeLists.txt 的工程也类似,只是配置命令变成了 ./autogen.sh、cmake .. 这些。初次编译的人常见问题是直接裸跑configure,结果报缺了一堆开发库。其实报错里写了缺什么包(带 -dev 后缀),按提示 sudo apt install libxxx-dev 就好。编译安装能把最新的功能装到系统里,但卸载很麻烦——源码没有留下卸载脚本的话,你得自己对照文件列表删除。所以我后来养成了一个习惯:不直接make install,而是用 sudo checkinstall 把编译结果打包成一个deb文件,然后统一用dpkg管理,卸载干净利落。
3. 四个高频实战案例
这一章直接把热搜词里反复出现的高频任务拉出来过一遍,每一步都写清楚,不搞抽象。
3.1 安装GCC及编译环境
“ubuntu安装gcc失败”是我见过问得最多的问题之一。其实装GCC的正确姿势不是单独装gcc,而是直接装整个编译工具链:
bash复制sudo apt update
sudo apt install build-essential
build-essential 会帮你装上gcc、g++、make以及一堆编译所需的头文件。装完验证一下:
bash复制gcc --version
make --version
如果提示 gcc: command not found,大部分原因是没执行 sudo apt update,源缓存是空的。另一种情况就是软件源本身配置有问题,换成国内源再update基本能解决。还有人在最小化安装的服务器版里折腾,发现自己连gcc都没有,那是正常的,因为服务器版默认只装基础环境,按上面两条命令装就行。
写C/C++项目时,还会用到调试器gdb、构建工具cmake,这些都建议先装好:
bash复制sudo apt install gdb cmake
3.2 安装Docker并跑一个Python运行环境
Docker现在已经是开发者的标配了。“ubuntu安装docker”这个需求背后,通常是为了跑隔离的Python环境、或者部署一些服务。这里我推荐用Docker官方源的方式安装,比直接装系统仓库里的docker.io版本更新、更完整。
首先装几个基础工具和证书组件:
bash复制sudo apt update
sudo apt install ca-certificates curl gnupg
然后添加Docker官方的GPG密钥和apt源(以Ubuntu 24.04为例,注意版本代号对应好):
bash复制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
接着安装Docker引擎和常用插件:
bash复制sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
启动服务并设置开机自启:
bash复制sudo systemctl enable --now docker
sudo docker run hello-world
如果 docker run hello-world 能正常输出,说明Docker已经跑起来了。想要摆脱sudo才能执行docker命令的话,把当前用户加入docker组再重新登录:
bash复制sudo usermod -aG docker $USER
国内拉取Docker Hub镜像经常很慢,可以在 /etc/docker/daemon.json 里配置镜像加速器(以阿里云、中科大等公开加速服务为例),然后 sudo systemctl restart docker 生效。
有了Docker,跑Python环境就简单多了。比如你想在一个隔离环境里跑脚本,不需要在系统里安装一堆Python包,直接:
bash复制docker run -it --rm -v $(pwd):/app -w /app python:3.11-slim bash
这个命令把当前目录挂载到容器的/app目录,进入容器后直接 python xxx.py 就行。容器退出即删,不污染宿主机环境。我个人现在做很多临时Python验证都是这么跑的,比自己折腾虚拟环境还省心。
3.3 配置中文输入法
“ubuntu中文输入法怎么设置”是每个中文用户都绕不过去的一关。新装的Ubuntu默认只有英文输入,想敲中文要先装输入法框架和拼音引擎。目前主流方案是fcitx5加中州韻/拼音。我的推荐配置是:
bash复制sudo apt install fcitx5 fcitx5-chinese-addons fcitx5-config-qt
装完之后,需要把输入法框架切换成fcitx5。编辑环境变量文件(用户级即可):
bash复制sudo nano /etc/environment
在文件里加入:
code复制GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
然后重启或重新登录。接着运行fcitx5配置工具,把“拼音”加入输入法列表,通过Ctrl加空格或Ctrl加Shift切换中英文输入。新版Ubuntu有已经默认启用IBus方案的,如果你更喜欢IBus,那装法略有不同,但fcitx系列对中文用户更友好、候选词排序也更好用,我是长期fcitx党。
有个常见问题是:设置完了仍然调不出输入法。排查顺序一般是:先确认环境变量是否生效(执行 env 查看),再确认fcitx进程有没有启动(执行 fcitx5-diagnose 查看诊断信息),最后检查系统设置里“输入源”有没有手动添加。很多时候就是缺了最后一步,只在环境变量层面配好了,界面里的输入源却是空的。
3.4 显卡驱动的安装与卸载
“ubuntu显卡驱动卸载不掉”、“显卡驱动装不上”这类问题,绝大多数源于混用了两种安装方式:一种是用系统自带驱动管理器装的普通驱动,另一种是从NVIDIA官网下载 .run 安装包强行装的驱动。二者一旦同时存在,就很容易出现系统启动黑屏、nvidia-smi报错、驱动版本对不上的情况。
普通用户最简单的做法是直接用Ubuntu系统自带的“软件和更新”应用,在里面找到“附加驱动”标签页,选中推荐的专有驱动版本,点应用后重启。用命令行也没问题:
bash复制sudo ubuntu-drivers autoinstall
它会自动检测你的显卡型号并安装推荐的驱动版本,装完重启即可。
如果你之前用 .run 文件装过驱动,现在想换新版本或者彻底卸载,正确姿势是先进恢复模式(GRUB选“高级选项”进recovery模式),或者按住Ctrl+Alt+F2进入纯命令行界面,停掉桌面服务后执行:
bash复制sudo systemctl stop gdm
sudo nvidia-uninstall
如果系统里使用的是软件包方式的驱动,则统一用apt卸载:
bash复制sudo apt purge nvidia-*
sudo apt autoremove
卸载完不要着急,重启前确认一下系统是否已经回到开源驱动nouveau(一般现代Ubuntu默认就带着)。我遇到过不少朋友卸载完驱动直接黑屏,其实是nouveau被自己手动禁用过,卸载驱动后没人恢复禁用设置。如果你之前做过 blacklist nouveau 的操作,记得把 /etc/modprobe.d/ 下的相关配置删掉或改回默认。
4. 环境变量与SSH连接两大玄学问题
这两个问题属于“一错就慌、一慌就乱”的类型。我在新手阶段都在上头栽过跟头,所以单独写一章把救援思路讲透。
4.1 环境变量配置错了,系统“瘫痪”怎么救
“ubuntu环境变量配置错误”这个热搜词看着平平无奇,但经历过的人都知道有多崩溃。最常见的情况是修改了PATH变量,结果把原本的路径覆盖了,导致 ls、sudo、vim 这些基础命令全部提示 command not found。很多人的第一反应是“完了,系统坏了”,其实系统根本没有坏,只是shell找不到命令了。
救法很简单:既然PATH里丢了路径,那就用绝对路径调用命令。绝大多数常用命令都在 /usr/bin 或 /bin 下面,比如:
bash复制/usr/bin/sudo /usr/bin/vim ~/.bashrc
用绝对路径把改错的配置修回来,或者把错误行注释掉,然后重新登录就恢复了。如果改的是 /etc/environment 而且导致开机进不了图形界面,也是同样的思路,在登录界面按Ctrl+Alt+F2进tty,用 /usr/bin/sudo /usr/bin/nano /etc/environment 改回来再重启。
这里分享一个血泪教训:网上很多教程教你把PATH写到 /etc/environment,但这其实是个坑。/etc/environment 里的PATH是给所有进程用的,如果手误写错,影响的不是你一个用户,而是整个系统的图形环境。正确的用户级PATH修改位置是 ~/.bashrc,而且追加时要保留原有路径,比如:
bash复制export PATH=$PATH:/你的/自定义/路径
那个 $PATH 一定不能少,少了就把系统原有的路径全冲掉了。我见过太多人的PATH配置事故就是这个原因。
4.2 SSH连不上,一步步倒着查
“ubuntu ssh无法连接”也是高频问题。SSH连接不上,别急着折腾配置,按下面这个顺序排查,大多数情况几分钟就能定位。
第一步,确认目标机器装没装SSH服务端。Ubuntu桌面版默认是没有openssh-server的:
bash复制sudo apt install openssh-server
sudo systemctl enable --now ssh
第二步,确认服务在跑且端口在监听:
bash复制sudo systemctl status ssh
sudo ss -tlnp | grep 22
第三步,确认防火墙没挡着22端口。Ubuntu自带的UFW如果没放行SSH,外面根本连不进来:
bash复制sudo ufw allow OpenSSH
sudo ufw enable
第四步,确认IP地址和网络。同一局域网内执行 ip a 看当前IP,虚拟机用户要特别注意网卡模式。VMware里如果选的NAT模式,宿主机和虚拟机之间一般来说是通的;VirtualBox默认NAT模式下,从宿主机访问虚拟机反而要配端口转发,不如直接用“桥接模式”省心。所谓“桥接”,就是让虚拟机直接暴露在局域网里,跟其他设备一样有自己的IP,这样SSH天然就能通。
第五步,如果以上都没问题但依然连不上,检查是不是SSH配置里禁用了密码登录。看 /etc/ssh/sshd_config 里的 PasswordAuthentication 是不是yes。改完配置记得 sudo systemctl restart ssh。
说句实在话,SSH连不上大部分都是前三步的问题——要么服务器没装,要么服务没启,要么防火墙没放行。先把这三点捋顺,90%的“连不上”都能解决。
5. 高频报错与系统恢复
软件装多了总会遇到各种幺蛾子。这一章把最常见的报错和恢复操作整理成可直接照做的清单。
5.1 锁文件、依赖断开、dpkg中断的通用修复方法
apt在安装过程中如果被中断(比如断电、强制关机、Ctrl+C),很容易留下一个状态:再次执行任何apt命令都会报“E: 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend),是否有其他进程正占用它”。这个锁文件存在的意义是防止多个安装进程同时操作系统文件,正常情况下是好事。
很多人一看到锁就急着删。正确做法是先确认没有apt进程在运行:
bash复制ps aux | grep -E "apt|dpkg"
确认没有相关进程后,再删除残留的锁文件:
bash复制sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock
sudo rm /var/lib/apt/lists/lock
然后修复可能中断的安装状态:
bash复制sudo dpkg --configure -a
sudo apt --fix-broken install
sudo apt update
这一套组合拳能解决绝大多数“apt崩了”的情况。另一个常见报错是安装软件时提示“依赖关系不满足”,术语叫“broken packages”。这通常发生在你手动装了某个deb包,它的版本和系统仓库里的其他包冲突了。执行 sudo apt --fix-broken install 会尝试自动修复;如果还是不行,就用 sudo apt install -f 再配合 sudo dpkg --remove 冲突的包名 手动清理掉冗余包。
5.2 忘记登录密码的应急恢复
忘了密码这事谁碰上谁头疼,但Ubuntu提供了一个硬件级别的后门。重启电脑,在GRUB菜单出现时按Esc(或Shift),选择“高级选项”,进入recovery模式,然后选择root shell,就能以root身份进入命令行,执行:
bash复制mount -o rw,remount /
passwd 你的用户名
按提示输入两遍新密码,重启后正常登录即可。如果你的家目录是全盘加密的,恢复会稍微复杂一些,但普通默认安装的Ubuntu不在这个范围内。
另外提醒一句:recovery模式不是Windows的“安全模式”,它给的是一个极简root环境,适合做密码恢复、修复引导、删除坏包这类维护操作,但别指望在里面打开浏览器上网。
5.3 把软件安装问题整理成速查表
我把平时遇到的高频问题整理成了一个速查表,值不值得收藏你说了算:
| 现象 | 最常见原因 | 解决方法 |
|---|---|---|
| apt install找不到软件包 | 源缓存未更新 | 先 sudo apt update 再安装 |
| 双击deb没反应 | 缺少对应安装工具 | sudo apt install gdebi 后用gdebi打开 |
| 安装软件提示依赖不满足 | 手动安装了冲突deb | sudo apt --fix-broken install |
| 任何apt命令报锁 | 上次安装被中断 | 确认无apt进程后删除锁文件 |
| 编译安装报缺库 | 缺dev开发包 | 按错误提示 apt install libxxx-dev |
| 系统中文输入法调不出 | 输入源没添加 | 在fcitx配置或系统输入源里手动添加“拼音” |
| SSH连接被拒绝 | openssh-server没装 | sudo apt install openssh-server 并启用 |
| 虚拟机无法全屏 | 缺增强工具 | 安装build-essential后装VBox增强功能 |
| Docker拉镜像慢 | 未配置加速器 | 配置daemon.json镜像加速地址并重启 |
| 网页提示Firefox阻止安装软件 | 浏览器安全策略 | 这是保护机制,正常安装请走apt等系统渠道 |
看到这些热搜词,我也想说一句:很多词条其实跟Ubuntu八竿子打不着,比如“0xc0e90002”那是Windows下DLL运行错误,跑到Ubuntu社区求助只会被一顿指路。搜索之前先分清自己的操作系统再对症下药,能省不少时间。
另外提一嘴,和Ubuntu同源的国产Linux发行版,比如银河麒麟这类基于Debian系的系统,装软件的命令跟Ubuntu基本通用,apt系列命令完全可以照抄。如果你在麒麟系统里遇到安装软件的需求,先别急着找教程,直接在终端试一句 sudo apt install 你想装的软件名,多半就通了。
6. 一些值得长期保持的使用习惯
这篇文章该讲的实操已经讲完了,最后扯几句我这几年稳定使用Ubuntu后养成的小习惯,都是经验之谈。
第一,不乱用sudo。不到万不得已,不要用 sudo 运行图形软件或者修改系统级配置。sudo权限给的是管理通道,也给了恶意软件和手误以破坏空间。用户级环境变量的修改、安装用户级软件,都尽量用普通权限完成。第二,定期 sudo apt update && sudo apt upgrade。很多人系统装完就再也不更新,直到某天装新软件报依赖错误才想起来。每周更新一次,软件源缓存保持新鲜,很多问题会自然消失。第三,重要文件养成备份习惯。我一般用rsync把家目录的 文档、代码、.ssh 这些关键目录同步到另一块硬盘或NAS上,成本极低,但真遇到系统彻底崩了的时候会感激这个习惯。第四,给系统做快照。Timeshift这个工具条用了好几年,可以理解成系统级的“还原点”,手动或定时备份系统状态。软件环境折腾坏了,十分钟就能回到之前能用的状态,省去大面积重装的痛苦。
有人喜欢追求“最新版”,看见非LTS版本就心痒。我强烈不建议在主力机上折腾普通版本,特别是在你还需要稳定开发环境的时候。新版好玩,但系统更新一次,可能就带出一堆驱动兼容问题、软件源失效问题。想尝鲜就去虚拟机里试,主力机永远用LTS。
装软件这个过程,其实就是理解Linux系统管理哲学的一个缩影:工具都有边界,方法各有取舍,搞清楚“为什么这么做”比机械记命令重要得多。把这些基础思路捋顺了,你会发现Ubuntu的软件安装并不神秘,反而是一种很清爽的秩序感。
