This article was last updated on <span id="expire-date"></span> days ago, the information described in the article may be outdated.
写在前面
更新完毕
2023-01-10:根据台式机的安装过程修改和更新更多细节以符合 2023-01-01 镜像安装的过程,增添更多配置过程。本篇博客介绍的安装过程没有使用 arch-install-scripts。
在考研的时候我就在思考,我到底为什么写博客。如果仅仅是展示自己的知识的话,那么我想懂得人并不会有多细看我的博客,而不懂的人也很有可能看不懂。
在又一次折腾完我的 Arch 之后,我明白了,我写博客的意义,就是在自己忘掉已经学过的东西之前,将他们梳理出来,做一个备忘。
这是一篇详详细细记录安装 Arch,KDE 并完整个性化的博客。我会一直更新直到描述完全为止。
准备工作
首先你需要做好启动盘,ISO 通过 官方 的磁力或者种子或者直链下载很快,推荐使用 Ventoy 制作,将 ISO 放入安装好的 U盘 即可
然后进入 BIOS 修改你的启动顺序,把 USB 启动放到第一位。可能还需要关闭 security boot。
我的机器是 UEFI 启动,非 UEFI 的请自行判断
安装过程
以下步骤绝大部分参考了 来自知乎的教程 ,并在安装过程中根据实际情况进行了修改
关闭烦人的 beep
每次我 tab 不好都会来一声。关掉!一定要关掉!
1 | rmmod pcspkr |
连接网络
首先需要给网卡上电
1 | rfkill unblock all |
然后需要开启 DHCP
服务,以及域名解析服务
1 | systemctl start dhcpcd |
有线网络
如果是通过网线或者手机 USB 共享的网络,此时已经连接上网络了,检验命令如下
1 | ping www.baidu.com -c 5 |
无线网络
使用 iwd 连接网络
1 | iwctl # 进入 iwd 的命令行 |
以下命令是在 iwctl 中使用的
1 | device list # 查看你的网卡有哪些,我的是 wlan0 |
更新系统时间
1 | timedatectl set-ntp true |
我这里显示的是世界时。显示时间不对没关系,不影响安装。
磁盘分区
首先要搞清楚在哪一块磁盘上安装
1 | lsblk |
然后使用 fdisk 进行分区
1 | fdisk /dev/nvme0n1 # nvme0n1 是我的磁盘名称,请替换为上面 lsblk 显示的结果 |
tips: fdisk 使用字节计算大小,将 G 换算为 字节时要乘 1024*2048
详细分区及格式化步骤略过,仅提一句 swap 分区的格式化
1 | mkswap /path/to/swap # 格式化 |
挂载分区
1 | mount /path/to/root /mnt # 挂载 root 分区 |
安装必需软件包
顺便把一会要用的都给装了
1 | pacstrap /mnt base linux linux-firmware vim iwd dhcpcd |
生成 fstab
1 | genfstab -U /mnt >> /mnt/etc/fstab |
如果要为 home 分区 (btrfs 格式) 启用透明压缩,编辑 /mnt/etc/fstab
文件并在 /home
的配置行修改,在下列配置的最后添加 compress=zstd
选项。
1 | rw,relatime,ssd,space_cache,subvolid=5,subvol=/,compress=zstd |
进入安装的系统
1 | arch-chroot /mnt |
设置时区
1 | ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime |
将硬件时钟调整为与目前的时钟一致
1 | hwclock --systohc |
本地化设置
注意不是个性化
- 编辑 /etc/locale.gen 并将 en_US.UTF-8 和 zh_CN.UTF-8 取消注释
- 执行 locale-gen 命令生成 locale
- 创建 /etc/locale.conf 并添加变量 LANG
1 | LANG=en_US.UTF-8 |
最好不要设置为中文的 locale,会导致终端乱码
网络设置
- 创建 /etc/hostname 并为你的电脑命名
- 配置 /etc/hosts ,内容如下
1 | 127.0.0.1 localhost |
设置 root 密码
执行 passwd 即可
1 | passwd |
安装 GRUB 引导
1 | pacman -S grub efibootmgr |
grub 可以安装主题将难看的黑白界面换掉,个性化会提到
将 grub 安装到系统
1 | grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=ArchLinux |
生成配置文件
1 | grub-mkconfig -o /boot/grub/grub.cfg |
准备重启
无线网络
首先配置 iwd
1 | # 编辑文件 /etc/iwd/main.conf,并加入下面两行内容 |
然后启用与网络相关的服务
1 | # 启用 systemd-resolved 服务 |
登陆
用户名为 root,密码为刚刚设置的密码。
连接网络
步骤同开头的步骤,这里略过
图形界面的安装
安装显示服务器 xorg
1 | pacman -S org |
安装显卡驱动
1 | pacman -Ss xf86-video # 查看都有哪些驱动 |
安装桌面环境,我选择 KDE 的 plasma,美化效果一级棒
arch 仓库里有两个组
- plasma-meta,这个包会将所有 plasma 桌面用到的东西都给你装上,不过我不太喜欢,因为有一些包我用不到,就白白浪费空间 (我的 root 分区只给了 20G)。
- plasma-desktop,这个是最小化安装,也就是能跑起来图形界面,但是各种其他组件需要自己安装
我安装的是 plasma-desktop,以及下列其他一些组件
- plasma-pa:KDE 的音频管理组件
- plasma-nm:KDE 的网络管理器,使用 wpa_supplicant 做后端,也就是说安装完成以后之前装的 iwd 可以删掉了
- powerdevil 和 acpid:电源管理,没有它我不能调节笔记本的屏幕亮度
- bluez:蓝牙管理
- kscreen:屏幕管理,调节分辨率和缩放的。
- khotkeys:快捷键
- konsole:KDE 的终端模拟器。
1 | pacman -S plasma-desktop plasma-pa plasma-nm powerdevil acpid bluez kscreen khotkeys konsole |
安装显示管理器,sddm比较好看,还可以换主题
1 | pacman -S sddm |
添加普通用户
以下请将 syize 换成你的用户名
root 用户是不能通过 sddm 登陆进入桌面的
由于我使用 zsh 而不是 bash,需要先安装 zsh
1 | pacman -S zsh |
zsh 可以通过 oh-my-zsh 进行美化
创建用户组
1 | groupadd syize |
创建用户
1 | useradd -m -g syize -s /usr/bin/zsh syize |
设置普通用户设置密码
1 | passwd syize |
赋予 sudo 权限
1 | pacman -S sudo # 安装 sudo 包 |
编辑 /etc/sudoers 并加入下面的内容
1 | # 需要在 root ALL=(ALL) ALL 下面一行插入 |
vim 的话需要用 :w! 强制保存
安装输入法 fcitx5
1 | pacman -S fcitx5 fcitx5-chinese-addons fcitx5-gtk fcitx5-qt fcitx5-configtool fcitx5-pinyin-zhwiki fcitx5-table-extra |
配置环境变量
这些东西可以先跳过,在你启动到图形界面以后复制粘贴
1 | vim /etc/environment |
加入下面的内容
1 | GTK_IM_MODULE=fcitx |
安装字体
1 | pacman -S ttf-dejavu # 英文字体 |
重启
到目前为止就装的差不多了,重启即可进入桌面了
由于不再使用 iwd,可以将其删除,并将 NetworkManager 设置开机启动
1 | sudo pacman -Rs iwd |
个性化
浏览器
没有浏览器,你们怎么看我的教程
仓库里没有我喜爱的 chrome,可以先安装 firefox 凑活用一下
1 | sudo pacman -S firefox firefox-i18n-zh-cn |
中文输入法
没有输入法,你们怎么给我评论
由于之前安装过了 fcitx5,直接在 系统设置->区域设置 里面就能找到输入法设置,键盘配置如图
如果你前面没有配置环境变量,需要配置一下
1 | sudo vim /etc/environment |
加入下面的内容
1 | GTK_IM_MODULE=fcitx |
emoji
为了能打出流汗黄豆,我们需要安装 emoji 字体
1 | sudo pacman -S noto-fonts-emoji # emoji |
还需要配置一下 emoji 让其正常显示。编辑 /etc/fonts/conf.d/75-noto-color-emoji.conf,加入下面的内容
1 |
|
zsh 个性化
默认的 zsh 很丑,需要 oh-my-zsh 来 给它整容
网络上的教程是需要自己 curl 脚本安装,幸运的是我们有 archlinuxcn 仓库
首先确认一下自己的 localtime 是否正常。某张姓人士被我带的又趟了一遍坑后得到的教训
1 | sudo timedatectl status |
如果不对,去系统设置里面更改一下时区,等系统时间正常后进行下面的操作。
编辑 /etc/pacman.conf 并加入下面三行来添加仓库
1 | # Arch Linux CN |
还需到导入 GPG 的 key 才行
1 | sudo pacman -S archlinuxcn-keyring |
更新,并安装 oh-my-zsh-git 和 git
1 | sudo pacman -Sy && sudo pacman -S oh-my-zsh-git git |
使用 oh-my-zsh 的 zshrc 替换原来的 .zshrc
1 | cp /usr/share/oh-my-zsh/zshrc ~/.zshrc |
如果你有重要的设置请注意保存
oh-my-zsh 默认的主题其实比较好看了,但是我更喜欢 amuse
编辑 ~/.zshrc,将 theme 改为 amuse
1 | ZSH_THEME="amuse" |
执行下面的命令看一看效果吧
1 | source ~/.zshrc |
zsh 插件
语法高亮
可以提示你敲的命令是否正确。根据官方安装方式
可能需要科学上网
1 | sudo git clone https://github.com/zsh-users/zsh-syntax-highlighting.git /usr/share/oh-my-zsh/custom/plugins/zsh-syntax-highlighting |
编辑 ~/.zshrc 在 plugin 里面添加进去
1 | plugins=( |
补全建议
以淡色字体显示,根据最近敲击的命令对命令进行建议,减少重复敲键盘次数
1 | sudo git clone https://github.com/zsh-users/zsh-autosuggestions /usr/share/oh-my-zsh/custom/plugins/zsh-autosuggestions |
添加进 .zshrc
1 | plugins=( |
最后效果图
KDE 部件
按照上面的流程下来的话就已经有比较多的小部件了,但是没有我想要的便利贴。安装下面的包获得便利贴和更多的部件
1 | sudo pacman -S kwidgetsaddons kdeplasma-addons |
还有一些监控系统系统信息的比如网络速度,内存使用情况等。
便利贴没有半透明的效果,稍微有点格格不入
spectacle 是 kde 的截图工具
1 | sudo pacman -S spectacle |
Variety
Variety 可以自动切换壁纸,选择一些你喜欢的照片,然后让它定时更换。作为老虚荣玩家 (泪目),当然是虚荣美美的英雄皮肤高清原图了
1 | sudo pacman -S variety |
更换鼠标
bibata-cursor-theme 包含多个可以更换的鼠标皮肤
1 | sudo pacman -S bibata-cursor-theme |
sddm 主题更换
默认的蓝色登录界面太丑了,KDE Store 的 Sugar Dark for SDDM 看起来非常的优雅,并且我将后面的壁纸换成了 梅兰妮 万圣节🎃皮肤,颜色非常搭。
想要从系统设置里直接更改 sddm 的登录界面,你需要安装 kcm 包
1 | sudo pacman -S sddm-kcm |
不过对于我来说让系统设置下太慢了,我还是手动下载安装的好
- 去 KDE Store 下载主题包
- 解压到 /usr/share/sddm/themes
1 | sudo -zxvf sugar-dark.tar.gz -C /usr/share/sddm/themes |
如果你不想用默认的壁纸,准备一个 2400*1600 的 jpg 图片,替换掉 /usr/share/sddm/themes/suger-dark 下的Background.jpg
之后就可以在系统设置里面更改了。注销重新登录就可以看到效果了
grub 主题更换
我一直用的是 dracula 的主题 。他们的网站上还有很多用于其他应用的主题,强烈推荐。不过似乎 Libreoffice 的主题不能用,好像也没人修
- 下载文件压缩包并解压:地址
- 将文件夹放入 /usr/share/grub/themes/
- 修改 /etc/default/grub 中的主题,改为如下 (应该是在 47 行左右)
1 | GRUB_THEME="/usr/share/grub/themes/dracula/theme.txt" |
- 重新生成 grub 配置文件
1 | sudo grub-mkconfig -o /boot/grub/grub.cfg |
如果你觉得字体过小,则需要重新设置一下 grub 的分辨率。例如我的电脑 grub 推荐 2560x1600,但是我改小到 1280x960 字体才正常大小
- 查看支持的分辨率选项。在 grub 界面按 c 键进入命令模式,输入 videoinfo 查看可用分辨率。
- 挑一个小的,编辑 /etc/default/grub,并更改如下
1 | # 分辨率改为你自己的,注意中间的 "x" 是小写字母 x |
- 重新生成配置文件
1 | sudo grub-mkconfig -o /boot/grub/grub.cfg |
- 重启查看效果
dnsmasq 安装
1 | sudo pacman -S dnsmasq |
停用 systemd-resolved
并启用 dnsmasq
。
1 | sudo systemctl disable --now systemd-resolved |
NetworkManager
会修改 /etc/resolv.conf
,但是我们想要其里面的内容保持固定,因此需要额外配置 NetworkManager
。编辑 /etc/NetworkManager/NetworkManager.conf
并添加以下内容:
1 | [main] |
然后重启 NetworkManager
。
1 | sudo systemctl restart NetworkManager |
编辑 /etc/dnsmasq.conf
,取消注释修改以下配置:
1 | strict-order |
创建日志文件夹和配置文件文件夹
1 | sudo mkdir -p /var/log/dnsmasq |
Github
上有用于 dnsmasq
的 特殊配置文件,我选用了其中三个:
- adblock-for-dnsmasq.conf
- bogus-nxdomain.china.conf
- google.china.conf
将文件下载放置到目录 /etc/dnsmasq.d
下即可。
编辑 /etc/resolv.conf
,修改 nameserver
地址如下:
1 | nameserver 127.0.0.1 |
为了防止文件被修改,修改其权限
1 | sudo chattr +i /etc/resolv.conf |
最后重启 dnsmasq
1 | sudo systemctl restart dnsmasq |
安装 bind
包,里面有 dig
命令
1 | sudo pacman -S bind |
然后运行下列命令检验 dnsmasq
是否工作正常
1 | dig www.baidu.com |
只要 SERVER 显示为 127.0.0.1 即表明 dnsmasq
工作正常。
aria2 安装-1
1 | sudo pacman -S aria2 |
aria2 只是一个命令行程序,github 上有许多好用的前端。我选择了 AriaNg,并决定安装 nginx 来将其部署在本地。
nginx 安装
1 | sudo pacman -S nginx |
然后编辑 /etc/nginx/nginx.conf
,在第31行下添加如下配置
1 | types_hash_max_size 2048; |
include 配置使得 nginx 可以读取 /etc/nginx/conf.d
目录下的所有配置文件。编写 AriaNg 的配置文件。
1 | server { |
重启 nginx
,将下载的 AriaNg 网页文件放置在上面 root 对应的路径下即可。为了能使对应的域名被解析到本地,需要在 dnsmasq
上添加记录。在 /etc/dnsmasq.d
下新建一个文件并添加如下配置使对应域名被解析到本地
1 | address=/aria2.syize.local/127.0.0.1 |
重启 dnsmasq
服务,打开浏览器输入 http://aria2.syize.local,即可看到 AriaNg 的界面。
aria2 安装-2
前面我们只安装了 aria2
,现在我们需要编写其配置文件进行配置,我懒得啰嗦直接把我自己的配置贴上来了。在 ~/.config/aria2/
下编写配置文件 aria2.conf
1 | ## 文件保存设置 ## |
然后编写 systemd
配置文件。创建目录 ~/.config/systemd/user
,编写文件 ~/.config/systemd/user/aria2.service
1 | [Unit] |
创建 aria2 的文件
1 | touch ~/.config/aria2/aria2.session |
其启动服务,并打开 AriaNg 查看是否能够连接成功
请注意在 RPC 设置页面填入正确的密钥
1 | systemctl --user start aria2 |
照片和视频备份
PhotoPrism
PhotoPrism官方手册只有docker的安装方式,但是我不太喜欢docker,所以摸索了直接安装的方法。
AUR中有打包好的包,可以直接安装。
1 | yay -S aur/photoprism |
需要注意选择适合自己电脑的photoprism-tensorflow
版本。
PhotoPrism的默认配置文件位于/etc/photoprism/defaults.yml
,在里面可以设置额外配置文件的位置。修改里面的内容如下,将媒体地址改到/home/photoprism
下。
你可能需要手动添加一下用户以及创建对应的目录。
1 | AssetsPath: /usr/share/photoprism |
并将在/var/lib/photoprism
下的所有文件复制到新的目录下
1 | sudo cp /var/lib/photoprism/* /home/photoprism |
编辑配置文件/home/photoprism/config/options.yml
,修改更多配置
1 | AdminUser: "管理员名称" |
DatabaseDriver
是数据库类型,我使用的是mysql
DatabaseServer
是数据库地址,mysql
的对应地址设置为localhost:3306
DatabasePassword
是数据库账户的密码,数据库的名称默认为photoprism
IncludeSchedule
是定时索引任务,"0 */3 * * *"
代表每三个小时更新一次索引,以更新新的图片。
你需要手动创建一下对应的数据库
设置好以后启动对应服务即可
1 | sudo systemctl enable --now photoprism |
Author: Syize
Permalink: https://blog.syize.cn/2021/12/28/install-arch-and-kde/
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Syizeのblog!
Comments