本指南详细介绍 Arch Linux 系统中安装软件的各种方法,包括官方仓库、AUR、AppImage、Flatpak、Snap 以及源码编译。
目录
- 官方仓库 (pacman)
- AUR (Arch User Repository)
- AppImage
- Flatpak
- Snap
- 源码编译
- 卸载与清理
- 最佳实践
- 故障排除
- [附录:CC-Switch 安装示例](#附录:CC-Switch 安装示例)
1. 官方仓库 (pacman)
pacman 是 Arch Linux 的包管理器,用于管理官方仓库中的软件包。
1.1 基本操作
安装软件
bash
# 安装单个软件包
sudo pacman -S <软件包名>
# 安装多个软件包
sudo pacman -S <包1> <包2> <包3>
# 安装软件包组(如 gnome 组)
sudo pacman -S gnome
搜索软件
bash
# 在仓库中搜索软件
pacman -Ss <关键词>
# 搜索已安装的软件
pacman -Qs <关键词>
# 显示软件包详细信息
pacman -Si <软件包名>
# 显示已安装软件包信息
pacman -Qi <软件包名>
更新系统
bash
# 同步数据库并更新所有软件包
sudo pacman -Syu
# 仅同步数据库(不更新)
sudo pacman -Sy
# 更新单个软件包
sudo pacman -S <软件包名>
卸载软件
bash
# 卸载软件包(保留依赖)
sudo pacman -R <软件包名>
# 卸载软件包及其未使用的依赖
sudo pacman -Rs <软件包名>
# 卸载软件包、依赖及配置文件
sudo pacman -Rns <软件包名>
1.2 高级操作
清理缓存
bash
# 清理未安装软件包的缓存
sudo pacman -Sc
# 清理所有缓存(谨慎使用)
sudo pacman -Scc
# 使用 paccache 保留最近 3 个版本
sudo paccache -r
查询文件
bash
# 查询文件属于哪个软件包
pacman -Qo /path/to/file
# 列出软件包安装的所有文件
pacman -Ql <软件包名>
# 查询远程仓库中的文件
pacman -F <文件名>
依赖分析
bash
# 列出软件包的依赖
pactree <软件包名>
# 列出依赖该软件包的其他包
pactree -r <软件包名>
# 列出孤立软件包(不再需要的依赖)
pacman -Qdt
1.3 配置文件
pacman 的主要配置文件位于 /etc/pacman.conf,镜像列表位于 /etc/pacman.d/mirrorlist。
常用配置选项
ini
# 在 [options] 部分
Color # 启用彩色输出
ParallelDownloads = 5 # 并行下载数量
VerbosePkgLists # 显示详细更新信息
添加第三方仓库
ini
# 在文件末尾添加(如 archlinuxcn 仓库)
[archlinuxcn]
Server = https://repo.archlinuxcn.org/$arch
2. AUR (Arch User Repository)
AUR 是社区维护的软件仓库,包含大量官方仓库没有的软件包。
2.1 基本概念
- PKGBUILD: 构建脚本,描述如何编译和打包软件
- makepkg: 构建工具,读取 PKGBUILD 并生成可安装的包
- AUR helper: 辅助工具,自动化 AUR 包的安装过程
2.2 手动安装(推荐用于学习)
准备工作
bash
# 安装基础开发工具
sudo pacman -S base-devel git
安装步骤
bash
# 1. 克隆软件包仓库
git clone https://aur.archlinux.org/<软件包名>.git
# 2. 进入目录
cd <软件包名>
# 3. 检查 PKGBUILD(重要!)
less PKGBUILD
# 4. 构建并安装
makepkg -si
makepkg 常用选项
-s: 自动安装依赖-i: 构建完成后自动安装-r: 构建后删除构建依赖-c: 清理临时文件
2.3 使用 AUR Helper
AUR helper 可以自动化 AUR 包的安装过程。
yay (Yet Another Yogurt)
bash
# 安装 yay
sudo pacman -S git base-devel
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
# 使用 yay 安装软件
yay -S <软件包名>
# 搜索软件
yay -Ss <关键词>
# 更新所有软件包(包括 AUR)
yay -Syu
paru
bash
# 安装 paru
sudo pacman -S git base-devel
git clone https://aur.archlinux.org/paru.git
cd paru
makepkg -si
# 使用 paru 安装软件
paru -S <软件包名>
2.4 安全注意事项
- 检查 PKGBUILD: 安装前务必检查 PKGBUILD 内容
- 查看评论: 阅读 AUR 页面上的用户评论
- 验证来源: 确保软件来源可信
- 定期更新: AUR 包不自动更新,需手动更新
3. AppImage
AppImage 是一种便携式软件分发格式,无需安装即可运行。
3.1 基本使用
bash
# 1. 下载 AppImage 文件
wget https://example.com/software.AppImage
# 2. 添加执行权限
chmod +x software.AppImage
# 3. 运行
./software.AppImage
3.2 系统集成
安装到用户目录
bash
# 创建本地 bin 目录(如果不存在)
mkdir -p ~/.local/bin
# 移动 AppImage
mv software.AppImage ~/.local/bin/
# 创建符号链接(可选)
ln -s ~/.local/bin/software.AppImage ~/.local/bin/software
创建桌面快捷方式
bash
cat > ~/.local/share/applications/software.desktop << EOF
[Desktop Entry]
Name=Software Name
Comment=Software description
Exec=/home/$USER/.local/bin/software.AppImage
Icon=application-x-executable
Terminal=false
Type=Application
Categories=Utility;
EOF
# 更新桌面数据库
update-desktop-database ~/.local/share/applications/
3.3 AppImage 管理工具
appimaged
bash
# 安装 appimaged
sudo pacman -S appimaged
# 启用服务
systemctl --user enable appimaged
systemctl --user start appimaged
AppImageLauncher
bash
# 从 AUR 安装
yay -S appimagelauncher
3.4 优缺点
优点:
- 无需安装,便携式
- 自包含所有依赖
- 不影响系统
缺点:
- 文件体积较大
- 需要手动更新
- 集成度较低
4. Flatpak
Flatpak 是另一种通用软件包管理系统。
4.1 安装与配置
bash
# 安装 Flatpak
sudo pacman -S flatpak
# 添加 Flathub 仓库(主要软件源)
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
# 重启系统或重新登录
4.2 基本操作
安装软件
bash
# 搜索软件
flatpak search <关键词>
# 安装软件
flatpak install flathub <软件包名>
# 运行软件
flatpak run <软件包名>
管理软件
bash
# 列出已安装软件
flatpak list
# 更新所有软件
flatpak update
# 卸载软件
flatpak uninstall <软件包名>
# 清理未使用的运行时
flatpak uninstall --unused
4.3 图形界面工具
bash
# 安装 GNOME Software(支持 Flatpak)
sudo pacman -S gnome-software
# 安装 Discover(KDE 支持 Flatpak)
sudo pacman -S discover
4.4 优缺点
优点:
- 跨发行版兼容
- 沙箱隔离,更安全
- 自动更新
缺点:
- 首次下载运行时较大
- 启动速度略慢
- 沙箱可能限制某些功能
5. Snap
Snap 由 Ubuntu 开发,也是一种通用包管理系统。
5.1 安装与配置
bash
# 安装 snapd
sudo pacman -S snapd
# 启用 snapd 服务
sudo systemctl enable --now snapd.socket
# 创建符号链接
sudo ln -s /var/lib/snapd/snap /snap
# 重启系统
5.2 基本操作
安装软件
bash
# 搜索软件
snap find <关键词>
# 安装软件
sudo snap install <软件包名>
# 安装特定版本
sudo snap install <软件包名> --channel=stable
管理软件
bash
# 列出已安装软件
snap list
# 更新软件
sudo snap refresh <软件包名>
# 卸载软件
sudo snap remove <软件包名>
5.3 通道系统
Snap 使用通道(channel)系统管理版本:
stable: 稳定版(默认)candidate: 候选版beta: 测试版edge: 开发版
bash
# 查看可用通道
snap info <软件包名>
# 切换通道
sudo snap switch <软件包名> --channel=beta
sudo snap refresh
5.4 优缺点
优点:
- 自动更新
- 沙箱隔离
- 跨发行版
缺点:
- 启动速度较慢
- 占用空间较大
- 与系统集成度较低
6. 源码编译
某些软件需要从源码编译安装。
6.1 基本步骤
bash
# 1. 安装编译工具
sudo pacman -S base-devel
# 2. 下载源码
wget https://example.com/software.tar.gz
tar -xzf software.tar.gz
cd software
# 3. 配置(检查依赖)
./configure
# 4. 编译
make
# 5. 安装
sudo make install
6.2 使用 CMake
bash
# 创建构建目录
mkdir build && cd build
# 配置
cmake ..
# 编译
make
# 安装
sudo make install
6.3 使用 Meson
bash
# 配置
meson setup build
# 编译
ninja -C build
# 安装
sudo ninja -C build install
6.4 注意事项
- 依赖管理: 需要手动安装所有依赖
- 更新困难: 需要手动下载新版本重新编译
- 冲突风险: 可能与系统包管理器冲突
- 卸载困难: 没有标准的卸载方法
7. 卸载与清理
7.1 pacman 卸载
bash
# 基本卸载
sudo pacman -R <软件包名>
# 卸载并删除未使用的依赖
sudo pacman -Rs <软件包名>
# 卸载并删除配置文件
sudo pacman -Rns <软件包名>
# 强制卸载(谨慎使用)
sudo pacman -Rdd <软件包名>
7.2 AUR 卸载
bash
# 使用 pacman 命令卸载(与官方包相同)
sudo pacman -Rs <软件包名>
# 使用 yay 卸载
yay -Rs <软件包名>
# 清理 AUR 缓存
yay -Sc
7.3 AppImage 卸载
bash
# 删除 AppImage 文件
rm ~/.local/bin/software.AppImage
# 删除符号链接(如果有)
rm ~/.local/bin/software
# 删除桌面文件
rm ~/.local/share/applications/software.desktop
# 更新桌面数据库
update-desktop-database ~/.local/share/applications/
7.4 Flatpak 卸载
bash
# 卸载软件
flatpak uninstall <软件包名>
# 清理未使用的运行时
flatpak uninstall --unused
# 删除所有 Flatpak 数据
rm -rf ~/.local/share/flatpak
7.5 Snap 卸载
bash
# 卸载软件
sudo snap remove <软件包名>
# 清理 Snap 缓存
sudo rm -rf /var/lib/snapd/cache/*
7.6 系统清理
清理包缓存
bash
# 使用 paccache 保留最近 3 个版本
sudo paccache -r
# 清理未安装软件包的缓存
sudo pacman -Sc
# 清理所有缓存(谨慎使用)
sudo pacman -Scc
清理孤立包
bash
# 列出孤立包
pacman -Qdt
# 卸载所有孤立包
sudo pacman -Rs $(pacman -Qdtq)
清理日志
bash
# 清理旧日志
sudo journalctl --vacuum-time=2weeks
8. 最佳实践
8.1 安装优先级
- 官方仓库: 优先使用,稳定可靠
- AUR: 官方没有时使用,注意安全
- Flatpak/Snap: 跨平台软件或需要沙箱时使用
- AppImage: 便携式使用或测试软件
- 源码编译: 最后选择,需要特殊配置时使用
8.2 安全建议
- 定期更新 : 每周运行
sudo pacman -Syu - 检查来源: 安装前验证软件来源
- 备份配置: 重要配置文件定期备份
- 使用快照: 考虑使用 Timeshift 等工具创建系统快照
8.3 维护建议
bash
# 每周维护命令
sudo pacman -Syu # 更新系统
sudo paccache -r # 清理缓存
pacman -Qdt # 检查孤立包
sudo journalctl --vacuum-time=2weeks # 清理日志
9. 故障排除
9.1 常见问题
依赖冲突
bash
# 查看冲突详情
sudo pacman -Syu 2>&1 | grep conflict
# 强制覆盖(谨慎使用)
sudo pacman -Syu --overwrite /path/to/file
密钥错误
bash
# 初始化密钥环
sudo pacman-key --init
# 刷新密钥
sudo pacman-key --populate archlinux
# 更新密钥
sudo pacman -S archlinux-keyring
数据库锁定
bash
# 删除锁文件(确保没有 pacman 进程运行)
sudo rm /var/lib/pacman/db.lck
部分更新问题
bash
# 强制同步数据库
sudo pacman -Syyu
9.2 AUR 问题
构建失败
bash
# 更新系统
sudo pacman -Syu
# 清理构建缓存
makepkg -c
# 检查依赖
makepkg -s
签名验证失败
bash
# 导入缺失的密钥
gpg --recv-keys <KEY_ID>
9.3 性能优化
并行编译
编辑 /etc/makepkg.conf:
bash
# 设置并行编译线程数
MAKEFLAGS="-j$(nproc)"
优化编译标志
bash
# 针对当前 CPU 优化
CFLAGS="-march=native -O2"
CXXFLAGS="$CFLAGS"
10. 附录:CC-Switch 安装示例
10.1 通过 pacman 安装(推荐)
bash
# 添加 archlinuxcn 仓库(如果尚未添加)
sudo nano /etc/pacman.conf
# 在文件末尾添加:
# [archlinuxcn]
# Server = https://repo.archlinuxcn.org/$arch
# 导入密钥
sudo pacman -S archlinuxcn-keyring
# 安装 cc-switch
sudo pacman -S cc-switch
# 卸载
sudo pacman -Rns cc-switch
10.2 通过 AppImage 安装
bash
# 下载 x86_64 版本
wget https://github.com/user/repo/releases/download/v3.16.0/CC-Switch-v3.16.0-Linux-x86_64.AppImage
# 安装到用户目录
mkdir -p ~/.local/bin
cp CC-Switch-v3.16.0-Linux-x86_64.AppImage ~/.local/bin/cc-switch.AppImage
chmod +x ~/.local/bin/cc-switch.AppImage
# 创建符号链接
ln -s ~/.local/bin/cc-switch.AppImage ~/.local/bin/cc-switch
# 创建桌面文件
cat > ~/.local/share/applications/cc-switch.desktop << EOF
[Desktop Entry]
Name=CC-Switch
Comment=All-in-One assistant tool for Claude Code, Codex, OpenCode, openclaw & Gemini CLI
Exec=/home/$USER/.local/bin/cc-switch.AppImage
Icon=utilities-terminal
Terminal=false
Type=Application
Categories=Development;Utility;
EOF
# 更新桌面数据库
update-desktop-database ~/.local/share/applications/
# 卸载
rm ~/.local/bin/cc-switch.AppImage
rm ~/.local/bin/cc-switch
rm ~/.local/share/applications/cc-switch.desktop
update-desktop-database ~/.local/share/applications/
10.3 对比
| 方面 | pacman | AppImage |
|---|---|---|
| 版本 | v3.15.0 | v3.16.0 |
| 依赖 | 系统依赖 | 自包含 |
| 更新 | 自动 | 手动 |
| 权限 | 需要 sudo | 用户权限 |
| 位置 | 系统目录 | 用户目录 |
| 集成 | 完全集成 | 需要手动配置 |
参考资源
最后更新:2026年6月1日