人人都会AI编程

16.3 其他安装方式

更新时间:2026-07-12

除了通过发行版自带的包管理器(如 apt、dnf、pacman)安装软件外,Linux 生态中还存在着多种灵活、强大的安装途径。这些方式各有适用场景,掌握它们能让你在面对不同的软件分发形式时游刃有余。

1. 从源码编译安装
这是最传统也是最灵活的安装方式。当软件没有为你使用的发行版提供预编译包,或者你需要启用特定功能、应用自定义补丁时,源码编译就是终极选择。

典型的流程是:

tar -xzf software-1.0.tar.gz
cd software-1.0
./configure --prefix=/usr/local   # 检查环境,指定安装路径
make                              # 编译源码
sudo make install                 # 安装到系统
  • ./configure 阶段会检测你的系统是否具备编译所需的依赖库和工具(如 gcc、make),你可以通过参数自定义功能开关。
  • make 会根据 Makefile 真正编译出可执行文件。
  • make install 将文件复制到目标目录(通常 /usr/local/)。

优点:可获得最新特性,完全控制编译选项,不受发行版仓库更新时间限制。
缺点:需要手动解决依赖链问题,升级和卸载相对麻烦(除非软件支持 make uninstall)。建议始终在 ./configure 时使用 --prefix 指定独立目录,以便日后直接删除整个目录完成卸载。

2. 预编译二进制包(便携式直接运行)
很多专有软件或社区项目会直接发布编译好的 .tar.gz.zip 包,解压后即可运行。例如,从 Go 语言官网下载的 Go 工具链、Firefox 官方提供的 Nightly 版本,或者 JetBrains 的 IDE 工具等。

使用方法非常简单:

tar -xzf go1.21.0.linux-amd64.tar.gz
sudo mv go /usr/local
export PATH=$PATH:/usr/local/go/bin

不需要编译,只需要将可执行文件所在目录添加到 PATH 环境变量中。通常这类软件将所有依赖库都自己携带,不依赖系统的包管理器。

适用场景:快速尝鲜新版本;在无网络或受限环境中部署;软件本身为静态链接或自带完整运行库。

3. 通用软件包格式:AppImage、Snap 与 Flatpak
为了打破发行版之间的“依赖地狱”与版本碎片化,社区推出了多种跨发行版的打包方案。它们将应用及其所有依赖打包在一起,以隔离方式运行,几乎不会和系统其他库冲突。

  • AppImage

“一次打包,到处运行”。下载一个 .AppImage 文件,给其可执行权限后直接运行即可,无需安装,删除即卸载。

  chmod +x SomeApp.AppImage
  ./SomeApp.AppImage
  

极其适合试运行、便携使用。所有用户数据一般存储在 ~/.config 下对应的应用目录。

  • Snap

由 Canonical 主导,常预装在 Ubuntu 中。snap install 命令会从 Snap Store 拉取应用,自动更新和沙箱运行。

  sudo snap install vlc
  

Snap 包会挂载一个压缩的只读镜像,启动稍慢,但安全性高,更新自动且可回滚。

  • Flatpak

更社区化、去中心化的方案。安装时通常先添加远程仓库(如 Flathub),然后安装应用。

  flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
  flatpak install flathub org.libreoffice.LibreOffice
  

Flatpak 依赖 ostree 技术,增量更新节省流量,同样提供沙箱隔离。

这些通用格式特别适合在 LTS 发行版上运行最新版本软件(如最新 GIMP、Blender),而不必担心破坏系统基础库。

4. 第三方脚本或一键安装命令
网络上常见类似 curl -sSL https://get.example.com | bash 的安装方式。这种方式由软件官方维护的脚本自动完成下载、检测环境、复制文件等步骤,例如安装 Rust 的 rustup 或 Homebrew for Linux。

使用此类方法需要格外谨慎:

  • 务必信任来源:脚本会以当前用户权限执行任意命令,可能修改系统配置或下载恶意内容。
  • 安全实践:先通过 curl -sSL URL 下载脚本到本地,检查其内容,或至少确认网站可信且使用 HTTPS。

官方认可的脚本通常是最便捷的入门方式,但永远不要以 root 身份直接执行来源不明的脚本。

5. 语言生态自带的管理器
如果你从事开发工作,经常会使用特定编程语言的包管理器,它们也会安装很多工具和库,甚至可执行程序。

  • Python 的 pip install --user <package> 会将命令行工具安装到 ~/.local/bin
  • Node.js 的 npm install -g <package> 安装全局命令。
  • Rust 的 cargo install、Go 的 go install 等。

这些工具一般将可执行文件放在用户主目录下,不会污染系统目录,适合开发环境快速配置。

总结
Linux 世界给予你多种选择:源码编译赋予你终极控制力,预编译二进制包提供快速部署,通用格式打破发行版壁垒,语言管理器让开发者得心应手。根据实际需求灵活选用,正是 Linux 自由与强大的体现。