安装桌面环境前的准备
适用范围:已完成基础 Arch Linux 安装,并准备以普通用户配置桌面环境的系统。
执行方式:本文不是无条件的线性脚本。带有“可选”的章节需要根据硬件和使用需求选择;显卡、休眠和第三方仓库部分不要直接套用示例值。
仓库当前未提供“一键配置桌面环境”脚本。请按本文步骤逐项执行,并在每一步确认命令结果。
设置全局默认文本编辑器
通过 EDITOR 环境变量设置默认编辑器。如果不设置的话有些程序会默认调用 vi 编辑器。Arch 默认是没有安装 vi 的,会报错。
sudo pacman -S --needed vim
sudo vim /etc/environment
EDITOR=vim
# 如果你使用neovim的话填入nvim,nano填入nano
由于是全局变量,需要 exit 注销后重新登录才能生效。
exit
创建普通用户
很多软件会拒绝在 root 权限下运行,所以普通用户是必须的。
新建用户
useradd -mG wheel 你的用户名-m代表创建用户的时候创建home目录。补充:如果需要明确指定 Bash,可以另执行:
useradd -m -G wheel -s /bin/bash 你的用户名-G代表设置组。设置密码
passwd 你的用户名可选:取消多次输错密码后的锁定时间
这步牺牲安全性以提高日用体验和软件兼容
vim /etc/security/faillock.conf把
deny = 3改成deny = 0
不建议关闭登录失败锁定。除非明确理解安全影响,否则不要执行本节;该配置会降低安全性。
编辑权限
visudo此时编辑的文件本体是
/etc/sudoers,visudo是在有安全机制的情况下进行编辑。搜索
wheel,取消注释。%wheel ALL=(ALL:ALL) ALL可选:配置
pacman免密默认保留 sudo 密码验证。只有在单用户、可信设备上明确接受安全代价时,才考虑启用本节配置。
visudo -f /etc/sudoers.d/10-pacman-nopasswd%wheel ALL=(ALL:ALL) NOPASSWD: /usr/bin/pacman如果你要给其他命令配置免密可以以逗号隔开
/usr/bin/pacman, /usr/bin/systemctl保存后修改权限
chmod 440 /etc/sudoers.d/10-pacman-nopasswd
退出 root 使用普通用户登录
exit接下来需要管理员权限运行的命令要加上
sudo。
配置国内镜像源
在使用arch linux进行安装更新时,国内网络环境特别缓慢,甚至无法完成。此时建议更新arch linux的mirrorlists,添加国内的镜像源,这样可以大大加快更新速度
备份mirrorlist配置:
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup
编辑 /etc/pacman.d/mirrorlist 添加如下国内源(也可以只使用国内源):
sudo vim /etc/pacman.d/mirrorlist
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
Server = http://mirrors.163.com/archlinux/$repo/os/$arch
Server = http://mirrors.aliyun.com/archlinux/$repo/os/$arch
补充:如果对应镜像提供 HTTPS,可优先使用以下地址:
Server = https://mirrors.163.com/archlinux/$repo/os/$arch
Server = https://mirrors.aliyun.com/archlinux/$repo/os/$arch
安装密钥并更新(保留原文命令):
sudo pacman -S archlinux-keying
sudo pacman -Suy
原文命令保留用于对照;
archlinux-keying可能不是当前 Arch 的有效包名,-Suy也不应作为长期的部分升级方式。
补充:当前 Arch 常用的密钥环包名是 archlinux-keyring,完整升级命令为:
sudo pacman -S --needed archlinux-keyring
sudo pacman -Syu
开启32位源
运行 Windows 软件通常需要各种 32 位的依赖,想玩游戏的话 Steam 客户端也在 32 位源里,所以建议开启 32 位源。
编辑 pacman 配置文件
sudo vim /etc/pacman.conf去掉
[multilib]两行的注释。[multilib] Include = /etc/pacman.d/mirrorlist同步数据库
sudo pacman -Syu
archlinuxcn 源(可选)
archlinuxcn 源是第三方软件仓库,不是基础 Arch 安装的必要条件。启用前应确认仓库地址和密钥来源;只需要 AUR 软件时,可以跳过本节。
编辑 pacman 配置文件添加 archlinuxcn 源
sudo vim /etc/pacman.conf文件底部写入
[archlinuxcn] Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch Server = https://mirrors.hit.edu.cn/archlinuxcn/$arch Server = https://repo.huaweicloud.com/archlinuxcn/$arch不用全写,一般用 ustc(中科大)和 tuna(清华)的镜像即可。如果你在海外的话可以直接使用官方源:
Server = https://repo.archlinuxcn.org/$arch同步数据库并安装 archlinuxcn 密钥
sudo pacman -Sy archlinuxcn-keyring sudo pacman -Syu补充:不要长期执行部分升级。确认当前 archlinuxcn 文档提供的密钥初始化流程后,可以使用完整升级命令:
sudo pacman -Syu archlinuxcn-keyring如果密钥尚未建立信任关系,先不要继续执行仓库安装命令。
AUR助手
AUR 是 Arch 最强大的软件仓库。这个仓库里通常只存放软件的PKGBUILD,可以将其理解为一个自动化安装脚本。通常的流程是从 AUR 上拉取PKGBUILD,然后makepkg -si打包软件,再用pacman -U安装,但这太过繁琐。通过社区做好的 AUR 助手可以更方便地从 AUR 安装软件。archlinuxcn 上有编译好的版本,可以直接从 archlinuxcn 安装。
sudo pacman -S --needed base-devel yay paru
补充:yay 和 paru 请选择一个,并按照对应项目的官方说明安装;不要同时安装两个,也不要以 root 身份构建 AUR 包。只安装编译依赖时,可以使用:
sudo pacman -S --needed base-devel
字体
通常安装以下字体包:
sudo pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji ttf-jetbrains-mono-nerd
noto-fonts包含大部分外文字体。
noto-fonts-cjk最常用的中日韩字体,但是因为同时包含中日韩,所以不正确设置系统字体的话会出现中文以日文的字体显示之类问题。需要细调字体回退规则时,应先确认当前系统的 fontconfig 配置,再单独添加规则。
noto-fonts-emojiemoji 表情。
ttf-jetbrains-mono-nerd最常用的等宽字体,用于终端字体显示。nerd代表包含了字符字体。
音视频固件和服务
让音频设备和屏幕分享正常工作。
可选:安装音视频固件
sudo pacman -S --needed sof-firmware alsa-ucm-conf alsa-firmwaresof-firmware为现代音视频设备提供固件,通常装这个就可以了。alsa-ucm-conf提供必要的配置文件。alsa-firmware为不常见或者较旧的设备提供固件。安装音视频服务
sudo pacman -S --needed pipewire wireplumber pipewire-pulse pipewire-alsa pipewire-jackpipewire是由 Red Hat 主导开发的现代音视频服务。wireplumber会智能管理 pipewire。pipewire-pulse、pipewire-alsa、pipewire-jack分别为 PulseAudio、ALSA、JACK 提供兼容。启用服务
systemctl --user enable --now pipewire pipewire-pulse wireplumber
性能模式切换
power-profiles-daemon 是各个桌面环境通用的性能模式切换服务,有三个档位,performance 性能、balance 平衡、powersave 省电。
安装
sudo pacman -S power-profiles-daemon启动服务
sudo systemctl enable --now power-profiles-daemon
这个已经足够了,不建议折腾
tlp或者auto-cpufreq,功耗上不会有明显区别。
蓝牙
安装
sudo pacman -S --needed bluez启动服务
sudo systemctl enable --now bluetooth
Flatpak软件
Flatpak 是全发行版通用的打包方式。依赖和插件比较多的软件 Flatpak 版本通常更好用,比如 OBS 和 Easyeffects。如果 AUR 和仓库的软件都不太正常,也可以尝试 Flatpak 版本。
安装
flatpaksudo pacman -S flatpak补充:首次使用 Flatpak 时添加 Flathub:
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo可选:更换国内源
上交大
sudo flatpak remote-modify flathub --url=https://mirror.sjtu.edu.cn/flathub中科大
sudo flatpak remote-modify flathub --url=https://mirrors.ustc.edu.cn/flathub
可选:休眠到硬盘
如果需要休眠到硬盘功能,且之前设置了硬盘 swap 的话。
查看 /etc/mkinitcpio.conf 这个文件的 HOOKS 部分:
grep ^HOOKS /etc/mkinitcpio.conf
grep ^HOOKS筛选以HOOKS开头的行。
如果是
HOOKS(base systemd ...)的话无须手动配置。如果是
HOOKS(base udev ...)的话:添加 hook
sudo vim /etc/mkinitcpio.conf在
HOOKS()内添加resume,注意需要添加在udev的后面。重新生成 initramfs
sudo mkinitcpio -P重启电脑
reboot使用命令进行休眠
systemctl hibernate
自动安装驱动
chwd 不是所有 Arch 环境的默认组件。只有在确认当前发行版提供该工具时才使用本节;标准 Arch 环境可以跳过本节并按硬件手动选择驱动。
利用 chwd 可以自动安装驱动。
yay -S chwd-arch-git
chwd -a
其他命令
chwd --list可以列出可用的配置,每一个配置代表了一系列驱动包和后续修改。chwd -r 配置名称删除已经安装的配置。更多选项可以用
chwd -h查看。
手动安装驱动
安装显卡驱动
NVIDIA
在 CodeNames · freedesktop.org 这个页面搜索自己的显卡,看看对应的 family 和架构是什么。然后在 NVIDIA - ArchWiki 这个页面查找对应的包名。如果找不到你的显卡名字,可以看和你的显卡相同架构的显卡对应的 family 是什么。例如 MX205,表上没有,但通过它是 Pasca 架构这个信息可以知道它属于
NV160 family。驱动包名会随显卡代际、内核和 Arch 仓库变化。先运行
lspci -k和uname -r,再按当前 NVIDIA - ArchWiki 选择nvidia-open、nvidia或对应的 legacy/DKMS 包。不要直接复制固定的580xx包名。不同的内核对应的包后缀不同。使用
linux-zen等自定义内核时,只有在当前显卡和 ArchWiki 方案要求的情况下才选择 DKMS 包,并同时安装对应的内核头文件。nvidia-open是内核模块开源的驱动,不是完全的开源驱动。nvidia-utils通常作为驱动包的依赖自动被安装,但是某些自行打包的发行版可能没有正确处理依赖关系导致需要自己安装。检查头文件
DKMS 编译内核模块需要内核的头文件。
sudo pacman -S --needed linux-headerslinux替换为自己的内核,比如 zen 内核的头文件包名是linux-zen-headers。安装驱动
sudo pacman -S nvidia-open-dkms nvidia-utils lib32-nvidia-utils以上命令只适用于当前显卡和内核明确支持
nvidia-open-dkms的情况。执行前先确认硬件代际、内核头文件和包来源。
AMD
A 卡通常不需要自己安装驱动,已经由
linux-firmware和mesa提供。可以安装一下 Vulkan 驱动。sudo pacman -S --needed mesa lib32-mesa xf86-video-amdgpu vulkan-radeon lib32-vulkan-radeonIntel
sudo pacman -S --needed mesa lib32-mesa vulkan-intel lib32-vulkan-intel
硬件编解码
NVIDIA
由
nvidia-utils和libva-nvidia-driver提供。sudo pacman -S libva-nvidia-driverAMD
自带。
Intel
Broadwell 往后的 Intel 显卡装
intel-media-driver,旧的装libva-intel-driver。
可选:OpenCL 驱动
参考:archwiki General-purpose computing on graphics processing units
先安装统一调用
sudo pacman -S ocl-icd
然后安装运行时
NVIDIA
装
opencl-nvidialib32-opencl-nvidia这两个包。580xx 和 470xx 的用户安装对应的版本,例如:opencl-nvidia-580xxlib32-opencl-nvidia-580xx。AMD
新卡装
rocm-opencl-runtime。早于 Vega 架构的卡需要额外配置ROC_ENABLE_PRE_VEGA=1环境变量。不兼容的话可以使用 mesa
sudo pacman -S opencl-mesa lib32-opencl-mesa安装后需要配置环境变量
RUSTICL_ENABLE=radeonsiIntel
Gen12 以后的安装
intel-compute-runtime,旧的安装intel-compute-runtime-legacyCPU
装
intel-opencl-runtime;不兼容的话装基于 LLVM 的pocl。
重启激活显卡驱动
reboot
可选:验证硬件编解码
sudo pacman -S libva-utils使用 libva-utils 提供的 vainfo 进行验证。
vainfo多显卡用户可以使用 LIBVA_DRIVER_NAME 环境变量指定要使用的显卡:
LIBVA_DRIVER_NAME=nvidia vainfo