[通告] 本论坛迁移啦~请前往位于 https://forum.archlinuxcn.org/ 的新论坛。所有帖子和参与的用户都已经迁移。
您正在访问的是原 bbs.archlinuxcn.org 的静态存档。本页面的新地址位于 https://forum.archlinuxcn.org/t/topic/14153。
页次: 1
以下内容请用typora打开
<div style="text-align: center; font-size: 48px; font-weight: bold;">
Arch Linux 安装指引
</div>
---
#### 摘要
***描述:***本文可作为Arch Linux的安装手册使用。
***参考:***官方文档、网络、bilibili视频、deepseek。特别是 **bilibili视频** 和 **deepseek**
***注意:***以**`>bash:`**符号开头的部分,是可直接在bash(命令行)下运行的,需要仔细阅读。
***作者:*** **Luohuan**;2025.6.25;**Email**: **feibinglh_83@foxmail.com**
---
## 1 安装前的准备工作
### 1.1 制作安装盘
#### 1.1.1 从官方网站下载ISO镜像
* 官方下载网页:https://archlinux.org/download
> 需要找到其中的China部分,从某个镜像下载。建议根据自身情况,从较快的镜像下载。
* 我是从[清华源](https://mirrors.tuna.tsinghua.edu.cn/ar … 025.06.01/)下载的,版本号为[archlinux-2025.06.01-x86_64.iso](https://mirrors.tuna.tsinghua.edu.cn/archlinux/iso/2025.06.01/archlinux-2025.06.01-x86_64.iso "archlinux-2025.06.01-x86_64.iso")。因为我的计算机是x86结构的。
#### 1.1.2 制作启动U盘
* 使用[rufus](http://rufus.ie/zh/)工具制作启动U盘。
> 制作过程非常简单,参考下载页说明即可。
> Arch Linux的ISO只是引导工具,因此U盘有2GB以上空间即可。
### 1.2 从U盘启动
#### 1.2.1 从U盘启动电脑
* 进入主板选项,选择(或设置)**从U盘启动**。
> 进入主板选项,通常是在启动电脑后不停点击【F12】或者【del】键(具体按键依主板而定)。
> 现在的电脑大多支持UEFI启动,而不是传统的BIOS启动。二者区别请自行网补。
#### 1.2.2 引导系统的加载
> 此处所称的引导系统,是指从U盘上直接加载到内存中的Linux系统。
> Arch Linux的ISO不同于CentOS或Ubuntu,这个ISO只包含了基本的系统和必要的工具,并没有打包各种软件,类似于WinPE的引导安装盘,具体安装文件需要额外提供。而Arch Linux是通过网络来提供的。
* 用方向键选择界面的第一项【**Arch Linux install medium (x86_64, UEFI)**】,选择后电脑会从U盘上加载Linux引导系统
> 当出现【<span style="color:red;">root</span>@archiso:~#】的引导提示符时表示引导系统已经加载完成,内存中Linux引导系统的root用红色进行了标识。
> ***注意***:这个引导系统与U盘已经没有关联了,所有的文件都是加载在内存中的。也就是说你对这个系统本身所做的任何改动在断电后都不会得到任何保存。
## 2 基本系统的安装
> 所谓基本系统的安装,是指将Arch Linux系统(不含桌面)逐步手动交互方式安装在硬盘上,最终以命令行界面(tty)显示。
### 2.1 验证引导系统
> 现在的安装系统,设置得都比较人性化,下述验证步骤大多可以跳过,不过还是**推荐对其进行验证**。
#### 2.1.1 验证启动模式
```bash
>bash: ls /sys/firmware/efi/efivars
# 若该目录存在则是UEFI模式,不存在则是BIOS模式。
```
#### 2.1.2 验证网络连通性
```bash
>bash: ping baidu.com
# 如果连通会回显相关连接情况。如果没有连通,或者需要从wifi连通,那么具体操作方式请deepseek搜索或参考文献。
```
#### 2.1.3 更新系统时钟
```bash
>bash: timedatectl set-ntp true
# 此时使用的还是UTC时间,更新这个是便于和服务器同步,而不会出现时间匹配问题。
# 更新后可用【date】命令查看当前时间,UTC时间加上8小时就是北京时间。
```
### 2.2 配置引导系统
> 对引导系统而言,实际上只需要配置pacman。即配置两个文件,一个是【/etc/pacman.conf】,一个是【/etc/pacman.d/mirrorlist】
> **pacman**是Arch Linux的包管理器,也就相当与手机的应用市场,用来完成系统和应用软件的下载。
> *由于包服务器大多在国外,而国内连接国外服务器比较慢或者受限,因此需要尽量用国内的源。*
```bash
>bash: vim /etc/pacman.conf
# 该文件,需包含如下内容(非注释的包含)
#-----------------------------------------------------
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
[multilib]
Include = /etc/pacman.d/mirrorlist
#-----------------------------------------------------
# 其中,最后一项multilib最好包含,这是安装一些32位程序的库,如果最小化安装也可以不包含。但以我的经验,最好包含。
# 实际上这三个系统核心库的源在【/etc/pacman.d/mirrorlist】这个文件中。
>bash: vim /etc/pacman.d/mirrorlist
# 将文件内容改为
#--------------------------------------------------------------------------
# China
Server = https://mirrors.aliyun.com/archlinux/$repo/os/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/ar … o/os/$arch
Server = https://mirrors.cloud.tensent.com/archl … o/os/$arch
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
Server = https://repo.huaweicloud.com/archlinux/$repo/os/$arch
Server = https://mirrors.sjtug.sjtu.edu.cn/archl … o/os/$arch
Server = http://mirrors.163.com/archlinux/$repo/os/$arch
# Sys
Server = http://mirrors.163.com/archlinux/$repo/os/$arch
Server = https://archlinux.thaller.ws/$repo/os/$arch
Server = https://at.arch.mirror.kescher.at/$repo/os/$arch
Server = https://de.arch.mirror.kescher.at/$repo/os/$arch
Server = https://mirror.theo546.fr/archlinux/$repo/os/$arch
Server = https://berlin.mirror.pkgbuild.com/$repo/os/$arch
Server = https://london.mirror.pkgbuild.com/$repo/os/$arch
Server = https://losangeles.mirror.pkgbuild.com/$repo/os/$arch
Server = https://singapore.mirror.pkgbuild.com/$repo/os/$arch
Server = https://taipei.mirror.pkgbuild.com/$repo/os/$arch
Server = https://mirror.ufscar.br/archlinux/$repo/os/$arch
Server = https://mirror.moson.org/arch/$repo/os/$arch
Server = https://al.arch.niranjan.co/$repo/os/$arch
Server = https://at.arch.niranjan.co/$repo/os/$arch
Server = https://de.arch.niranjan.co/$repo/os/$arch
Server = https://in.arch.niranjan.co/$repo/os/$arch
Server = https://nz.arch.niranjan.co/$repo/os/$arch
Server = https://ro.arch.niranjan.co/$repo/os/$arch
Server = https://tr.arch.niranjan.co/$repo/os/$arch
Server = https://us.arch.niranjan.co/$repo/os/$arch
Server = https://mirror.osbeck.com/archlinux/$repo/os/$arch
#--------------------------------------------------------------------------
# 其中China后面的几个是中国的源,我按照一个商业源一个大学源的顺序进行了交错排列。
# 第一个是阿里源,虽然 阿里源 可能不是最快的,但相对稳定,大约每秒500K的下载速度。当然你也可以根据实际情况调换源的顺序。
# Sys后面的是系统自带的一些国外源,予以保留。如果国内源都不可用部分国外源还是可用的,只是速度非常糟心。
```
### 2.3 创建磁盘分区
> 这一步,是基本系统安装的关键,需要特别仔细,防止损坏其他分区数据。
#### 2.3.1 查看磁盘分区
* 可以用【**lsblk -f**】和【**fdisk -l**】来查看磁盘分区(前者直观简洁逻辑性强,后者信息较为详细)。
> 实际上Linux下的磁盘是作为文件来安排的,这也符合其万物皆文件的哲学。
> 硬盘的设备文件都在/dev目录下。物理硬盘通常是用sd开头,第一块硬盘就是sda,第二块sdb,...
> 如果一块硬盘已经有分区,比如sda这快硬盘,有4个分区那么就分别是文件sda1,sda2,sda3,sda4,没有分区的空白空间称为“剩余空间”。
> *由于我已经有Windows系统,因此我是在剩余空间上安装的,当然你也可以选中某个你准备安装系统的分区,来重新分配空间。*
#### 2.3.2 划分磁盘空间
> 划分磁盘空间,也就是创建安装分区,安装分区一般应包含如下三个:
>
> * **引导分区**:通常是某块磁盘的第一个分区,用于电脑启动时加载启动项,文件格式必须为fat32。(我的电脑是sda1,windows安装时已经创建,也称为EFI分区);
> * **根分区(主分区)**:用来安装Arch inux系统的分区,属于文件分区。文件格式可以是ext4、btrfs、xfs等,参见[linux文件系统的格式](https://cloud.tencent.com/developer/inf … 格式-article)
> * **交换分区**:用来进行数据交换的分区,通常内存较小时是需要的,具体大小依据实际需求而定。我设置的是4GB。如果内存大,那么也可以不设置交换分区。
>
> ***注意***:如果Linux是第一系统,那么三个分区都要创建;如果是第二系统,那么引导分区不用创建。内存较大也可不安排交换分区,但还是推荐安排。
>
> 很多工具都可以用来创建磁盘分区比如【fdisk】就可以,但推荐使用【**cfdisk**】,这个工具直观、简洁、好用。
```bash
>bash: cfdisk /dev/sda
# 这条命令的意思是,用cfdisk工具操作sda硬盘
# 进入后,根据里面的选项提示操作即可,理论上都能看得懂。
# 根分区的type就选择:linux filesystem;
# swap分区的type就选择:linux swap;
# 引导分区(如果需要)的type就选择:EFI system。(因为我也没有这个需求,没有具体操作过需要创建引导分区的情况,具体情况请自行网补)
# 注意:分区选择好之后,只是预览,需要在主界面选择write才能写入,也就是正式执行了你的分区方案,而后quit退出即可。
# 我的根分区是sda8,交换分区是sda9,已有的引导分区是sda1。
>bash: mkfs.ext4 /dev/sda8
# 该命令的意思是将sda8分区格式化为ext4文件格式。
>bash: mkswap /dev/sda9
# 该命令的意思是将sda9分区初始化为交换swap分区。
>bash: swapon /dev/sda9
# 该命令的意思是立即激活指定的swap分区使其生效。
# 实际上系统重启后交换分区会失效,但是如果写入了/etc/fstab配置文件,那么就会在启动时自动生效。后面的步骤中有相关操作。
```
> 上述步骤进行完毕之后,安装Arch Linux的各种磁盘分区就已经准备完毕了。
>
> * 可以用【**swapon --show**】查看交换分区情况,用【**free -h**】查看内存和交换分区使用情况
***注意:***如果需要其他文件系统分区,可在此一并安排,以便以后对新系统的不同目录进行挂载配置。比如可以将/home文件夹挂载为一个磁盘分区,方便用户数据与系统数据的分离。
### 2.4 挂载磁盘分区
```bash
>bash: mount /dev/sda8 /mnt
# 将根分区挂载到引导系统的/mnt目录下
>bash: mkdir -p /mnt/boot/efi
# 在/mnt目录下创建/boot/efi目录(用来挂载已有的引导分区),由于前面的挂载关系实际上这个目录是创建在/dev/sda8这个分区上的
>bash: mount /dev/sda1 /mnt/boot/efi
# 将引导分区挂载到 /mnt/boot/efi下
# 注意:我的是第二系统,如果是第一系统引导分区可能应该挂载在/boot下,具体情况请自行网补。
```
### 2.5 安装Arch Linux
```bash
>bash: pacstrap /mnt base linux linux-firmware base-devel vim networkmanager
# packstrap是Arch Linux安装过程中核心系统部署工具,它的作用是将指定的软件包安装到目标目录。
# 如果是最基础的安装,只需要安装前三个包,即base linux linux-firmware;
# base-devel包有诸如gcc编译器等基础工具;
# vim是为了后面编辑文件方便;
# networkmanager则是着眼于网络连接,这个里面已经包含了dhcp服务(有线网络)因此不用在单独安装dhcpcd了,为了保险也可以单独安装。
# 上述过程所耗时间,根据下载速度的快慢而定。从阿里云安装大约花费30分钟左右。
```
完成上面的步骤后,Arch Linux系统的文件部分就已经安装好了(安装在了sda8这个磁盘分区上),剩下的就是配置系统引导和对新系统进行一些配置。
### 2.6 生成fstab文件
> **fstab**(File system table),是linux系统中定义**启动时挂载**的核心配置文件。
> 它的作用是在系统启动时自动挂载指定的文件系统,或在手动执行【**mount -a**】时,按规则挂载。
```bash
>bash: genfstab -U /mnt >> /mnt/etc/fstab
# 生成fstab文件,生成后可用命令【cat /mnt/etc/fstab】查看其内容
```
如果有其他挂载需求,这一步也可以在所有挂载项配置好后再进行。
### 2.7 Chroot到新系统
> 前面我们所用的都是加载到内存的引导系统,其命令提示符为【<span style="color:red;">root</span>@archiso:~#】其中root是红色的,这个命令提示符号所用的系统为内存中的引导系统。
> 现在我们已经安装了新系统,其在引导系统的/mnt下,接下来就要进入到这个系统中,相当于将引导系统权力交给我刚刚安装的系统。
```bash
>bash: arch-chroot /mnt
# 执行这个命令后就进入到了我们新安装的Arch Linux系统
```
***注意:***执行此命令后,提示符改变为【root@archiso:/#】其中**root是灰色的**。其行为与用root账户登录到新系统的行为相似。
### 2.8 对新系统进行配置
这一小结都是在【**root@archiso:/#**】这个新系统提示符下工作的,也就用新系统的root权限操作。此时的根目录实际就是硬盘分区sda8。
#### 2.8.1 设置时区
```bash
>bash: ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 设置时区为上海,即中国北京时间。
>bash: hwclock --systohc
# 将系统时间写入硬件时钟。hwclock(Hardware Clock);--systohc(System to Hardware Clock)
```
#### 2.8.2 设置语言
此时还没有安装中文环境,因此基础语言系统使用en_US.UTF-8即可,没有设置这个前系统默认使用的是C.UTF-8,也就是C语言默认支持的编码类型。具体这些文字编码的关系,自行网补。
```bash
>bash: vim /etc/locale.gen
# 用vim编辑器,编辑/etc/locale.gen文件,【将其中en_US.UTF-8 UTF-8这行前面的注释符号#去掉】。
# 这个locale.gen是系统本地化配置文件,里面有很多选项,具体情况请自行网补。
>bash: locale-gen
# 迭代locale.gen中的内容,生成本地化配置
>bash: vim /etc/locale.conf
# 用vim编辑器,编辑/etc/locale.conf文件。【将内容改为LANG=en_US.UTF-8】
# 这个文件是不存在的,此处是创建。
```
#### 2.8.3 网络配置
```bash
>bash: vim /etc/hostname
# 需将myhostname(你给自己的计算机取的名字)写入到这个文件中,比如我的叫feibinglh。【我就写入feibinglh】
>bash: vim /etc/hosts
# 这个配置文件主要是用来定义本地主机名与IP地址的映射关系。
# 需要将里面的内容修改为
#---------------------------------------------
127.0.0.1 localhost
::1 localhost
127.0.0.1 feibinglh.localdomain feibinglh
#---------------------------------------------
# 最后一行的IP也可以是127.0.1.1,具体这些之间的不同,请自行网补。
```
#### 2.8.4 启用NetworkManager
这个东西已经在2.5中装了,现在启用它。主要用来进行网络管理
```bash
>bash: systemctl enable NetworkManager
# 注意命令参数的大小写
```
#### 2.8.5 用户管理
```bash
>bash: passwd
# 用于设置root账户的密码。(这一步很重要)
>bash: useradd -m -G wheel username
# 创建普通用户,并加入wheel组。我的普通用户名即username为LH【useradd -m -G wheel LH】。(这一步可选,但推荐)
>bash: passwd LH
# 设置用户LH的密码。(这一步可选,但推荐)
>bash: EDITOR=vim visudo
# 用vim编辑配置文件,【需要将其中%wheel ALL=(ALL:ALL) ALL这一句前面的注释符号#去掉】。(这一步可选,但推荐)
# 其作用为,让wheel组具有sudo(超级管理员)权限。
```
#### 2.8.6 安装必要的工具
```bash
>bash: pacman -S sudo dhcpcd openssh wpa_supplicant dialog
# sudo是一定要安装的,用来让普通用户进入sudo权限。
# 其余的是否需要安装,或者是什么意思,或者还是否要装其他东西,请自行网补。
```
### 2.9 安装新系统的引导程序
实际上现在的新系统已经配置好了,且其数据实体已经在硬盘(sda8)上了。
但是如何让电脑主板在启动时识别到该系统还需要安装引导程序。
这些也是在【**root@archiso:/#**】即新系统提示符下完成的。
```bash
>bash: pacman -S grub efibootmgr os-prober
# 安装必要的引导工具。
# 其中grub是用来生成和安装引导文件的;efibootmgr可以用于管理UEFI引导文件;os-prober可以用来检测其他操作系统。
# efibootmgr的功能,我认为还是很强大的,值得好好学习。
# efibootmgr -v 可以查看UEFI的引导信息;
# efibootmgr -o 0002,0001,... 可以用来改变UEFI引导不同系统的启动顺序
# 可以用【os-prober】检查其他系统的信息。
# 关于系统引导,实际上可以作为专章,本人也在学习中。
>bash: grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ARCH
# 这条命令用来向系统引导区注入新系统的引导文件。
# 我的系统在/boot/efi/EFI(即sda1分区)中原来有boot和Microsoft两个文件夹,
# 现在多了一个叫ARCH的文件夹,里面有grubx64.efi的文件。
# --efi-directory=/boot/efi用这个,是因为我的引导分区挂载在/boot/efi,
# 如果是单系统,引导分区挂载在/boot,那么就用--efi-directory=/boot。
# ###注意###:在执行该命令前最好先对引导分区进行备份。
>bash: grub-mkconfig -o /boot/grub/grub.cfg
# 主要作用是生成grub的配置信息。具体这些配置信息代表什么意思,怎么使用请自行网补。
```
### 2.10 正式进入新系统
```bash
>bash: exit
# 退出新系统引导,即退出【root@archiso:/#】这个提示符,
# 回到原来通过iso加载到内存中的引导系统,即【root@archiso:~/】root为红色的原始引导系统下。
>bash: unmount -R /mnt
# 这具是在原始引导系统下进行的,作用是递归的解除/mnt目录下的所有挂载。
>bash: reboot
# 重启系统,重启后需进入主板设置,选择ARCH这个引导项。
```
**到此,就可以进入新安装的Arch Linux系统了,只不过这个系统还没有图形界面,是以命令行形式即多用户文本模式(tty)形式出现的。**
### 2.11 其他问题说明
#### 2.11.1 关于用wifi上网配置的问题
可以用引导系统自带的【**iwctl**】工具来进行配置。详情网补。
#### 2.11.2 关于自动安装的问题
引导系统有集成化的【**archinstall**】工具用于自动安装,只需在里面进行一些选择即可进行安装。
***注意:***如果是单一系统安装,用archinstall应该比较方便,如果是多系统那么请谨慎使用。
作者就在用自动安装时将原来的引导分区格式化了(不能引导windows了),还经过不小努力才恢复了。
## 3 桌面环境的安装与配置
> 桌面环境部分,本人也不是很熟悉。
> Linux的桌面环境有许多种选择,因为其只能算是一个应用程序。
> 此处只列出本人安装成功的**wayland + kde plasma**桌面环境,该桌面环境风格上比较类似windows,过渡比较平滑。
> 下述安装都是进入Arch Linux的tty界面(命令提示行界面),在普通用户LH下安装的。
> Linux桌面环境实际上只是一个(组)应用程序。在我看来和Windows的桌面环境还有些不同。至少没有那么孪生。
### 3.1 桌面环境安装
#### 3.1.1 安装显示服务
```bash
>bash: sudo pacman -S wayland weston
# 安装wayland显示协议。
# wayland:是一个现代的显示服务器协议,旨在替代传统的xorg(x11)。它直接与Linux内核的DRM/KMS(直接渲染管理器/内核模式设置)交互,提供更高效、安全的图形渲染界面。
# weston:是Wayland的参考实现(Reference Compositor),相当于一个极简的wayland桌面环境。(个人认为在后面安装了kde plasma的情况下可以不装)
```
#### 3.1.2 安装显卡驱动
这一步根据实际需要安装,一般Inter和AMD的核显,系统内核安装时都已经集成了驱动,不必再次安装。独立显卡,根据需要安装。具体方式请自行网补。
```bash
>bash: sudo pacman -S xf86-video-intel
# 因为我只有intel集成显卡,因此安装的这个。如果你有不同显卡请网补如何安装其驱动。
# (如果是inter或AMD的集成显卡,可以跳过。独立显卡,自行网补安装)
```
#### 3.1.3 安装桌面环境
```bash
>bash: sudo pacman -S plasma kde-applications
# 安装KDE Plasma + 基础应用
>bash: sudo pacman -S sddm
# 安装SDDM(KDE默认的显示管理器)
>bash: sudo systemctl enable sddm
# 启用sddm,这样进入系统时会自动调用sddm从而自动进入桌面环境。
# 当然你也可以不启动sddm,而是先进入tty环境,再手动启动。
# 以后也可以在桌面环境中通过命令行用【sudo systemctl disable sddm】来关闭其自动启动。这样在启动系统时就不会自动进入桌面环境,而是进入tty环境。
```
至此,桌面环境就安装好了,重启进入,就直接进入桌面登录页面了。当然还可根据需要安装其他的一些程序包,具体情况请网补。
***注意:***Plasma桌面系统默认不支持root用户登录,因此请先在tty环境下创建一个普通用户。在先前的安装步骤中我已经创建了LH这个普通用户。
### 3.2 与桌面相关的配置
**现在的桌面系统继承了先前在tty中的配置,但是那些配置都只支持英文环境,作为中国人,当然要配置为中文环境。而这些配置,我是踩了无数个坑。**
#### 3.2.1 更新系统
```bash
>bash: sudo pacman -Syyu
# Arch Linux采用的滚动更新模式,这就是滚动更新。(当然有可能出现滚挂的情况,概率较小)
```
#### 3.2.2 添加Aur支持(可选但推荐)
也可以在tty环境下就把这个事情做了。
```bash
>bash: sudo vim /etc/pacman.conf
# 在其末尾追加如下内容:
#---------------------------------------------------------------
[archlinuxcn]
SigLevel = Optional TrustedOnly
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
Server = https://mirrors.cloud.tencent.com/archlinuxcn/$arch
Server = https://repo.huaweicloud.com/archlinuxcn/$arch
Server = https://mirrors.zju.edu.cn/archlinuxcn/$arch
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
Server = https://mirrors.aliyun.com/archlinuxcn/$arch
Server = https://mirrors.cloud.tencent.com/archlinuxcn/$arch
Server = https://mirrors.sjtug.sjtu.edu.cn/archlinux-cn/$arch
#---------------------------------------------------------------
# 其主要作用是,添加pacman下载普通包的中国源;
# 而包管理器yay的下载是基于github中一个专门的社区库的,具体的情况可以网补。
>bash: sudo pacman -Sy archlinuxcn-keyring
# 由于Arch Linux要求所有的软件包必须经过PGP签名验证,这句命令就提供了受信任的密钥,确保安装的软件包是合法的。否则安装的软件包会因为得不到信任而被拒绝。
# 注意:此处可能需要等待一段时间,稍微有点慢。
>bash: sudo pacman -S yay
# 安装支持Aur下载的包管理器yay。安装成功后,输入【yay --version】能查看到具体版本,就表明已经安装好了。
```
#### 3.2.3 安装字体
主要是支持简体中文的字体,有了中文字体才能正常显示中文。
```bash
>bash: sudo pacman -S noto-fonts-cjk
# noto-fonts-cjk字体应该是google的,其对中日韩文字都支持,也是比较官方的。
# 也可以选装【noto-fonts noto-fonts-extra noto-fonts-emoji ttf-dejavu ttf-liberation】字体
# 当然也可以根据需要从网上或本地安装字体。我就从本地安装了字体,电脑城拷贝的,比如方正系列、微软系列。windows的字体和Linux的字体基本上是通用的。
# Mac系统的“萍方字体”也比较好用。
```
#### 3.2.4 语言设置
> 本来应该是区域和语言设置,不过区域已经在前面的tty界面配置过了。
> 这个语言设置和2.8.2的设置方法差不多,只不过这次是把中文配置上。
```bash
>bash: sudo vim /etc/locale.gen
# 【取消zh_CN.UTF-8 UTF-8这一行前的注释符号#】
# 这个locale.gen是系统本地化配置文件,里面有很多选项,具体情况请自行网补。
>bash: sudo locale-gen
# 迭代locale.gen中的内容,生成本地化配置
>bash: sudo vim /etc/locale.conf
# 【将里面的内容修改为LANG=zh_CN.UTF-8】仅此一行
```
* 做完前面的步骤后,需要**进入设置**图形界面,逐次选择如下选项,最终将**语言设置为中文**
1. ***点选【Region & Language】(区域和语言)***
2. ***Language(语言)-> 点击Modify(修改)***
3. ***Change Language(更改语言)-> 更改为 简体中文。***
设置完成后重启,就可以正常看到中文了。
#### 3.2.5 安装中文输入法(难点)
中文输入法采用【**fcitx5 + rime(中州韵)**】的解决方案。当然可以有很多解决方案,但这个我安装过(可行),其他的没试过。
```bash
>bash: sudo pacman -S fcitx5-im fcitx5-rime
# fcitx5-im:是fcitx5的核心框架;
# fcitx5-rime:为fctix5添加rime输入支持(提供类似中州韵的输入体验)
```
* 进入图形设置界面**启动输入法**
***设置 -> 键盘 -> 虚拟键盘 -> Fctix 5 Wayland启动器***(点击完成后就启动了fcitx框架)
(如果这一步不显示Fctix 5 Wayland启动器,那么可以运行【**sudo pacman -S fctix5**】单独安装一下框架,重复上述设置选项,一般可以解决问题)
````bash
>bash: git clone https://gitclone.com/github.com/iDvel/rime-ice.git
# 会自动克隆雾凇拼音(rime-ice)到当前目录下,即得到【./rime-ice】
>bash: cp -r ./rime-ice/* ~/.local/share/fcitx5/rime
# 复制rime-ice中的文件到rime的输入法文件夹中,这样rime就能够识别雾凇拼音(rime-ice)了。
````
* **重启fcitx5,多用鼠标点击状态栏中的键盘图标,如果还不成功那么就选择rime里面的同步和重新部署。**
**我就点了很多次都没有成功,后来重启了系统,并选择了同步和重新部署才成功。这个经验能不能复刻我不知道,以供参考。**
> fcitx5框架,我理解的是提供了一个中间层(相当于虚拟键盘),将键盘输入的东西先放到中间层,转译后再传给应用程序。
#### 3.2.6 启用Discover(可选)
**Discover**是KDE Plasma桌面环境的图形化软件中心,主要用于浏览、安装和管理应用程序。虽然它不是Arch Linux专属的(最初由 KDE 开发),但在Arch Linux(尤其是 KDE Plasma 版)中可以用来提供用户友好的软件管理体验。(Discover的程序包系统已经自带安装好了)
```bash
>bash: sudo pacman -S packagekit-qt6 packagekit appstream-qt
# 上述主要是给Discover配置必要的环境。
# 安装完成后在运行,Discover商店时,可能会提示packagekit-qt6会影响件安装依赖不完整的问题,具体情况还需网补。
```
#### 3.2.7 安装pamac(可选)
**Pamac**是Arch Linux及其衍生发行版(如 Manjaro)中的一个图形化软件包管理工具,提供了类似于Discover的功能,但拥有更友好的用户界面(GUI)。它支持:软件安装/卸载(支持 AUR、Flatpak、Snap);系统更新;软件仓库管理;依赖处理等。
```bash
bash: yay -Syu pamac-aur
# 有很多版本可选,比如pamac-all,pamac-gtk,pamac -qt。本人建议安装pamac-aur比较好。
```
* **pamac**的窗口,为【系统栏】中的【添加/删除软件】,可以进入里面的配置勾选AUR,就可以用AUR的软件支持了。
不过在打开pamac时,有时会报无法连接,可能是网络不稳定,等一会再打开一般就能连接上了。
**说明**:个人认为,在安装程序包时,首推pacman;其次yay。Discover和Pamac都是图形化的包管理工具。
## 4 pacman和yay的使用
操作系统只是连接硬件和软件的平台,而丰富的应用才是用户使用的灵魂。然而Linux上安装软件,不同的厂商有不同的打包方式,与Windows相比,Linux在应用软件的安装上门槛更高,学习曲线更陡。
| **功能** | **`pacman` 命令** | **`yay` 命令** | **说明** |
| :---------------------- | :-------------------------------------------------------- | :---------------------------------------------- | :----------------------------------------------------------- |
| **安装官方包** | `sudo pacman -S 包名` | `yay -S 包名` | `yay` 会同时搜索官方仓库和 AUR(交互式选择)。<br />`yay -S 包名 --noconfirm ` 不询问确认直接安装 |
| **安装 AUR 包** | ❌ 不支持 | `yay -S 包名` | `pacman` 无法直接安装 AUR 包,<br />需手动下载编译或借助 AUR 助手(如 `yay`)。 |
| **更新系统** | `sudo pacman -Syu` | `yay -Syu` | `yay -Syu` 会同时更新<br /> **官方包 + AUR 包**,<br />而 `pacman` 仅更新官方包。 |
| **仅更新 AUR 包** | ❌ 不支持 | `yay -Syua` | 仅升级已安装的 AUR 包。 |
| **搜索包** | `pacman -Ss 关键词` | `yay 关键词` 或<br />`yay -Ss 关键词` | `yay` 同时搜索官方仓库和 AUR。 |
| **搜索已安装的包** | `pacman -Qs 关键词` | `yay -Qs 关键词` | 功能相同。 |
| **查看包信息** | `pacman -Qi 包名`(本地)<br /> `pacman -Si 包名`(远程) | `yay -Qi 包名`(本地) <br />`yay -Si 包名`(远程) | `yay` 可同时查询 AUR 包信息。 |
| **删除包** | `sudo pacman -R 包名` | `yay -R 包名` | `yay` 会处理 AUR 包的依赖清理。 |
| **清理缓存** | `sudo pacman -Sc`<br />(谨慎使用 `-Scc`) | `yay -Sc` | `yay` 额外提供 `-Yc` 清理孤儿依赖。 |
| **清理孤儿依赖** | `sudo pacman -Qdtq|pacman -Rns -`<br />(此处用了管道命令) | `yay -Yc` | `yay` 更简洁。 |
| **手动安装本地包** | `sudo pacman -U 包.pkg.tar.zst` | `yay -U 包.pkg.tar.zst` | 功能相同。 |
| **列出已安装的 AUR 包** | ❌ 不支持 | `yay -Qm` | 列出所有手动安装的包(通常是 AUR 包)。 |
**重要目录**:
1. pacman缓存目录:`/var/cache/pacman/pkg/`;主要用于存储下载的软件包文件(.pkg.tar.zst 格式)。它的核心作用是优化软件包管理和系统维护效率。
2. pacman数据库目录:`/var/lib/pacman/`;用于存储系统软件包的元数据、状态信息和同步数据。它的作用类似于一个“软件包信息仓库”,直接影响 pacman 的包管理操作(如安装、更新、查询等)。
3. yay的构建目录: `~/.cache/yay/`;yay(AUR 助手)的默认构建目录,主要用于存储从 AUR(Arch User Repository)下载的软件包源码、构建文件以及编译生成的包。
**其 他**:
1. 获取文件列表:例如pacman -Ql firefox 会从 /var/lib/pacman/local/firefox-*/files 获取文件列表。
2. 文件检查已安装文件是否被修改或损坏(如 pacman -Qk)。
**理 解**:至于各种Linux打包方式,比如红帽系的rpm、debian系的deb、Arch系的.pkg.tar.zst,从理论上说都可以相互转化。
之所以要用打包的方式,而不是直接用二进制文件形式(编译好的应用程序),我认为可能主要还是遵循着Linux的设计哲学之一 —— 可读性。
二进制文件,相比与程序包,体积会大很多,好处是可以直接运行。(比如后面我从官网上下载的微信,就是一个直接的可执行程序)
## 5 常用软件的安装与配置
没有软件支撑的系统,是无意义的系统。虽然通过前面的安装,已经在桌面环境中安装了很多基础应用。但是要想满足基本的办公需求还远远不够。下面这些软件,都是我平时比较喜欢用的,或者说是在Linux平台上的平替。在这些软件的安装中我也踩过无数个坑。
整体而言,Arch Linux的软件安装是比较友好的,至少我认为比CentOS的感觉要好。Wayland + KDE Plasma的桌面环境感觉也不错。
**下面是几个常用软件的安装和配置方法**:
| 软件 | **安装命令** | 下载地址 | **说明** |
| :--------- | :------------------------ | :--------------------------- | :----------------------------------------------------------- |
| chromium | `sudo pacman -S chromium` | pacman官方库 | 我非常喜欢的浏览器<br />google-chrome的开源版本。 |
| typora | `yay -S typora-free-cn` | AUR软件库 | 0.11.18-2历史旧版本,中国下载地址构建。 <br />主要用来编辑和浏览markdown文件。<br />日常够用,但对流程图等的支持相对新版本,较弱。 |
| wps-office | `yay -S wps-office-cn` | AUR软件库 | 要完全汉化需要安装wps-office-mui-zh-cn包,安装<br />完主程序会有提示。<br />安装这个包有可能出错,可从yay的构建目录中找到<br />编译好的.zst包,通过`pacman -U`直接安装。 |
| weChat | 直接下载二进制文件 | https://linux.weixin.qq.com/ | 微信,下载x86的AppImage,直接运行即可 |
**说明**:上述安装的4款软件,都没有勾连中文输入法。
**解决方法**(下述方法都验证可行):
1. 运行程序时将fcitx的环境变量直接注入。
【`env GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx XMODIFIERS=@im=fcitx 可执行程序`】
2. 也可在bash文件中注入来解决,这个就相当于将命令行写入批处理。
3. 在有.desktop配置文件的应用中,修改`Exec=env GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx XMODIFIERS=@im=fcitx 应用程序`也可以解决。
微信没有这个配置,可以自己新建,然后解决。
**其 他**:
存放.desktop的文件夹有两个,系统的是`/usr/share/applications/`;用户自身的是`~/.local/share/applications/`。
如何编写.desktop文件可以网补,也可从其他编写好的.desktop文件中学习。
---
#### 后记
* Arch Linux在安装上确实比较需要功底,但只有手动安装过这个系统之后,才真正加深了我对Linux系统的认识。
以前傻瓜式的安装CentOS和Ubuntu完全没有任何体验。
只有Arch Linux才让我体验到了Linux中某些优长的哲学思想。另外其应用软件也还比较丰富,能满足日常需求。
* 现在看来,计算机本身实际上是非常机械的,而人们的聪明才智才是浇灌出硬件底座与软件大厦的核心。
国产操作系统一直很难,我想很大原因是国外已经积累了很多的劳动成果,后发者若完全另起炉灶委实太难。
希望华为的微内核鸿蒙操作系统,能在未来开花结果。
---
#### 参考文献:
1. [【残酷难度】最全Arch Linux安装教程——打造真正属于你的操作系统](https://www.bilibili.com/video/BV11J411 … ccc486cdb7)(在基本系统安装上很有参考价值)
2. [Archlinux 保姆级教程(安装、源、汉化、输入法、yay)](https://www.bilibili.com/video/BV1jys6e … ccc486cdb7)(在桌面图形化安装配置上很有参考价值)
3. deepseek问答。deepseek真的很强大,只要你问得好,能解决大部分问题。不过人还是决定性因素,要注意AI幻像问题。
4. 网络搜索的各种文章
5. 官方文献
离线
要是图文并茂该多好。
离线
多系统安装应该在开头说明。在创建分区的部分做法和Wiki上有点不一样,通常推荐把 ESP 挂载到 /boot 上而非 /boot/efi,在多启动环境下,这样做也可以简化 initramfs管理 之类的东西。如果使用 systemd-boot ,ESP 是必须挂载到 /boot 上的。我还是比较推荐 btrfs,当然这个因人而异。总是,教程做得非常细致,适合新手手把手来上手安装,感谢分享。
离线
多系统安装应该在开头说明。在创建分区的部分做法和Wiki上有点不一样,通常推荐把 ESP 挂载到 /boot 上而非 /boot/efi,在多启动环境下,这样做也可以简化 initramfs管理 之类的东西。如果使用 systemd-boot ,ESP 是必须挂载到 /boot 上的。我还是比较推荐 btrfs,当然这个因人而异。总是,教程做得非常细致,适合新手手把手来上手安装,感谢分享。
efi分区只放efi文件,这样btrfs+snapper打快照的时候连着initramfs和kernel一起,多好
离线
efi分区只放efi文件,这样btrfs+snapper打快照的时候连着initramfs和kernel一起,多好
这个也因人而异吧,/boot如果也塞进btrfs里的话grub就没法记住上一次的选项,双系统还是希望能保留上一次启动的系统的
离线
这里有份图文并茂的,包含了双系统基本安装和cinnamon桌面两篇,自己装完写的,带了点私货,不知道写的咋样(上个月按这篇在物理机上面装没遇到问题)
离线
页次: 1