Arch Linux 设置

增强 Arch Linux 易用性的设置

在安装好 Arch 后,需要进行一些设置,才能更方便地使用它。这里记录了对 Arch 的常用更改。

用户设置

允许 root 远程登录

修改配置文件/etc/ssh/sshd_config,允许 root 远程登录。

1
PermitRootLogin yes

开启 sshd 服务

1
2
systemctl enable sshd.service
systemctl start sshd.service

创建新用户,并赋予权限

请使用新的用户名替换$new_user

1
2
useradd $new_user -G wheel -m
passwd $new_user

修改/etc/sudoers,将下面代码添加到文件末尾,使wheel组的用户执行sudo时不用输入密码。

1
%wheel ALL=(ALL:ALL) NOPASSWD: ALL

设置 Pacman

Pacman 是 Arch 上一个方便易用程序包管理器,我们可以用它来下载、安装、更新和删除电脑上的软件。相当于 iOS 上 AppStore 或者安卓上的应用市场,但对于 Arch 而言,Pacman 还承担了对系统软件进行更新的重任。Arch 滚动更新的特 点很大一部分是由 Pacman 体现的。

更改源

由于国内特殊的网络环境,想要流畅地下载软件并不容易,因此我们应该将 Pacman 的软件仓库地址更改成国内便于访问的 地址,这里我们使用阿里云镜像地址。

编辑 /etc/pacman.d/mirrorlist,将如下代码添加到所有其它镜像服务器地址之前。

1
Server = https://mirrors.aliyun.com/archlinux/$repo/os/$arch

添加 multilib

multilib 包含了32位软件和库,可以用来在64位的机器上构建32位的应用。

/etc/pacman.conf 文件里把下面两行代码解除注释。

1
2
[multilib]
Include = /etc/pacman.d/mirrorlist

添加 archlinuxcn

archlinuxcn 是一个非官方的软件仓库,由中文社区维护。里面包含了软件、工具、字体等。

将如下代码添加到 /etc/pacman.conf

1
2
[archlinuxcn]
Server = https://mirrors.aliyun.com/archlinuxcn/$arch

安装钥匙串 archlinuxcn-keyring

1
sudo pacman -S archlinuxcn-keyring

如果在安装 archlinuxcn-keyring 过程中发生error: archlinuxcn-keyring: signature from "Jiachen YANG (Arch Linux Packager Signing Key) <farseerfc@archlinux.org>" is marginal trust错误,需要对签名添加信任后再安装钥匙串:

1
sudo pacman-key --lsign-key "farseerfc@archlinux.org" && sudo pacman -S archlinuxcn-keyring

安装 yay

yay 是一个非常好用的软件,可以用来安装 Arch 用户仓库里的包。

安装 yay

1
2
sudo pacman -Sy
sudo pacman -S yay

安装字体

安装编程字体以及相关的字体图标

1
sudo pacman -S ttf-jetbrains-mono-nerd noto-fonts

安装中文字体

1
sudo pacman -S noto-fonts-cjk

安装编程语言

C#

1
sudo pacman -S dotnet-sdk aspnet-runtime

Rust

使用 pacman 来安装 rustup。要记住,通用这种方式来安装 rustup,rustup 的自我更新不会生效,需要通过 pacman 来升级 rustup。

1
sudo pacman -S rustup

为了安装工具链 toolchain,我们得告诉 rustup 使用哪种版本,可以在 stablenightly 之间做出选择。

1
rustup default stable

安装NVIDIA显卡驱动

如果使用的显卡是Turing或者更新的架构,使用以下命令安装驱动

1
sudo pacman -S nvidia-open nvidia-settings lib32-nvidia-utils

老一点的显卡使用这个命令

1
sudo pacman -S nvidia nvidia-settings lib32-nvidia-utils

为了避免官方驱动和开源驱动起冲突,我们需要编辑/etc/mkinitcpio.conf,删除以HOOKS开头的那一行里的kms,然后运行命令sudo mkinitcpio -P。 使用nvidia-smi查看驱动是否安装成功。

安装图形界面

Hyprland

如果我们使用的是NVIDIA显卡,我们应该先安装NVIDIA驱动。

1
sudo pacman -S hyprland

tofi, waybar, alacritty, hyprpaper

1
sudo pacman -S tofi waybar alacritty hyprpaper

安装命令行工具

fd, fzf, ripgrep, zip, unzip, git-delt

1
sudo pacman -S fd fzf ripgrep zip unzip git-delt

tldr

1
2
sudo pacman -S tldr
tldr --update

starship, bat, btop, alacritty

1
sudo pacman -S starship bat btop alacritty

zsh

1
2
sudo pacman -S zsh
chsh -s /bin/zsh

yazi

Yazi (means “duck”) is a terminal file manager written in Rust, based on non-blocking async I/O. It aims to provide an efficient, user-friendly, and customizable file management experience.

1
sudo pacman -S yazi ffmpegthumbnailer p7zip jq poppler fd ripgrep fzf zoxide imagemagick

安装中文输入法

1
sudo pacman -S fctix5-im fctix5-chinese-addons

剪贴板

wl-clipboard 是 wayland 显示服务器下的剪贴板工具,安装即可正常使用。cliphist是 wayland 下剪贴板历史管理工具。

1
sudo pacman -S wl-clipboard

声音

我的台式机安装完ArchLinux后没有声音声音,排查发现是因为默认声音输出设备没有设置正确

使用aplay -l查看所有的音频设备。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
❯ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 3: HDMI 0 [M27P20]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 7: HDMI 1 [OLEDG48P5]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: Audio [USB Audio], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: Audio [USB Audio], device 1: USB Audio [USB Audio #1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: Audio [USB Audio], device 2: USB Audio [USB Audio #2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: Audio [USB Audio], device 3: USB Audio [USB Audio #3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 3: Audio_1 [UGREEN CM564 USB Audio], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

这里我打算使用OLEDG48P5设备播放音频,这个设备是我的显示器上的音频输出。新建并编辑文件.asoundrc,其中1为上面输出的声卡ID,7为设备ID。

1
2
3
defaults.pcm.card 1;
defaults.pcm.device 7;
defaults.ctl.card 1;

安装alsa-utils,使用alsamixer来设置声音。

1
sudo pacman -S alsa-utils

防火墙

1
2
3
4
sudo pacman -S ufw
sudo systemctl enable ufw
sudo systemctl start ufw
sudo ufw enable

KDE Plasma

最小安装,再按需要安装其它应用。

1
sudo pacman -S plasma-desktop
  • kwallet-pam 不用每次询问密码
  • kscreen 多屏幕
  • bluedevil 蓝牙
  • plasma-pa 声音
  • plasma-nm 网络
  • plasma-firewall 防火墙
  • plasma-systemmonitor 系统监控
  • kinfocenter 系统信息
  • dolphin 文件浏览器

使用下面的命令启动Plasma

1
dbus-run-session startplasma-wayland

登录管理器

SDDM 是 KDE Plasma 推荐的登录管理器。

1
2
sudo pacman -S sddm
sudo systemctl enable sddm

安装KVM

安装一堆软件

1
sudo pacman -S qemu-full virt-manager virt-viewer dnsmasq bridge-utils libguestfs ebtables vde2 openbsd-netcat

启动 libvirtd 服务

1
2
sudo systemctl enable libvirtd.service
sudo systemctl start libvirtd.service

编辑 /etc/libvirt/libvirtd.conf,取消下面两行的注释

1
2
unix_sock_group = "libvirt"
unix_sock_rw_perms = "0770"

将当前用户加入到libvirt用户组里

1
sudo usermod -aG libvirt $USER

代理

1
2
3
sudo pacman -S daed
sudo systemctl start daed
sudo systemctl enable daed

然后在浏览器中打开链接