【系统安装】Arch Linux 安装指引
Arch Linux 安装指引
摘要
前提: 本文所称安装是指通过具有UEFI引导的主板在cpu为x86架构的计算机上进行的安装,且是安装第二系统(即已经有ESP分区)。 描述: 本文所写安装步骤,是笔者在自己的机器上的实操记录,供新手安装Arch Linux系统所用。 参考: 官方文档、网络、bilibili视频、deepseek。特别是 bilibili视频 和 deepseek 注意: 以>bash:符号开头的部分,是可直接在bash(命令行)下运行的,需要仔细阅读。 作者: Luohuan;2025.6;Email: feibinglh_83@foxmail.com
1 安装前的准备工作
1.1 制作安装盘
1.1.1 从官方网站下载ISO镜像
官方下载网页:https://archlinux.org/download
需要找到其中的China部分,从某个镜像下载。建议根据自身情况,从较快的镜像下载。
我是从清华源下载的,版本号为archlinux-2025.06.01-x86_64.iso。因为我的计算机是x86结构的。
1.1.2 制作启动U盘
使用rufus工具制作启动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引导系统
当出现【root@archiso:~#】的引导提示符时表示引导系统已经加载完成,内存中Linux引导系统的root用红色进行了标识。 注意:这个引导系统与U盘已经没有关联了,所有的文件都是加载在内存中的。也就是说你对这个系统本身所做的任何改动在断电后都不会得到任何保存。
2 基本系统的安装
所谓基本系统的安装,是指将Arch Linux系统(不含桌面)以手动交互方式逐步安装在硬盘上的过程,最终以命令行界面(tty)显示。
2.1 验证引导系统
现在的安装系统,设置得都比较人性化,下述验证步骤大多可以跳过,不过还是推荐对其进行验证。
2.1.1 验证启动模式
>bash: ls /sys/firmware/efi/efivars
# 若该目录存在则是UEFI模式,不存在则是BIOS模式。
2.1.2 验证网络连通性
>bash: ping baidu.com
# 如果连通,会回显相关连接情况。如果没有连通,或者需要从wifi连通,请自行网补。
2.1.3 更新系统时钟
>bash: timedatectl set-ntp true
# 此时使用的还是UTC时间,更新这个是便于和服务器同步,而不会出现时间匹配问题。
# 更新后可用[date]命令查看当前时间,UTC时间加上8小时就是北京时间。
2.2 配置引导系统
对引导系统而言,实际上只需要配置pacman。即配置两个文件,一个是【/etc/pacman.conf】,一个是【/etc/pacman.d/mirrorlist】。 pacman是Arch Linux的包管理器,相当与手机的应用市场,用来完成系统和应用软件的下载与安装。 注意: 由于包服务器大多在国外,而国内连接国外服务器比较慢或者受限,因此需要尽量用国内的源。
>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/archlinux/$repo/os/$arch
Server = https://mirrors.cloud.tensent.com/archlinux/$repo/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/archlinux/$repo/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分区或叫做ESP);根分区(主分区):用来安装Arch inux系统的分区,属于文件分区。文件格式可以是ext4、btrfs、xfs等,参见linux文件系统的格式交换分区:用来进行数据交换的分区,通常内存较小时是需要的,具体大小依据实际需求而定。我设置的是4GB。如果内存大,那么也可以不设置交换分区。
注意:如果Linux是第一系统,那么三个分区都要创建;如果是第二系统,那么引导分区不用创建。内存较大也可不安排交换分区,但还是推荐安排。
很多工具都可以用来创建磁盘分区比如fdisk就可以,但推荐使用cfdisk,这个工具直观、简洁、好用。
>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: 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: 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分钟左右。
这里也可以安装另一种内核,即由社区维护的linux-zen内核。用如下命令替换上面的命令即可 pacstrap /mnt base linux-zen linux-zen-headers linux-firmware base-devel vim networkmanager
提示: 最新的 linux-firmware 应该分为了很多块,用户可以根据自己的机型,选择安装。当然也可以都装。参见Arch Linux官方网页。
完成上面的步骤后,Arch Linux系统的文件部分就已经安装好了(安装在了sda8这个磁盘分区上),剩下的就是配置系统引导和对新系统进行一些配置。
2.6 生成fstab文件
fstab(File system table),是linux系统中定义启动时挂载的核心配置文件。 它的作用是在系统启动时自动挂载指定的文件系统,或在手动执行mount -a时,按规则挂载。
>bash: genfstab -U /mnt >> /mnt/etc/fstab
# 生成fstab文件,生成后可用命令【cat /mnt/etc/fstab】查看其内容
如果有其他挂载需求,这一步也可以在所有挂载项配置好后再进行。
2.7 Chroot到新系统
前面我们所用的都是加载到内存的引导系统,其命令提示符为【root@archiso:~#】其中root是红色的,这个命令提示符号所用的系统为内存中的引导系统。 现在我们已经安装了新系统,其已经安装在引导系统的【/mnt】目录下(实际是sda8上),接下来就要进入到这个系统中,相当于将引导系统权力交给我刚刚安装的系统。
>bash: arch-chroot /mnt
# 执行这个命令后就进入到了我们新安装的Arch Linux系统
注意: 执行此命令后,提示符改变为【root@archiso:/#】其中root是灰色的。其行为与用root账户登录到新系统的行为相似。
2.8 对新系统进行配置
这一小结都是在【root@archiso:/#】这个新系统提示符下工作的,也就用新系统的root权限操作。此时的根目录实际就是硬盘分区sda8。
2.8.1 设置时区
>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: vim /etc/locale.gen
# 用vim编辑器,编辑/etc/locale.gen文件,【将其中en_US.UTF-8 UTF-8这行前面的注释符号#去掉】。
# 这个locale.gen是系统本地化配置文件,里面有很多选项,具体情况请自行网补。
>bash: vim /etc/locale.conf
# 用vim编辑器,编辑/etc/locale.conf文件。【将内容改为LANG=en_US.UTF-8】
# 这个文件是不存在的,此处是创建。
>bash: locale-gen
# 迭代locale.gen中的内容,生成本地化配置
2.8.3 网络配置
>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: systemctl enable NetworkManager
# 注意命令参数的大小写
2.8.5 用户管理
>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: pacman -S sudo dhcpcd openssh wpa_supplicant dialog
# sudo是一定要安装的,用来让普通用户进入sudo权限。
# 其余的是否需要安装,或者是什么意思,或者还是否要装其他东西,请自行网补。
2.9 安装新系统的引导程序
实际上现在的新系统已经配置好了,且其数据实体已经在硬盘(sda8)上了。但是如何让电脑主板在启动时识别到该系统还需要安装引导程序。这些也是在【root@archiso:/#】即新系统提示符下完成的。
>bash: pacman -S grub efibootmgr os-prober
# 安装必要的引导工具(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: 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: 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: sudo pacman -S xf86-video-intel
# 因为我只有intel集成显卡,因此安装的这个。如果你有不同显卡请网补如何安装其驱动。
# (如果是inter或AMD的集成显卡,可以跳过。独立显卡,自行网补安装)
3.1.3 安装桌面环境
>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: sudo pacman -Syyu
# Arch Linux采用的滚动更新模式,这就是滚动更新。(当然有可能出现滚挂的情况,概率较小)
3.2.2 添加Aur支持(可选但推荐)
也可以在tty环境下就把这个事情做了。
>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的下载AUR中的内容,是基于github中一个专门的社区库的,具体的情况可以网补。
>bash: sudo pacman -Sy archlinuxcn-keyring
# 由于Arch Linux要求所有的软件包必须经过PGP签名验证,这句命令就提供了受信任的密钥,确保安装的软件包是合法的。否则安装的软件包会因为得不到信任而被拒绝。
# 注意:此处可能需要等待一段时间,稍微有点慢。
>bash: sudo pacman -S yay
# 安装支持Aur下载的包管理器yay。安装成功后,输入[yay --version]能查看到具体版本,就表明已经安装好了。
3.2.3 安装字体
主要是支持简体中文的字体,有了中文字体才能正常显示中文。
>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: 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】仅此一行
做完前面的步骤后,需要进入设置图形界面,逐次选择如下选项,最终将语言设置为中文
点选【Region & Language】(区域和语言)Language(语言)-> 点击Modify(修改)Change Language(更改语言)-> 更改为 简体中文。
设置完成后重启,就可以正常看到中文了。
3.2.5 安装中文输入法(难点)
中文输入法采用【fcitx5 + rime(中州韵)】的解决方案。当然可以有很多解决方案,但这个我安装过(可行),其他的没试过。
>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: 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: 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: 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(交互式选择)。yay -S 包名 --noconfirm 不询问确认直接安装安装 AUR 包❌ 不支持yay -S 包名pacman 无法直接安装 AUR 包,需手动下载编译或借助 AUR 助手(如 yay)。更新系统sudo pacman -Syuyay -Syuyay -Syu 会同时更新 官方包 + AUR 包,而 pacman 仅更新官方包。仅更新 AUR 包❌ 不支持yay -Syua仅升级已安装的 AUR 包。搜索包pacman -Ss 关键词yay 关键词 或yay -Ss 关键词yay 同时搜索官方仓库和 AUR。搜索已安装的包pacman -Qs 关键词yay -Qs 关键词功能相同。查看包信息pacman -Qi 包名(本地) pacman -Si 包名(远程)yay -Qi 包名(本地) yay -Si 包名(远程)yay 可同时查询 AUR 包信息。删除包sudo pacman -R 包名yay -R 包名yay 会处理 AUR 包的依赖清理。清理缓存sudo pacman -Sc(谨慎使用 -Scc)yay -Scyay 额外提供 -Yc 清理孤儿依赖。清理孤儿依赖`sudo pacman -Qdtqpacman -Rns -`(此处用了管道命令)yay -Yc手动安装本地包sudo pacman -U 包.pkg.tar.zstyay -U 包.pkg.tar.zst功能相同。列出已安装的 AUR 包❌ 不支持yay -Qm列出所有手动安装的包(通常是 AUR 包)。
重要目录:
pacman缓存目录:/var/cache/pacman/pkg/;主要用于存储下载的软件包文件(.pkg.tar.zst 格式)。它的核心作用是优化软件包管理和系统维护效率。
pacman数据库目录:/var/lib/pacman/;用于存储系统软件包的元数据、状态信息和同步数据。它的作用类似于一个“软件包信息仓库”,直接影响 pacman 的包管理操作(如安装、更新、查询等)。
yay的构建目录: ~/.cache/yay/;yay(AUR 助手)的默认构建目录,主要用于存储从 AUR(Arch User Repository)下载的软件包源码、构建文件以及编译生成的包。
其 他:
获取文件列表:例如pacman -Ql firefox 会从 /var/lib/pacman/local/firefox-*/files 获取文件列表。文件检查已安装文件是否被修改或损坏(如 pacman -Qk)。
理 解:至于各种Linux打包方式,比如红帽系的rpm、debian系的deb、Arch系的.pkg.tar.zst,从理论上说都可以相互转化。
之所以要用打包的方式,而不是直接用二进制文件形式(编译好的应用程序),我认为可能主要还是遵循着Linux的设计哲学之一 —— 可读性。
二进制文件,相比与程序包,体积会大很多,好处是可以直接运行。(比如后面我从官网上下载的微信,就是一个直接的可执行程序)
5 常用软件的安装与配置
没有软件支撑的系统,是无意义的系统。虽然通过前面的安装,已经在桌面环境中安装了很多基础应用。但是要想满足基本的办公需求还远远不够。下面这些软件,都是我平时比较喜欢用的,或者说是在Linux平台上的平替。在这些软件的安装中我也踩过无数个坑。
整体而言,Arch Linux的软件安装是比较友好的,至少我认为比CentOS的感觉要好。Wayland + KDE Plasma的桌面环境感觉也不错。
下面是几个常用软件的安装和配置方法:
软件安装命令下载地址说明chromiumsudo pacman -S chromiumpacman官方库我非常喜欢的浏览器google-chrome的开源版本。typorayay -S typora-free-cnAUR软件库0.11.18-2历史旧版本,中国下载地址构建。 主要用来编辑和浏览markdown文件。日常够用,但对流程图等的支持相对新版本,较弱。wps-officeyay -S wps-office-cnAUR软件库要完全汉化需要安装wps-office-mui-zh-cn包,安装完主程序会有提示。安装这个包有可能出错,可从yay的构建目录中找到编译好的.zst包,通过pacman -U直接安装。weChat直接下载二进制文件https://linux.weixin.qq.com/微信,下载x86的AppImage,直接运行即可Alger Music Player直接下载二进制文件https://github.com/algerkong/AlgerMusicPlayer音乐播放器类似网易云音乐,下载x86的AppImage,直接运行即可
6 中文输入法的注入
虽然我们已经通过fcitx + rime的方法安装了中文输入法,安装后其在系统自带的各种程序中都可以用。比如文本编辑器kate、命令行工具konsole。但是在自己安装的应用中国往往不可用,比如前面安装的4款。
之所以要把这个问题提来作为专门的一章,是因为在这个问题上我遇到过千奇百怪的情况。下面的几种解决方法,我都用过,至少解决了我遇到的问题。
6.1 命令行环境变量注入法
比如typora,如果直接启动,就不能使用中文输入法。因此我从命令行启动,用env注入一些环境变量,那么就可以使用中文输入法了。
>bash: env GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx XMODIFIERS=@im=fcitx typora
# 这几个环境变量的意思是说几个不同的框架GTK、QT等都使用fcitx作为中间输入层
6.2 更改.desktop配置注入法
6.1的方法每次运行程序都要注入,非常麻烦。对桌面应用,就是在/usr/share/applications目录中有.desktop配置文件的应用。那么可以修改其中的Exec=的配置来实现。其原理是桌面应用启动时会调用.desktop中的配置。
比如typora.desktop中是本来是这样的
[Desktop Entry]
Name=Typora
GenericName=Markdown Editor
Exec=typora %U
Icon=typora
Type=Application
StartupNotify=true
Categories=Office;WordProcessor;
MimeType=text/markdown;text/x-markdown;
将Exec=开头的行,修改为
[Desktop Entry]
Name=Typora
GenericName=Markdown Editor
Exec=env GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx XMODIFIERS=@im=fcitx typora %U
Icon=typora
Type=Application
StartupNotify=true
Categories=Office;WordProcessor;
MimeType=text/markdown;text/x-markdown;
重新启动typora就可以输入中文了。
微信这种直接AppImage的应用,可以仿照上面的格式创建.destop文件,然后就会在【开始】菜单的【应用】中找到微信了,还可以配置图标,也可以使用中文输入法了。
这种方法的好处是,一次配置,全程使用。不足是每个应用都要配置,而且是针对桌面应用。
6.3 全局变量注入法
上面两种方法的缺点是一应用一配置。经过反复搜索试验,得出了一种行之有效的全局变量配置方法。
这种方法,就是给当前用户配置环境变量
在~/.config目录中创建environment.d这个目录,而后创建一个名为im.conf的文件,并在其中编辑一些配置内容。
>bash: mkdir -p ~/.config/environment.d
# 如果已经有上述目录了可跳过
>bash: vim ~/.config/environment.d/im.conf
# 有就追加,没有就创建
# 输入(追加)如下内容
#----------------------------------
GTK_IM_MODULE=fcitx5
QT_IM_MODULE=fcitx5
XMODIFIERS=@im=fcitx5
#----------------------------------
# 当然也可以试试将fcitx5,更改为fcitx。
生效方式:重启会话(注销后重新登录)。原理:systemd 会将这些变量注入到所有用户进程(包括 Plasma 和 Wayland 应用)。
注意:理论上,只要进行了6.3的配置,那么所有的应用都能够使用中文输入法。但是,Linux的版本众多,桌面框架也众多,很多应用可能有自己的内在配置,依然可能会有不能使用中文输入法的情况。如果遇到了请邮件探讨。
后记
Arch Linux在安装上确实比较需要功底,但只有手动安装过这个系统之后,才真正加深了我对Linux系统的认识。 以前傻瓜式的安装CentOS和Ubuntu完全没有任何体验。 只有Arch Linux才让我体验到了Linux中某些优长的哲学思想。另外其应用软件也还比较丰富,能满足日常需求。现在看来,计算机本身实际上是非常机械的,而人们的聪明才智才是浇灌出硬件底座与软件大厦的核心。 国产操作系统一直很难,我想很大原因是国外已经积累了很多的劳动成果,后发者若完全另起炉灶委实太难。 希望华为的微内核鸿蒙操作系统,能在未来开花结果。
参考文献:
【残酷难度】最全Arch Linux安装教程——打造真正属于你的操作系统(在基本系统安装上很有参考价值)Archlinux 保姆级教程(安装、源、汉化、输入法、yay)(在桌面图形化安装配置上很有参考价值)deepseek问答。deepseek真的很强大,只要你问得好,能解决大部分问题。不过人还是决定性因素,要注意AI幻像问题。网络搜索的各种文章官方文献
