前言

这篇文章看一看作是Arch Linux USB(安装篇)的后续,不过archlinux的自由度很高,每一个人都能配置出高度个人定制化的东西,所以这里也只是结合archwiki和我个人的一些配置简单介绍一下。

参考:General recommendations (简体中文)(这个页面还特地做了#中国大陆用户的推荐解决方案)

以下引文不加注释都引自General recommendations (简体中文)

系统和软件包管理

系统管理

新安装的系统只有一个超级用户,即 root。使用 root 进行日常操作是不安全的。应当创建普通用户进行日常操作,仅在管理系统时使用 root。不要在服务器上给 root 开放SSH登录权限。普通用户的创建方法请参阅 用户和用户组

用户和用户组是GNU/Linux 权限控制机制的基础。管理员通过调整用户组的成员、所有者,可以控制用户使用系统资源。

换言之,平常用普通用户,只有涉及系统管理时使用root的权限。可以用sudo命令获取临时的root权限,只要在命令前加上sudo就可以。而su命令则是以指定用户登录一个新的shell,比如su - xxx就是登录用户名为xxx的用户,而默认su -登录的就是root。使用exit退出su命令登录的用户,回到原来的shell。

服务管理:

Arch Linux 使用 systemd (简体中文) 管理系统服务。新用户有必要了解其基本使用方法。通常使用 # systemctl 命令进行系统管理,参见此文

注意,新的服务都需要用户重新设置和管理,设置哪些服务开机自启动,哪些服务在用的时候手动启动,可以减少资源浪费。

系统维护:

Arch 是滚动发行系统,软件包的更新速度很快,用户需要花些时间进行 系统维护安全页面也给出了很多加强系统安全性的建议和技巧。

微软总是催着你windows系统更新,但是Arch是自己手动更新的。经常看到有人说Arch这样的滚动发行版不稳定,容易滚挂。我反正从来没遇到过,Arch更新虽然是整个系统重新安装的,但是速度很快,而且也很稳定。

更新系统的时候使用pacman -Syu(要root权限),注意不要在一堆服务和进程在运行的时候更新系统,最好在刚开机的时候在字符界面就更新,更新之后reboot重启就行。

虽然一般建议Arch经常更新,但是我曾经半年没更也没什么。就是有时候pacman -Sy安装软件的时候发现lib库和软件已经对不上了,那就更新系统吧。

另外,安装在USB或者移动硬盘等可移动介质的同学一定要注意,在使用过程中不要拔插,关机前最后一件事一定是sync确保数据同步写入。

软件包管理

具体看archwiki学习

Arch拥有Linux中最丰富的软件包资源,由官方软件仓库和非官方软件仓库(AUR)组成。

Pacman 是Arch 的软件包管理器(简称包管理器)
下面列一些我常用的命令

pacman -Sy 		# 更新软件源并安装
pacman -Ss		# 搜索软件
pacman -Si 		# 查看软件包具体信息
pacman -Syu		#更新系统及所有包
pacman -Qs		# 搜索已安装的包
pacman -Qi		# 查看已安装的包的信息
pacman -Rs		# 删除软件包及其依赖

有关pacman的一些配置在/etc/pacman.conf,贴一下我的配置

#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives

#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir     = /
#DBPath      = /var/lib/pacman/
#CacheDir    = /var/cache/pacman/pkg/
#LogFile     = /var/log/pacman.log
#GPGDir      = /etc/pacman.d/gnupg/
#HookDir     = /etc/pacman.d/hooks/
HoldPkg     = pacman glibc
#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
Architecture = auto

# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg   =
#IgnoreGroup =

#NoUpgrade   =
#NoExtract   =

# Misc options
#UseSyslog
Color
ILoveCandy
#TotalDownload
CheckSpace
#VerbosePkgLists

# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel    = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required

# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Arch Linux
# packagers with `pacman-key --populate archlinux`.

#
# REPOSITORIES
#   - can be defined here or included from another file
#   - pacman will search repositories in the order defined here
#   - local/custom mirrors can be added here or in separate files
#   - repositories listed first will take precedence when packages
#     have identical names, regardless of version number
#   - URLs will have $repo replaced by the name of the current repo
#   - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
#       [repo-name]
#       Server = ServerName
#       Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#

# The testing repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.

#[testing]
#Include = /etc/pacman.d/mirrorlist

[core]
Include = /etc/pacman.d/mirrorlist

[extra]
Include = /etc/pacman.d/mirrorlist

#[community-testing]
#Include = /etc/pacman.d/mirrorlist

[community]
Include = /etc/pacman.d/mirrorlist

# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.

#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist

#[multilib]
#Include = /etc/pacman.d/mirrorlist

# An example of a custom package repository.  See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs

[archlinuxcn]
SigLevel = Never
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch

我的配置主要就是取消了Color前的注释,是Pacman 的输出是彩色的更易识别,然后ILoveCandy是我自己加上的,这是Pacman 的一个彩蛋,因为pacman也是那款叫作吃豆人的著名游戏,加上ILoveCandy后会出现吃豆人。

最后加上了archlinuxcn的源,因为里面提供了更多为中国用户进行优化的软件包,用的是科大的源,加上之后需要pacman -S archlinuxcn-keyring安装对应的密钥。

主要的pacman 镜像我用的是北外的镜像,在/etc/pacman.d/mirrorlist中更改,一般里面已经按照速度排序排好了,如果没有,可以参见 #镜像状态#按速度排序 查看帮助选择镜像的工具。

当然也可以和我一样用北外的镜像(不推荐清华的镜像,至少我自己的使用不佳)

Server = https://mirrors.bfsu.edu.cn/archlinux/$repo/os/$arch

其他镜像

## China
#Server = http://mirrors.163.com/archlinux/$repo/os/$arch
#Server = http://mirrors.aliyun.com/archlinux/$repo/os/$arch
#Server = https://mirrors.aliyun.com/archlinux/$repo/os/$arch
#Server = http://mirrors.bfsu.edu.cn/archlinux/$repo/os/$arch
#Server = https://mirrors.bfsu.edu.cn/archlinux/$repo/os/$arch
#Server = http://mirrors.cqu.edu.cn/archlinux/$repo/os/$arch
#Server = https://mirrors.cqu.edu.cn/archlinux/$repo/os/$arch
#Server = http://mirrors.dgut.edu.cn/archlinux/$repo/os/$arch
#Server = https://mirrors.dgut.edu.cn/archlinux/$repo/os/$arch
#Server = http://mirrors.hit.edu.cn/archlinux/$repo/os/$arch
#Server = https://mirrors.hit.edu.cn/archlinux/$repo/os/$arch
#Server = http://mirror.lzu.edu.cn/archlinux/$repo/os/$arch
#Server = http://mirrors.neusoft.edu.cn/archlinux/$repo/os/$arch
#Server = https://mirrors.neusoft.edu.cn/archlinux/$repo/os/$arch
#Server = http://mirrors.nju.edu.cn/archlinux/$repo/os/$arch
#Server = https://mirrors.nju.edu.cn/archlinux/$repo/os/$arch
#Server = http://mirror.redrock.team/archlinux/$repo/os/$arch
#Server = https://mirror.redrock.team/archlinux/$repo/os/$arch
#Server = https://mirrors.sjtug.sjtu.edu.cn/archlinux/$repo/os/$arch
#Server = http://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
#Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
#Server = http://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
#Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
#Server = http://mirrors.wsyu.edu.cn/archlinux/$repo/os/$arch
#Server = https://mirrors.wsyu.edu.cn/archlinux/$repo/os/$arch
#Server = https://mirrors.xjtu.edu.cn/archlinux/$repo/os/$arch
#Server = http://mirrors.zju.edu.cn/archlinux/$repo/os/$arch

记得pacman -S archlinux-keyring


然后是AUR 的包。

Arch 编译系统提供了编译官方库软件的脚本,而 AUR 则提供了用户提交的、非官方的软件包编译脚本。这是一个基于 web 界面或通过 AUR 工具访问的非官方软件仓库。

aur里面有更多的软件包可以选择,当然由于是非官方,也会有无人维护的情况。

基于web界面是指,aur的包可以到https://aur.archlinux.org/ 这个网页上去查找相关信息。

由于aur的包不能由pacman 直接安装,所以需要采取一下方法:

  1. 从 AUR 下载包含 PKGBUILD 和其他安装文件(比如 systemd 和补丁,通常不是实际代码)的 tar 包。
  2. 用命令 tar -xvf packagename.tar.gz 解包到一个仅用于编译 AUR 的空闲文件夹。
  3. 验证 PKGBUILD 和其它相关文件,确保其中不含有恶意代码。
  4. 在上述文件夹中运行 makepkg -si。命令会自动调用 pacman 解决依赖关系,然后下载代码、编译并打包。然后安装软件包。

我一般跳过了验证那一步,(懒得验证),对AUR受信用户(简称 TU)展现出充分的信任

当然,使用AUR 工具 会简单一些(因为上面那个方法其实也蛮简单了)

具体查看wiki,我用过yay,因为已经pacman封装了,所以语法和pacman一样。

图形界面

从字符到图形

pacman -Sy xorg-server安装X服务器

X 窗口管理系统(X11或者X) 是基于网络的显示协议,提供了窗口功能,包含建立图形用户界面(GUI)的标准工具和协议。Xorg是X窗口系统11版本的开源实现,提供图形用户界面, 安装和配置请阅读Xorg

Wayland 是新的显示服务协议,Weston 是参考实现。目前还处于开发阶段,支持的程序很少。

只有X能够进入图形界面了,不过只有最基本的框架,需要配合 桌面环境(DE)才能使用。

桌面环境通常提供图标、小程序(applets)、窗口、工具栏、文件夹、壁纸、应用程序和拖放等功能。使用GNOMEKDELXDEXfce这类桌面环境,是最简单的配置方法. Category:Desktop environments 包含了各种桌面环境。

其中KDE和GNOME是两个功能完全的主流桌面环境,KDE体积更加大一点。由于U盘大小有限,我使用的是轻量化的Xfce。

对于Xfce,只需要pacman Sy xfce4,我没有使用额外的显示管理器(也就是从图形界面登录用户并自动启动图形界面),一方面从字符界面启动更加轻量,另一方面并不是每一次都有进入图形界面的需要。Xfce自带从字符界面启动的命令startxfce4

后来我更倾向于使用i3wm作为桌面环境,更加轻量快速, Start X at Login 提供了直接从终端启动的轻量方法。i3wm的定制化程度更高,也意味着配置需要一定的精力,这里就不展开了。

浏览器

毫无疑问pacman -Sy firefox

当你打开浏览器输入诸如www.baidu.com之类的中文网页,你会发现一堆矩形之类的乱码。

从英文到中文

因为你还没有安装字体,所以无法正常显示中文。

pacman -Sy wqy-microhei文泉驿的中文字体之一。还有其他字体,可以自己去发现。

然后就能看到中文了。

同时在启动桌面环境的命令前加上指定用中文启动,就可以以中文为默认语言使用桌面环境,例:LANG=zh_CN.UTF-8 startxfce4

声音

如果和我一样使用了轻量化的桌面环境,一般要手动调整声音,pacman -Sy alsa-utils安装声音配置相关的一些工具,其中alsamixer命令可以在终端中用类似图形化的方式调整声音

有时候没有声音还要设置默认声卡,有时候没有混音还得自己手动开启dmix.这里就不展开了。

输入法

参见 Fcitx (简体中文)Fcitx5 (简体中文)Ibus

我使用的是Fcitx5,是fcitx的最新版本,pacman -Sy fcitx5-im fcitx5-chinese-addons,里面有图形界面的配置工具

欲在程序中正常启用 Fcitx5, 需设置以下环境变量,并重新登录:

~/.pam_environment
-------------------------------------------------
GTK_IM_MODULE DEFAULT=fcitx
QT_IM_MODULE  DEFAULT=fcitx
XMODIFIERS    DEFAULT=\@im=fcitx
INPUT_METHOD  DEFAULT=fcitx
SDL_IM_MODULE DEFAULT=fcitx
GLFW_IM_MODULE DEFAULT=ibus

还有一个小工具在fcitx5上可以使用搜狗输入法的皮肤,大家自己查吧

其他

类似于记事本的工具:leafpad或者mousepad

音乐:netease-cloud-music, yesplaymusic, iease-music(后两个都是网易云的第三方客户端,非常漂亮)

ofiice: WPS Office (简体中文)或者LibreOffice (简体中文)

视频音频的播放: VLC

邮件客户端:Mailspring (也是颜值很高,而且有一些实用的功能)

终端模拟器:**Tilda** — 可配置的下拉终端模拟器(很方便,可以随时唤出)

其他的大家看List of applications各取所需吧。


希望看到大家自己的Arch!