Arch Linux 软件安装完全指南

本指南详细介绍 Arch Linux 系统中安装软件的各种方法,包括官方仓库、AUR、AppImage、Flatpak、Snap 以及源码编译。

目录

  1. 官方仓库 (pacman)
  2. AUR (Arch User Repository)
  3. AppImage
  4. Flatpak
  5. Snap
  6. 源码编译
  7. 卸载与清理
  8. 最佳实践
  9. 故障排除
  10. [附录: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 安全注意事项

  1. 检查 PKGBUILD: 安装前务必检查 PKGBUILD 内容
  2. 查看评论: 阅读 AUR 页面上的用户评论
  3. 验证来源: 确保软件来源可信
  4. 定期更新: 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 注意事项

  1. 依赖管理: 需要手动安装所有依赖
  2. 更新困难: 需要手动下载新版本重新编译
  3. 冲突风险: 可能与系统包管理器冲突
  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 安装优先级

  1. 官方仓库: 优先使用,稳定可靠
  2. AUR: 官方没有时使用,注意安全
  3. Flatpak/Snap: 跨平台软件或需要沙箱时使用
  4. AppImage: 便携式使用或测试软件
  5. 源码编译: 最后选择,需要特殊配置时使用

8.2 安全建议

  1. 定期更新 : 每周运行 sudo pacman -Syu
  2. 检查来源: 安装前验证软件来源
  3. 备份配置: 重要配置文件定期备份
  4. 使用快照: 考虑使用 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日

相关推荐
沉迷学习 日益消瘦2 小时前
10-Gateway API
运维·kubernetes·gateway
网络安全零基础教程2 小时前
网络安全春招面试避坑与复盘指南
linux·网络·安全·web安全·面试·职场和发展
智购科技智能售货柜2 小时前
无人售货机连不上服务器?MQTT 频繁掉线排查全流程~YH
运维·服务器
扛枪的书生2 小时前
TigerVNC 安装流程
linux
心念枕惊2 小时前
Docker--Docker Swarm集群
运维·docker·容器
Mortalbreeze2 小时前
深入 Linux Socket 编程:端口号、网络字节序与 struct sockaddr 详解
linux·服务器·网络·c++
難釋懷2 小时前
Nginx-proxy缓存断点续传缓存 range
运维·nginx·缓存
躺柒3 小时前
读半导体简史08大型机
linux·服务器·c语言·数据库·unix·ibm
井川廊咏3 小时前
【总集篇】Linux | 如何创建一个 home 目录在 /data 磁盘的 sudo 用户(补档)
linux·运维·服务器