Arch Linux 维护与配置

本文最后更新于:2023年10月22日 凌晨

为什么要玩Arch Linux?这是我近期加入一些社团后一个主要的矛盾,因为对比Ubuntu,Debian,CentOS等Linux系统来说,各类场景覆盖还不够用吗?直到我深入了解才发现主要是几个原因,这些点也是说服了我去试试这个系统:

  1. 超强的可定制性,让我们更好的学习与理解Linux,并且拥有对系统极致的掌控
  2. Arch Linux中的软件丰富度并不比另外几款系统来的差,能够达到的能力上限很高很便捷
  3. 没有企业参与,又社区推动更加纯粹极客

I. PVE下安装

可以参考这篇文章

II. MacbookPro 安装ArchLInux 系统

可以参考这篇文章

III. 系统配置

更新系统

1
pacman -Syyu

安装帮助文档

1
pacman -S man

安装基础编译工具

1
pacman -S base-devel

安装oh-my-zsh

1
2
3
pacman -S zsh
pacman -S git
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

安装编辑器,用于一会儿visudo要用到的编辑器:

1
2
pacman -S neovim
ln -s /usr/bin/nvim /usr/bin/vi

添加用户

1
2
3
useradd -m -G wheel jacks
passwd jacks
visudo

配置远程ssh访问

1
2
3
sudo pacman -S openssh
sudo systemctl enable sshd
sudo systemctl start sshd

然后在 ~/.ssh/authrozied_keys中添加你的public key,然后禁用密码登录。

AUR软件管理,可以用yay来辅助安装,直接参照里面的教程就行了。

TLP用于电量管理(非常有用,会根据CPU等特性进行省电管理):

1
2
3
sudo pacman -S tlp
sudo systemctl enable tlp.service
sudo systemctl start tlp.service

火狐浏览器

1
sudo pacman -S firefox

yay

1
2
3
4
pacmakkkkkkkn -S --needed git base-devel
gitkk clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si

中文字体

1
2
3
4
5
6
sudo pacman -S wqy-zenhei
# chinese
yay -S wqy-bitmapfont wqy-microhei wqy-microhei-lite wqy-zenhei adobe-source-han-mono-cn-fonts adobe-source-han-sans-cn-fonts adobe-source-han-serif-cn-fonts

yay -S noto-fonts
yay -S nerd-fonts

终端

1
yay -S st

IV. 桌面服务

Deepin

图形服务:

1
sudo pacman -S xorg xorg-server

deepin主题

1
sudo pacman -S deepin

需要注意的是deepin中的pdfium与deepin-extra中的render是有一些冲突的,建议是先安装deepin,如上面的指令,安装以后,然后再通过sudo pacman -S deepin-extra然后选择一些要安装的,比如我就选择了terminal啊之类的安装了。(下面的截图里面的21我独立安装了,其他是后面再进行了一次性安装)

确定是否已经有lightdm服务

1
pacman -Qs lightdm

比如启用deepin:

1
sudo nvim /etc/lightdm/lightdm.conf

然后编辑下一面这行greeter-session:

启用桌面

1
2
3
4
5
6
7
由于前面我们启用了gdm,这里我们使用的是另外一个display-manager,我们可以先把gdm关闭了
sudo systemctl stop gdm.service
sudo systemctl diable gdm.service

# 启用并切换到deepin桌面
sudo systemctl enable lightdm
sudo systemctl start lightdm

KDE Plasma

可参考该教程

1
pacman -S xorg plasma plasma-wayland-session kde-applications

安装后启用服务

1
2
systemctl enable sddm.service
systemctl enable NetworkManager.service

关机

1
shutdown now

开机,进入系统。

DWM

https://suckless.org

比较方便是每次都是通过源码直接编译,在config.h中配置

安装

1
2
3
git clone git://suckless.org/dwm
cd dwm
sudo make install

在安装完后,我们会发现自动已经在/usr/share/xsessions目录下添加了dwm.desktop文件了。

我这里以我使用sddm管理登录引导+原本是kde plasma的session为案例。需要切换到dwm,可以在开机的时候选择,当然也可以参考SDDM说明直接修改/etc/sddm.conf.d/kde_settings.conf文件:

1
2
3
[Autologin]
Relogin=false
Session=dwm

改用xinit来启动

不过这里要留意,由于后面我们有较多需要做开机启动执行的,为了方便,这里推荐使用xinit-xsession,这样就可以后面直接在~/.xinitrc中配置被执行,具体如下:

  1. 先安装x11xinit-xsession

    1
    2
    sudo pacman -S xorg xorg-xinit
    yay -S xinit-xsession
  2. 将sddm的session配置为xinit的,打开/etc/sddm.conf.d/kde_settings.conf文件,编辑为:

1
2
3
[Autologin]
Relogin=false
Session=xinitrc
  1. ~/.xinitrc的最后加上:
    1
    exec dwm

其他不变,重启即可生效。

更新,直接更新仓库,重新执行sudo make install编译安装后就完成更新,重启下dwm就生效了。

终端 alacritty

安装

1
sudo pacman -S alacritty

可以在这里找到关于alacritty 的配色 alacritty themes

/usr/share/doc/alacritty/example/alacritty.yml 拷贝一份到~/.config/alacritty/alacritty.yml 作为配置文件,然后找到自己喜欢的配色,修改里面关于color的部分

修改dwm中启动终端的快捷键

1
static const char *termcmd[] = {"alacritty", NULL};

程序启动器 rofi

关于rofi的主题,可以在这个网站中找到 rofi theme

1
2
3
git clone --depth=1 https://github.com/adi1090x/rofi.git
cd rofi
./setup.sh # 安装

这里以misc里面的simple_kde主题为例, 在~/.config/rofi/launcher/misc中有launcher.sh ,找到最后一行

1
rofi -no-lazy-grab -show drun -modi drun -theme $dir/"$theme"

将这行写入dwm的配置文件中,修改最后的路径为对应的.rasi文件

1
static const char *dmenucmd[] = { "rofi", "-no-lazy-grab","-show", "drun", "-modi", "drun", "-theme", "~/.config/rofi/launchers/misc/kde_simplemenu.rasi", NULL };

状态 slstatus

参考官方教程:

1
2
3
git clone https://git.suckless.org/slstatus
cd slstatus
sudo make install

音箱声音

1
sudo modprobe snd-pcm-oss

其他补丁

V. 各类配置

neovim

详细建议直接看这个教程,避免有更新: README.md
各类详细使用说明参考官网

1
2
3
yay -S nerd-fonts
sudo pacman -S python python-pip
sudo pacman -S python-pynvim python-lsp-server python-pylsp-mypy python-pylint

安装node

1
2
3
4
5
6
# Ref: https://johnpapa.net/node-and-npm-without-sudo/
wget https://nodejs.org/dist/v14.15.4/node-v14.15.4-linux-x64.tar.xz

mkdir -p $HOME/tools
# extract node to a custom directory, the directory should exist.
tar xvf node-v14.15.4-linux-x64.tar.xz --directory=$HOME/tools

.zshrc中添加

1
export PATH="$HOME/tools/node-v14.15.4-linux-x64/bin:$PATH"

然后继续各类安装

1
2
3
4
5
6
7
8
9
source ~/.zshrc
npm install -g vim-language-server
yay -S ctag ripgrep
yay -S flake8 vlint
yay -S neovim
mkdir ~/.config/nvim
cd ~/.config/nvim
git clone --depth=1 https://github.com/jdhao/nvim-config.git .
nvim

dwm配置

可以考虑直接用这个作者的dwm配置:

1
2
3
4
5
mkdir ~/code
cd ~/code
git clone git@github.com:theniceboy/dwm.git
cd dwm
sudo make clean install

st配置

可以考虑直接用这个作者的dwm配置:

1
2
3
4
5
mkdir ~/code
cd ~/code
git clone git@github.com:theniceboy/st.git
cd st
sudo make clean install

其他配置

V. 常见软件推荐

chrome

1
yay -s google-chrome

壁纸(feh)

1
sudo pacman -S feh

可以打开浏览器访问必应首页,把它的每日一图下载下来当壁纸。图片下载完成以后,进入图片下载目录,使用feh --bg-fill <filename>将该图片设置为壁纸。下次登录的时候,设置好的壁纸又会失效,需要在~/.xinitrc当中添加一行,使其在启动图形界面后自动设置壁纸。

1
~/.fehbg &

中文输入法(fcitx5)

1
sudo pacman -S fcitx5-im fcitx5-chinese-addons fcitx5-qt fcitx5-gtk

使用vim打开~/.bash_profile,在最后添上:

1
2
3
4
5
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export INPUT_METHOD=fcitx
export SDL_IM_MODULE=fcitx

然后在~/.xinitrc当中的exec dwm的前面加上:

1
fcitx5 -d &

加上了这句,才会在启动X窗口时在后台运行fcitx5

打开fcitx5-configtool,将Pinyin添加到输入法列表当中,可能需要去除仅显示当前语言的勾选项(Only Show Current Language)。然后还可以调整激活输入法、切换输入法的快捷方式等等。

获取更多词库和颜色主题,词库会自动应用,但是颜色主题需要在fcitx5-configtool当中配置一下才会生效:

1
sudo pacman -S fcitx5-pinyin-zhwiki fcitx5-material-color fcitx5-nord

支持vim键位的pdf阅读器

1
sudo pacman -S zathura

VNC远程桌面访问

参考官方教程

1
yay -S tigerVNC

注意防火墙配置,我们以:1的session为案例:

1
sudo ufw allow from any to any port 5901 proto tcp

配置访问的密码,直接输入vncpasswd后进行设置即可,然后可以配置访问时用的用户,可以直接编辑/etc/tigervnc/vncserver.users来进行映射,如添加:1session的用户为`jacks:

1
1:jacks

配置session,这里我配置使用的是xinitrc的session,编辑~/.vnc/config添加如下:

1
2
session=xinitrc
geometry=1920x1080

启动:1session的服务:

1
sudo systemctl start vncserver@:1

此时就可以远程访问了。

VI. 常见问题处理

pacman报错

当出现failed to synchronize all databases ( unable to lock database)错误时,通常是之前安装过程中出现错误,没有有效的清理缓存,可以通过如下方式解决

1
rm -rf /var/lib/pacman/db.lck

或者是

1
pacman -Scc

写在所有分析,并且允许忙碌

1
umount -R /mnt

执行软件出现问题排查

当运行软件出现问题的时候可以通过直接执行对应指令来检查,比如:
我之前运行sudo systemctl start NetworkManager.service一直报失败原因也不清晰,后来执行了sudo /usr/bin/NetworkManager --no-daemon看到具体输出才知道原来是我之前在/etc/NetworkManager/NetworkManager.conf里面的一个配置是错误的,去掉就可以了。

如果引导出现错误,启动不了系统,可以考虑通过安装盘进入,将引导的efi挂载到/mnt中,然后执行:

1
2
sudo rm -rf /mnt/bootx64.efi
sudo cp /mnt/bootx64_original.efi /mnt/bootx64.efi

查看当前一共有哪些字体

1
fc-list

强制卸载包含被依赖的包

1
sudo pacman -Rc xxx

archlinux关闭自动休眠方法(这里mask的作用可以参考这个说明):

1
systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

如果是笔记本还要防止盖下盖子时被休眠,编辑/etc/systemd/logind.conf文件,修改下面几行:

1
2
HandleLidSwitch=ignore
IdleAction=ignore

这里需要留意的是几个关键词的定义: ignore无任何操作,poweroff关机,suspend休眠。

查看有哪些可用的桌面(session)

1
ls /usr/share/xsessions

查看是否安装了程序(如yay)

1
sudo pacman -Qs yay


Arch Linux 维护与配置
https://blog.dreamtobe.cn/arch_linux_maintain/
作者
Jacksgong
发布于
2023年10月22日
更新于
2023年10月22日
许可协议