Arch Linux

前言

很久之前就体验过Deepin桌面了,对其精美的外观映像深刻。前几天闲来无事,把自己电脑再次从Windows换成Arch Linux,一来可以让自己少玩游戏多敲代码,二来也能尝试一下能否脱离Windows生态,顺便看看几年前Deepin桌面的那些BUG是否还存在。这篇文章主要记录了在自己电脑上安装Arch Linux和Deepin桌面的过程,主要用于以后再次安装的时候方便自己参考,如果喜欢Deepin桌面环境的话,也可以参考此文章。

我的电脑主要配置如下,如果配置与我的有出入(比如显卡或者硬盘等),部分操作则可能不太适用,需要自行修改。

1
2
3
4
5
CPU:Intel® Xeon® Processor E5-2680 v2
内存:4 * 8GB DDR3 1600MHz ECC
显卡:NVIDIA GTX 1060 5GB
硬盘1:三星SM961 256GB M.2 NVMe
硬盘2:三星SM963 480GB M.2 NVMe

安装

整个过程分为三步:Arch Linux基本系统的安装、Deepin桌面环境的安装、必要软件的安装与其他优化。

安装Arch Linux基本系统

这一部分照着官方Wiki来,基本上不会出什么问题。

先从官方下载ISO镜像,然后使用rufus工具将其写入U盘,启动时选择UEFI启动。

检查网络连接

一般如果直接使用有线连接的话,进入安装环境就会有网络了,如果使用的是无线网络,可以通过iwd来连接Wi-Fi:

1
2
3
4
5
6
7
8
systemctl start iwd.service
systemctl start dhcpcd.service
# 使用ip link查看网卡的设备名称,我的为wlan0。
ip link
# YOUR-SSID替换为你的无线网络名称,如果为加密网络,则会提示输入密码。
iwctl station wlan0 connect YOUR-SSID
# 启用无线网卡
ip link set wlan0 up

可以用以下命令检查网络是否通畅:

1
ping acris.me -c 4

更新系统时间

首先启用ntp,确保系统时间正确:

1
timedatectl

建立硬盘分区

先查看硬盘分区,因为我的两块硬盘都是NVMe,所以在系统中的设备名称为/dev/nvme0n1/dev/nvme1n1。如果是普通的硬盘,则应该为/dev/sdx,后续注意更换为你自己的设备名称:

1
fdisk -l

然后直接新建硬盘分区,在这里我使用的是cfdisk,你也可以更换为自己喜欢的分区工具:

1
cfdisk -z /dev/nvme0n1

由于我使用的是UEFI引导,所以需要一个EFI分区。除此之外,还分了一个根分区和一个交换分区。我的分区方案是512MB的/efi分区,8GB的swap分区,其余空间划分给/

然后第二块硬盘直接一个分区,之后挂载到/home

格式化分区

分完区后就是格式化操作了,由于我是用的EFI引导,所以EFI分区需要格式化成FAT32格式(具体可见官方Wiki):

1
2
3
4
5
mkfs.fat -F32 /dev/nvme0n1p1
mkfs.ext4 /dev/nvme0n1p2
mkfs.ext4 /dev/nvme1n1p1
mkswap /dev/nvme0n1p3
swapon /dev/nvme0n1p3

挂载分区

格式化完成之后,将分区挂载到/mnt。先挂载根分区,再挂载EFI分区和/home

1
2
3
mount /dev/nvme0n1p2 /mnt
mount --mkdir /dev/nvme0n1p1 /mnt/efi
mount --mkdir /dev/nvme1n1p1 /mnt/home

选择镜像

由于国内网络环境,连接国外源可能会很慢,所以有必要换成国内镜像。此处我直接使用wget从Arch Linux官网拉取中国镜像:

1
2
mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak
curl "https://archlinux.org/mirrorlist/?country=CN&protocol=https&ip_version=4" -o /etc/pacman.d/mirrorlist

下载完成后,编辑镜像列表文件,去除对应的注释:

1
vim /etc/pacman.d/mirrorlist

安装基本系统

选择好国内源后,便可以开始基本系统的安装。我同时安装了Vim

1
pacstrap -K /mnt base linux linux-firmware vim

生成fstab

等待安装完成后,使用genfstab命令生成fstab文件:

1
genfstab -U /mnt >> /mnt/etc/fstab

Chroot

接下来chroot到新安装的系统。chroot也就是将该目录变成/

1
arch-chroot /mnt

设置时区

然后将系统时区设为东八区:

1
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

同时使用hwclock设置硬件时钟,并调整时间偏移:

1
hwclock --systohc

设置Locale

接下来需要进行一些语言和地区相关的配置。由于我使用的是英语,因此只配置了英语语言。如果使用中文的话可以额外增加中文的配置。先编辑locale.gen文件,解除en_US.UTF-8 UTF-8的注释。如果需要中文,同时解除zh_CN.UTF-8 UTF-8的注释:

1
vim /etc/locale.gen

然后执行以下命令生成locale信息:

1
locale-gen

然后还需要设置LANG环境变量:

1
vim /etc/locale.conf

在该文件中添加以下内容:

1
LANG=en_US.UTF-8

设置主机名

我的主机名设置的是archlinux。编辑hostname文件,写入主机名:

1
vim /etc/hostname

修改Root用户密码

执行passwd,并输入两次密码:

1
passwd

创建新用户

非常不建议使用root用户登录!因此有必要创建一个其他用户:

1
useradd -m -G wheel -s /bin/bash acris

-G参数将该用户加到额外的wheel组中,稍后可以给这个组执行sudo命令的权限。-s参数制定了默认的shell为bash,其实无所谓,因为我一般会很快切换到zsh

修改新创建用户的密码,照样是输入两次:

1
passwd acris

接下来需要允许该用户所在的wheel组有执行sudo命令的权限,此时请不要直接修改/etc/sudoers文件,而是要使用这个命令:

1
visudo

然后解除wheel组前面的注释:

1
2
## Uncomment to allow members of group wheel to execute any command
%wheel ALL=(ALL) ALL

配置Bootloader

由于Deepin提供了GRUB2的主题,所以这次bootloader使用的是grub,注意这里的gurb版本是2,不是GRUB Legacy。同时,因为我是使用的Intel的CPU,所以一并安装并配置了intel-ucode

1
2
pacman -S intel-ucode grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB

接下来配置grub

1
grub-mkconfig -o /boot/grub/grub.cfg

至此,bootloader已经安装完成了,接下来开始安装Deepin桌面环境。

安装Deepin桌面环境

安装LightDM显示管理器

安装LightDM

1
pacman -S lightdm

然后修改LightDM配置文件,指定greeter-sessionlightdm-deepin-greeter,不然无法启动Deepin:

1
vim /etc/lightdm/lightdm.conf

取消注释并修改greeter-session

1
2
3
[Seat:*]
...
greeter-session=lightdm-deepin-greeter

安装完成记得设置LightDM为开机自启:

1
systemctl enable lightdm.service

安装Deepin和必要软件

安装完Display Manager以后,接下来就可以安装Deepin桌面了:

1
pacman -S deepin deepin-extra networkmanager file-roller p7zip

除了Deepin桌面,还安装了解压相关软件和Network Manager,然后需要将Network Manager设置为开机自启,否则无法使用网络管理相关功能:

1
systemctl enable NetworkManager.service

安装NVIDIA显卡驱动,如果是其他显卡,此处则需要换成对应的驱动:

1
pacman -S nvidia nvidia-settings

如果你的电脑有蓝牙,则安装蓝牙相关驱动并设置开机自启:

1
2
pacman -S bluez
systemctl enable bluetooth.service

安装Deepin Terminal需要用到的软件包:

1
pacman -S zssh lrzsz

安装一些常用工具,如OpenSSH等:

1
pacman -S openssh

如果需要Arch Linux官方提供的资源包,可以安装下面软件,安装完成后所有资源都在/usr/share/archlinux目录下:

1
pacman -S archlinux-wallpaper

然后安装一些好看的字体:

1
pacman -S ttf-liberation ttf-dejavu ttf-roboto ttf-droid adobe-source-han-sans-otc-fonts adobe-source-han-serif-otc-fonts adobe-source-code-pro-fonts adobe-source-sans-pro-fonts adobe-source-serif-pro-fonts noto-fonts noto-fonts-extra noto-fonts-emoji ttf-fira-code

如果想安装Windows字体,可以稍后使用yay安装ttf-ms-win10,需要挂载Windows安装镜像,详见Arch Linux Wiki,此处不再赘述。

切换到桌面用户

接下来安装一些常用工具,此处先切换到之前创建的桌面用户,不要使用root用户:

1
2
# acris替换为你自己的用户名
su - acris

安装yay

yay,Yet Another Yogurt - An AUR Helper Written in Go,在我看来它就是一个AUR的包管理器,是pacman的包装,并且完全可以替代pacman

要安装它很简单,只要几行命令即可:

1
2
3
4
5
6
7
8
9
10
# 安装Git
sudo pacman -S git
# 配置Git的用户和邮箱
git config --global user.name "YOUR NAME"
git config --global user.email "YOUR EMAIL ADDRESS"
# 安装yay
cd ~
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si

yay以非root用户使用时,无需加sudo命令,需要管理员权限时,会自动弹出输入密码的提示。

生成用户文件夹

先安装xdg-user-dirs,用于生成用户目录下的 DocumentsDownloadsMusicPictures 等等文件夹:

1
2
3
yay -S xdg-user-dirs
xdg-user-dirs-update
ls

不出意外的话,使用ls命令应该可以看到生成的那些文件夹了。这里我们使用了之前安装的yay命令。用法和pacman基本一致。

安装oh-my-zsh

最好先安装oh-my-zsh,否则安装其他软件后再安装它,会出现很多奇怪的问题,比如.bashrc里面的配置没有同步到.zshrc等,反正早安装不会吃亏就对了。安装oh-my-zsh需要先安装一些必要软件:

1
yay -S zsh

然后安装oh-my-zsh

1
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

安装过程中会让你输入密码,然后你就会发现已经切换到zsh了。

然后安装bash-completionzsh-completions

1
yay -S bash-completion zsh-completions

退出安装环境

至此,基本系统的安装以及完成了。不出意外的话,一会儿重新开机就能看到登录界面了。在此之前,先退出安装环境,并卸载挂载的分区:

1
2
3
4
5
6
7
8
#退出zsh
exit
# 退出桌面用户
exit
# 退出root用户
exit
# 卸载分区
umount -R /mnt

接下来关机,并且移除掉安装介质,然后重新开机即可,希望重启以后能看到漂亮的登录界面:

1
poweroff

安装常用软件以及其他优化

如果你的Deepin桌面已经安装完毕,那么可以继续往下,否则,还是认真看看上面哪一步做错了。

系统美化

主题、字体、菜单图标、登录界面等,都可以按照你的个人喜好去调整,我也不再细说。

安装Rime输入法

首先,输入法是必不可少的。对于我来说,我比较喜欢使用Rime输入法:

1
yay -S fcitx-im fcitx-configtool fcitx-rime

安装完成后,可以在Menu里面找到Fcitx启动,然后打开Fcitx Configuration,添加Rime即可。下次开机时,Fcitx会自动启动。

装完输入法,还需要进行一些额外的配置,否则在有些地方(如Intellij IDEA,Telegram等)无法输入中文:

1
vim ~/.pam_environment

然后写入以下内容:

1
2
3
4
# Fcitx
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx

安装并启用Shadowsocks代理

除了输入法,当然还有重要软件要装:

1
yay -S shadowsocks-libev shadowsocks-v2ray-plugin

然后新建配置文件:

1
2
sudo mkdir /etc/shadowsocks
sudo vim /etc/shadowsocks/config.json

编辑好配置文件后,启用代理,并设置开机自启:

1
2
sudo systemctl start [email protected]
sudo systemctl enable [email protected]

启动代理后,除了在Chrome上安装Switch Omega等软件外使用代理,还可以设置系统代理,这里需要使用genpac来根据gfwlist.txt生成PAC文件:

1
2
yay -S python-pip
sudo pip install genpac

genpac的使用方法可以参考官方文档

生成PAC文件后,还需要将文件托管到web服务(可以使用caddy或者nginx等web服务器),然后更改网络代理设置,Method选择Automatic,Configuration URL填写PAC文件的网页地址。如http://127.0.0.1:2015/proxy.pac。注意,填写本地路径(如file:///home/your/pac/path/proxy.pac)将不会生效

shadowsocks-libev整合v2ray-plugin的服务的部署可以使用此docker镜像

开发工具

对于一个程序猿来说,常用软件当然是一些开发工具了。我个人用的较多的开发工具主要是JetBrains家族的,这些软件AUR都有提供,直接使用yay安装即可,例如安装JetBrains Toolbox:

1
yay -S jetbrains-toolbox

需要提一下的是,Deepin默认很多快捷键会和JetBrains家族的IDE冲突,我的做法是把系统的快捷键更改或取消。另外Fcitx的一些默认快捷键也会和IDE冲突,例如Ctrl + Space,所以我改成了Super + Space,这些地方都需要自己去慢慢配置。

其他的像FileZilla、Postman、Open JDK、Node.js等工具AUR也有提供,可以直接使用yay安装:

1
yay -S jdk11-openjdk nodejs filezilla postman-bin

文本编辑器的话,大神们喜欢用Vim,但是我觉得Deepin自带的editor也蛮好用的。

当然,你若是喜欢Atom、VS Code、Sublime Text等工具的话,AUR也可以满足你。

安装其他常用软件

浏览器个人钟爱Chrome:

1
yay -S google-chrome

Markdown编辑器,首选Typora:

1
yay -S typora pandoc

如果需要办公,可以安装LibreOffice:

1
yay -S libreoffice-fresh

邮件客户端可以用Mozilla出品的Thunderbird:

1
yay -S thunderbird

音乐客户端当然是Spotify了,当然也可以安装网易云音乐:

1
2
3
4
# Spotify
yay -S spotify
# 网易云音乐
yay -S netease-cloud-music

思维导图软件使用Xmind ZEN:

1
yay -S xmind-zen

偶尔有图片编辑需求的话,当然是Linux下大名鼎鼎的GIMP了:

1
yay -S gimp

还有更多更多软件,AUR基本上都可以满足你。除了滚动更新的特性和丰富的Wiki以外,Arch Linux的另一大特点就是强大的AUR仓库。

最后,献上两张成品图,图片为2017年第一次安装Arch Linux和DDE桌面的图,现在的Deepin更美观了,不过我没截图,留给你们自己体验:

Login Screen

Desktop

总结

安装Arch Linux和Deepin桌面环境的教程到此便结束了,如果安装过程遇到其他问题,可以去Arch Wiki或者通过谷歌寻找答案,当然也可以在下面留言,如果我会的话当然乐意解答。

本文虽为我自己的电脑安装Arch Linux Deepin的教程,但是应该同样适用于其他配置,只需将安装NVIDIA驱动等地方,换成安装其他显卡的驱动即可(未经测试,出错勿怪哈)。

由于Arch Linux的Wiki更新较为频繁,建议用此文章结合官方Wiki一起安装。文章虽然写的不太好,但是希望有了我的前车之鉴,以及我不断填坑总结出来的这份安装教程,大家能够少走弯路,一次成功~


参考资料: