Archlinux - 基础入门
制作安装媒介
首先到这里下载最新的官方 Arch Linux 安装媒介。然后,可以选择刻录或者写入到 USB 闪存盘或存储卡。
利用 dd 命令可以将安装媒介写入 USB 闪存盘或存储卡,参见这里:
$ dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx && sync
完成后,用安装媒介启动电脑。
安装
一键安装脚本
https://github.com/YangMame/Arch-Installer
进入live系统连接网络后执行:
wget git.io/vb9IK -O live.sh
chmod +x live.sh
./live.sh
https://github.com/si9ma/Archlinux-Installer
执行一下脚本
bash <(curl https://raw.githubusercontent.com/si9ma/Archlinux-Installer/master/install.sh)
连接网络
安装程序已经自动启动了 dhcpcd
,可以自动连接动态 IP 的有线网络。利用 ping 命令检查网络是否已连接成功:
$ ping -c 3 www.baidu.com
-
如果你是有线网并且路由器支持DHCP的话插上网线后先执行以下命令获取IP地址:
# 设置有线连接 systemctl start dhcpcd # 自动连接有线 systemctl enable dhcpcd
-
无线网:
# 如果需要无线连接: pacman -S iw wpa_supplicant dialog wifi-menu # 选择wifi输入密码连接
-
ADSL宽带:
pacman -S rp-pppoe # 安装拨号软件 pppoe-setup # 配置宽带用户名和密码 systemctl start adsl # 连接 systemctl enable adsl # 自动连接
这里我们不进行有线网络的教程(在启动Arch Live CD之前插入网线即可),下面我们连接无线网络:
我们为了简便,创建一个shell脚本来进行连接。
nano wifi.sh
在nano编辑器的界面中,我们写入如下命令,并按Ctrl+O保存,Ctrl+X退出:
#! /bin/bash
echo ---Init---
rfkill unblock wifi
rfkill unblock all
ip link set wlp2s0 up
echo ---Input---
echo -n SSID:
read ssid
echo -n password:
read -s pass
echo You will connect the $ssid
echo ---state---
echo "(Connect the WLAN)"
wpa_supplicant -B -i wlp2s0 -c <(wpa_passphrase $ssid $pass)
echo "(DHCP)"
dhcpcd wlp2s0
将SSID和password替换成你的Wi-Fi名称和密码。
输入chmod a+x wifi.sh
并执行./wifi.sh
来启动无线网络
使用ping来验证网络:ping -c 3 archlinux.org
如果是静态 IP 的有线网络或 WiFi,请参见这里。
准备存储设备
查看硬盘、内存基本信息
- 查看硬盘分区
df -h
# 显示磁盘相关信息
blkid
# 查看块设备(包括交换分区)的信息
lsblk
# 列出所有可用块设备信息,包括硬盘,闪存盘,CD-Rom等
lsblk -f
# 列出块设备的文件系统信息
fdisk -l
# 列出设备的分区表情况
# 以上命令,均可查看硬盘情况
free -h
# 查看内存使用情况
- 查看是否以UEFI启动
ls /sys/firmware/efi/efivars
# 如果提示efivars不存在,则不是UEFI启动。
分区应该设置多大?
注意: 以下只是简单的建议,分区大小没有严格的准则。如果可能的话,为每个文件系统保留 25% 的额外空间以应对今后的变化,还可以避免文件系统碎片。 分区的大小主要取决于个人的选择,以下内容可能会有一定帮助:
/boot - 100 MB 32M-100M (启动分区,最多只要100M左右)
实际需求大约 100 MB,如果有多个内核/启动镜像同时存在,建议分配 200 或者 300 MB。
/ - 15-20 GB
传统上包括 /usr 目录,根据安装的软件数量,会产生非常明显的增长。15-20 GB 对于大多数用户来说是一个比较合适的取值。
/var - 8-12 GB
除了其他数据以外,还包括ABS 树和 pacman 缓存。保留缓存的包提供了包降级的能力,因此非常有用。也正因为这样,/var 的大小会随着时间推移而增长。尤其是 pacman 缓存将会随着新软件的安装、系统的升级而增长。在磁盘空间不足的时候,可以安全的清理这个目录。/var 分配 8-12 GB 对于桌面系统来说是比较合适的取值,具体取值取决于安装的软件数量。
/home - [不定]
通常用于存放用户数据,下载的文件和媒体文件。在桌面系统中,/home 通常是最大的文件系统。
swap - [不定]
历史上 swap 分区的大小通常是物理内存的2倍。由于当前的电脑内存容量快速增长,这条规则已经不那么适用。在拥有不足 512 MB 内存的机器上,通常为 swap 分区分配2倍内存大小的空间。如果有更大的内存(大于 1024 MB),可以分配较少的空间甚至不需要swap 分区。在拥有 2 GB 以上物理内存的情况下,不使用 swap 分区可以获得更好的性能。
/data - [不定]
可以为需要多用户共享的文件建立一个“data”分区。也可以使用 /home 分区用于这一目的。
UEFI
推荐使用 GPT 分区表,可以和 64 位 Windows 7 以上版本进行双系统启动。
利用 cgdisk
创建 GPT 分区:
$ cgdisk /dev/sda
分区方案:
类型 | 大小 | 类型代码 | |
---|---|---|---|
/dev/sda1 | EFI 系统分区 | 512M | ef00 |
/dev/sda2 | Linux ext4 | 任意 | 8300 |
/dev/sda3 | Linux 交换分区 | 适量 | 8200 |
/dev/sda4 | /boot | 200-500m | 看情况创建 |
如果电脑上已经预装了 Windows 8,你需要:
- 关闭 Secure Boot
- EFI 系统分区已经存在,不要再创建
格式化分区,启用交换分区:
$ mkfs.vfat -F32 /dev/sda1
$ mkfs.ext4 /dev/sda2
$ mkswap /dev/sda3
$ swapon /dev/sda3
$ mkfs.ext4 /dev/sda4
挂载分区:
$ mount /dev/sda2 /mnt
$ mkdir -p /mnt/home /mnt/boot
$ mount /dev/sda1 /mnt/boot
(看情况备用下方)
# 创建efi目录用于挂在efi分区
mkdir -p /mnt/boot/efi
# 挂载efi
mount /dev/sda1 /mnt/boot/efi
# 挂在boot分区
mount /dev/sda4 /mnt/boot
BIOS
推荐使用 MBR 分区表,可以和所有 Windows 版本进行双系统启动。
利用 fdisk
创建 MBR 分区:
$ fdisk /dev/sda 或者cfdisk
分区方案:
类型 | 大小 | 类型代码 | |
---|---|---|---|
/dev/sda1 | Linux ext4 | 任意 | 8300 |
/dev/sda2 | Linux 交换分区 | 适量 | 8200 |
格式化分区,启用交换分区:
$ mkfs.ext4 /dev/sda1
$ mkswap /dev/sda2
$ swapon /dev/sda2
挂载分区:
$ mount /dev/sda1 /mnt
$ mkdir -p /mnt/home
分区方案:
类型 | 大小 | 类型代码 | |
---|---|---|---|
/dev/sda1 | Linux ext4 | 任意 | 8300 |
/dev/sda2 | Linux 交换分区 | 适量 | 8200 |
/dev/sda3 | /boot Linux ext4 | 200-300m |
格式化分区,启用交换分区:
$ mkfs.ext4 /dev/sda1
$ mkswap /dev/sda2
$ swapon /dev/sda2
$ mkfs.ext4 /dev/sda3
挂载分区:
$ mount /dev/sda1 /mnt
$ cd /mnt
$ mkdir boot
$ mount /dev/sda3 /mnt/boot
$ mkdir -p /mnt/home
选择软件源
修改/etc/pacman.conf
启用 Multilib 仓库,将以下行取消注释
#[multilib] #IncIude = /etc/pacman.d/mirrorlist
(multilib 仓库让用户可以在 64 位 ArchLinux 系统上运行和编译 32 位程序)
编辑 /etc/pacman.d/mirrorlist
,将要使用的源复制到最前面,然后刷新:
生成可用中国镜像站列表:
sudo pacman-mirrors -i -c China -m rank
勾选 http://mirrors.ustc.edu.cn/manjaro/
,然后按 OK
键两次。
最后刷新缓存:
sudo pacman -Syy
安装基本系统
利用 pacstrap
脚本安装基本系统:
$ pacstrap /mnt base base-devel
生成 fstab
利用 genfstab
生成 fstab:
$ genfstab -U -p /mnt >> /mnt/etc/fstab
$ cat /mnt/etc/fstab
注意,生成 fstab 后,务必检查一下内容是否正确。如果有问题,不要再运行 genfstab
,直接手动编辑 /mnt/etc/fstab
文件。
Chroot 到新系统
现在,新安装的系统还需要一些配置工作,才能自力引导系统。下面要 chroot 到新系统:
$ arch-chroot /mnt /bin/bash
这里顺便说一下,如果以后我们的系统出现了问题,只要插入U盘并启动, 将我们的系统根分区挂载到了/mnt
下(如果有efi
分区也要挂载到/mnt/boot
下),再通过这条命令就可以进入我们的系统进行修复操作。
提前安装必须软件包
pacman -S vim dialog wpa_supplicant ntfs-3g networkmanager git wget curl
语言地区
编辑 /etc/locale.gen
,去掉以下项目的注释:
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
然后运行:
$ locale-gen
最后,编辑 /etc/locale.conf
:
LANG=en_US.UTF-8
或者
echo LANG=en_US.UTF-8 > /etc/locale.conf
echo LANG=zh_CN.UTF-8 > /etc/locale.conf
注意:不要在这里把系统全局设置成中文,因为终端无法显示中文,请单独将桌面环境设置为中文。
终端字体(可选)
编辑 /etc/vconsole.conf
:
KEYMAP=us
FONT=Lat2-Terminus16
时区
依次执行如下命令设置我们的时区为上海并生成相关文件:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc --utc
时间
利用 ntp 自动校时:
$ pacman -S ntp
$ ntpdate time.nist.gov
启动网络时间同步
sudo timedatectl set-ntp true
将系统时间写入硬件时钟:
$ hwclock --systohc --utc
注意:Linux 的硬件时钟使用 UTC,而 Windows 则使用本地时间。如果要和 Windows 进行双系统启动,可以将 Windows 设置为使用 UTC 硬件时钟,参见这里。同时关闭 Windows 上的自动校时功能,只用 Linux 上的 ntp。
主机名(可选)
$ echo myhostname > /etc/hostname
编辑/etc/hosts文件:
vim /etc/hosts
作如下修改(将myhostname替换成你自己设定的主机名)
127.0.0.1 localhost.localdomain localhost
::1 localhost.localdomain localhost
127.0.1.1 myhostname.localdomain myhostname
连接网络
可以参照上面的方法连接网络。只不过,这次需要手动启用 dhcpcd 服务:
$ systemctl enable dhcpcd.service
注意,GNOME 自带了 NetworkManager 来管理网络,这会与 dhcpcd 冲突,所以安装 GNOME 后要记得要切换到 NetworkManager:
$ systemctl disable dhcpcd.service
$ systemctl enable NetworkManager.service
设置 Root 密码、添加用户
除了设置 Root 密码外,添加一个管理员组的帐户做平时使用:
$ passwd
###useradd -m -g users -G wheel -s /bin/bash ${username}
useradd -m -g -G wheel username (请自行替换username为你的用户名)
passwd username (请自行替换username为你的用户名)
pacman -S sudo
visudo或者sudo nano /etc/sudoers
找到
# %wheel ALL=(ALL)ALL
这行,去掉之前的#注释符,保存并退出就可以了。
这里的%wheel就是代表wheel组,意味着wheel组中的所有用户都可以使用sudo命令。
当然为了安全使用sudo命令还是需要输入当前用户的密码的。
安装Intel-ucode
(非Intel
CPU可以跳过此步骤)
直接pacman
安装:
pacman -S intel-ucode
安装和配置 Bootloader
UEFI
$ mount -t efivarfs efivarfs /sys/firmware/efi/efivars
$ pacman -S grub os-prober efibootmgr
esp_mount一般为 /boot或/boot/EFI
$ grub-install --target=x86_64-efi --efi-directory=esp_mount --bootloader-id=arch_grub --recheck
$ grub-mkconfig -o /boot/grub/grub.cfg
如果报warning failed to connect to lvmetad,falling back to device scanning.
错误。参照这篇文章,简单的方法是编辑/etc/lvm/lvm.conf
这个文件,找到use_lvmetad = 1
将1
修改为0
,保存,重新配置grub。
如果报grub-probe: error: cannot find a GRUB drive for /dev/sdb1, check your device.map
类似错误,并且sdb1
这个地方是你的u盘,这是u盘uefi
分区造成的错误,对我们的正常安装没有影响,可以不用理会这条错误。
BIOS
$ pacman -S grub os-prober
$ grub-install --recheck /dev/sda ##--target=i386-pc
$ grub-mkconfig -o /boot/grub/grub.cfg
初始化内存盘
mkinitcpio -p linux
如果报warning failed to connect to lvmetad,falling back to device scanning.
错误。参照这篇文章,简单的方法是编辑/etc/lvm/lvm.conf
这个文件,找到use_lvmetad = 1
将1
修改为0
,保存,重新配置grub。
安装后检查
如果你是多系统,请注意上面一节中对os-prober这个包的安装。
强烈建议使用如下命令检查是否成功生成各系统的入口,如果没有正常生成会出现开机没有系统入口的情况:
vim /boot/grub/grub.cfg
检查接近末尾的menuentry
部分是否有windows
或其他系统名入口。下图例子中是Arch Linux
入口与检测到的windows10
入口(安装在/dev/sda1
),具体情况可能有不同:
如果你没有看到Arch Linux系统入口或者该文件不存在,请先检查/boot
目录是否正确部署linux
内核:
cd /boot
ls
查看是否有initramfs-linux-fallback.img initramfs-linux.img intel-ucode.img vmlinuz-linux
这几个文件,如果都没有,说明linux
内核没有被正确部署,很有可能是/boot
目录没有被正确挂载导致的,确认/boot
目录无误后,可以重新部署linux
内核:
pacman -S linux
再重新生成配置文件,就可以找到系统入口。
如果你已经安装os-prober包并生成配置文件后还是没有生成其他系统的入口:
你目前处的U盘安装环境下有可能无法检测到其他系统的入口,请在下一步中重启登陆之后重新运行:
grub-mkconfig -o /boot/grub/grub.cfg
如果还没有生成其他系统的入口,请参照:
编辑配置文件手动添加引导的分区入口。
安装 grub 主题 (可选)
$ pacman -Sy deepin-grub2-themes
编辑配置文件 /etc/default/grub
GRUB_THEME="/boot/grub/themes/deepin/theme.txt"
重新生成配置文件
$grub-mkconfig -o /boot/grub/grub.cfg
卸载分区并重启系统
现在新系统已经准备好第一次引导了,先退出 chroot 环境:
$ exit
然后,卸载分区并重启系统:
$ umount -R /mnt
$ reboot
在新系统上安装需要的软件
显卡驱动
参照这个表格,安装相应的包,比如你是intel
的集成显卡(绝大多数人的情况),执行:
sudo pacman -S xf86-video-intel libva-intel-driver
提示:Nvidia
的独显驱动如非必要,建议只装集成显卡的驱动(省电,如果同时装也会默认使用集成显卡),不容易出现冲突问题。相反,如果集成显卡驱动有问题无法装上,可以装独显驱动,具体的版本请到下面的链接查询:
https://wiki.archlinux.org/index.php/Xorg#Driver_installation
查询显卡类型:
$ lspci | grep VGA
查询可用的开源驱动:
$ pacman -Ss xf86-video | less
安装通用驱动(vesa):
$ pacman -S xf86-video-vesa
支持硬件加速的驱动程序可以在安装 X 时自动提示你安装,只需要选择正确的显卡类型,不需要显式安装。
声卡驱动
通常不需要配置就能工作,只需解除静音。需要做的只是安装 alsa-utils 软件包:
$ pacman -S alsa-utils
或者
pacman -Sy alsa-utils pulseaudio pulseaudio-alsa
方向键 选中 Master 和 PCM
[M] 取消静音
输入设备驱动
输入设备驱动已经在安装 X 时自动安装,一般不需要显式安装。不过,笔记本或触摸屏用户需要安装 synaptics:
$ pacman -S xf86-input-synaptics
如果是在 VMware 中安装
安装一些专门用于虚拟机的驱动程序:
$ pacman -S xf86-input-vmmouse xf86-video-vmware svga-dri
安装 VMware Tools,在 VMware 中选择“安装 VMware Tools”,然后:
$ pacman -S linux-headers
$ for x in {0..6}; do mkdir -pv /etc/init.d/rc$x.d; done
$ mount /dev/cdrom /mnt
$ cd /root
$ tar zxf /mnt/VMwareTools*.tar.gz
$ cd vmware-tools-distrib
$ ./vmware-install.pl
按提示一步步进行,如果最后报错,一般也不用担心,重启后 VMware Tools 能正确启动。
安装 X 窗口管理系统
$ pacman -S xorg-server xorg-xinit
安装桌面管理器
安装好了桌面环境包以后,我们需要安装一个图形化的桌面管理器来帮助我们登录并且选择我们使用的桌面环境,这里我推荐使用sddm
。
安装sddm
执行:
sudo pacman -S sddm
sddm --example-config > /etc/sddm.conf
设置开机启动sddm服务
这里就要介绍一下Arch
下用于管理系统服务的命令systemctl
了,服务的作用就是字面意思,为我们提供特定的服务,比如sddm
就为我们提供了启动xorg
与管理桌面环境的服务。
命令的使用并不复杂:
sudo systemctl start 服务名 (启动一项服务)
sudo systemctl stop 服务名 (停止一项服务)
sudo systemctl enable 服务名 (开机启动一项服务)
sudo systemctl disable 服务名 (取消开机启动一项服务)
所以这里我们就执行下面命令来设置开机启动sddm
:
sudo systemctl enable sddm
安装桌面环境
安装Xfce
直接安装软件包组(包含了很多软件包)即可:
sudo pacman -S xfce4 xfce4-goodies
安装 slim 以及主题(弃用)
$ pacman -S slim slim-themes archlinux-themes-slim
$ systemctl enable slim.service
图形界面启动方式两种
- startx 命令行启动
配置 xfce 桌面启动环境 ~/.xinitrc
exec startxfce4
启动 xfce 桌面
$ startx
安装GNOME
$ pacman -S gnome
要启用图形界面登录和锁屏等功能,可启用 gdm:
$ systemctl enable gdm.service
安装 GNOME 的一些常用工具(更多工具和扩展请参见这里):
$ pacman -S gnome-tweak-tool gnome-packagekit gnome-settings-daemon-updates
窗口管理器
窗口管理器负责绘制窗口的边框和背景等,处理窗口的移动、最大/小化等行为。桌面环境是窗口管理器的超集,使用窗口管理器和其它一些常用软件组成一个完整的桌面工作环境。 所以说,只安装窗口管理器,而不安装桌面环境也是可以的。(还是推荐一个桌面环境,这样好多软件,如文件管理器等,就不用自己挨个找了) 窗口管理器可以用桌面环境默认自带的,也可以自己选择,如平铺式有i3, awesome等。
安装i3
sudo pacman -S i3 dmenu
# 安装i3窗口管理器,dmenu为i3程充启动器
cp /etc/i3/config ~/.i3/config
# 创建i3配置文件,.i3没有则自己mkdir
# 如果使用xorg-init,则添加 "exec i3" 到.xinitrc,通过startx则可以启动ie
安装awesome
sudo pacman -S awesome
mkdir -p ~/.config/awesome/
cp /etc/xdg/awesome/rc.lua ~/.config/awesome/
# 安装awesome,并创建配置文件rc.lua
# 如果使用xorg-init,则添加 "exec awesome" 到.xinitrc,通过startx则可以启动ie
安装字体
安装一些常用的中英文字体:
桌面也搞定了, 继续最后一步安装字体吧. 以下根据自己需要选择运行:
pacman -S adobe-source-han-sans-otc-fonts # 使用思源黑体
pacman -S wqy-microhei wqy-zenhei ttf-dejavu # 使用文泉驿字体
yay -S ttf-dejavu-sans-mono-powerline-git
# 打补丁的dejavu字体,包含powerline图标字体
sudo pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji
# (可选)Google Noto字体
sudo pacman -S adobe-source-han-sans-cn-fonts
# (可选)安装思源体简体中文部体,中文效果比文泉好些
sudo pacman -S ttf-ubuntu-font-family
# (可选)ubuntu上的字体
yay -S ttf-ms-win10-zh_cn
# (可选)win10字体
yay -S fontconfig-infinality-ultimate
# 字体渲染优化
# 手动安装consolas安体
cd /usr/share/fonts
mkdir consolas
# copy consolas-font to /usr/share/fonts/consolas
cd consolas
sudo chmod 664 *.ttf
sudo mkfontscale
sudo mkfontdir
sudo fc-cache -fv
提前配置网络
到现在我们已经安装好了桌面环境,但是还有一件事情需要我们提前设置一下。由于我们之前使用的一直都是netctl
这个自带的网络服务,而桌面环境使用的是NetworkManager
这个网络服务,所以我们需要禁用netctl
并启用NetworkManager
:
sudo systemctl disable netctl
sudo systemctl enable NetworkManager (注意大小写)
同时你可能需要安装工具栏工具来显示网络设置图标(某些桌面环境已经装了,但是为了保险可以再装一下):
sudo pacman -S network-manager-applet
这样开机以后我们就可以在图形界面下配置我们的网络啦。
完成安装
重新启动,即可由图形界面登录到系统了。祝贺你!说实话,你能有足够的耐心做到这里而没有叛逃到 Debian/CentOS,我很欣慰。相信你很快就会意识到这些麻烦不是没有回报的,欢迎加入 Archers 的行列!
如有任何问题,RTFM:Arch Linux Beginners’ Guide
一些优化
SATA 启用 AHCI 模式
SATA 有两种工作模式:原生的 AHCI 模式提供更好的性能(如热插拔和 NCQ 支持)、模拟的 IDE 模式提供更好的兼容性。一般主板出厂默认将 SATA 模式设置为 IDE 模式,但如今先进的 Linux 和 Windows 都早已原生支持 AHCI,所以我们最好打开 AHCI 模式以优化性能。
Arch Linux 在安装好以后,内核镜像默认没有载入 AHCI 驱动模块。修改 /etc/mkinitcpio.conf
,添加 ahci
到 MODULES
变量:
MODULES="ahci"
然后重建内核镜像,重新启动后 AHCI 驱动就会加载:
$ mkinitcpio -p linux
在主板 UEFI 或 BIOS 中,将 SATA 模式从 IDE
(或 PATA Emulation
等等),设置为 AHCI
(或 Native
等等)。需要注意的是,如果你还在用 Windows XP,它需要安装 AHCI 驱动才行。Windows Vista 及以后的版本则不需要担心这个问题(但如果你是在 Windows 安装完成后才启用 AHCI 模式,因为安装期间 Windows 会自动禁用未使用的存储驱动程序,你需要参考 KB922976(Windows Vista/7)或 KB2751461(Windows 8)来启用 AHCI 驱动程序)。
设置好以后,你可以从 dmesg
命令的输出里,找到 AHCI 和 NCQ 成功启用的证据:
$ dmesg
...
SCSI subsystem initialized
libata version 3.00 loaded.
ahci 0000:00:1f.2: version 3.0
ahci 0000:00:1f.2: irq 24 for MSI/MSI-X
ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 6 ports 6 Gbps 0x10 impl SATA mode
ahci 0000:00:1f.2: flags: 64bit ncq led clo pio slum part ems apst
scsi host0: ahci
scsi host1: ahci
scsi host2: ahci
scsi host3: ahci
scsi host4: ahci
scsi host5: ahci
...
ata5.00: 976773168 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
...
优化系统启动速度
Arch Linux 的 systemd-analyze
是个很不错的工具,利用它你可以很直观地观察到系统启动的时间都花到哪儿去了:
$ systemd-analyze
Startup finished in 6.857s (firmware) + 3.157s (loader) + 1.870s (kernel) + 8.157s (userspace) = 20.044s
我注意到打开 AHCI 后,内核和用户空间的载入速度明显提高了,总启动时间从约 30 秒缩短到 20 秒,效果非常明显。
用下面这个命令,可以了解到是什么东西启动最慢:
$ systemd-analyze blame
此外,还可以把启动过程绘制成 SVG 图表供你审阅(用 GNOME 的图片预览或 Chrome 浏览器都可以打开),这个图表中你还可以观察到是否有启动慢的组件影响到了依赖它的组件的启动:
$ systemd-analyze plot > plot.svg
后续优化
安装yay
以root
权限打开编译/etc/pacman.conf
,将下面这三行加入到文件末尾并保存:
[archlinuxcn]
SigLevel = Optional TrustAll
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
同步软件信息库并安装yay
:
sudo pacman -Syu (刷新源)
sudo pacman -S archlinuxcn-keyring
sudo pacman -Sy yay
yaourt
使用(弃用)
请见yaourt
滚动更新
ArchLinux
的更新机制是非常激进的滚动更新,也就是说ArchLinux
的软件与内核会时刻与稳定版本保持一致,你所用的系统总是时刻保持最新的。
这个机制给很多Arch
教徒带来了强大的快感,可以第一时间体验到新的软件与新 的内核,但是也存在着日常滚炸这样的问题。虽然滚动更新的包可能因为没有经过完善的测试会导致系统不能工作种种问题,但是绝大部分情况下的更新都不会导致太大的问题。修复滚炸的系统和提交Bug信息也是ArchLinux
用户的技能之一。
滚动更新命令使用yay
非常简单:
yay -Syu --aur
--aur
参数是检查并更新AUR
包中的内容。
常用软件安装
yay -S wget curl git shadowsocks-qt5 proxychains-ng shadowsocks-libev /
visual-studio-code-bin neofetch netease-cloud-music dropbox /
kio-gdrive typora wireshark-qt virtualbox dbeaver /
medis telegram-desktop deluge aria2-fast uget /
keepass redshift deepin-screenshot playonlinux /
mailspring docker docker-compose kitematic /
deepin-wine-thunderspeed zsh oh-my-zsh-git /
openssh openssl gwenview plank rdesktop /
python2-pip numix-gtk-theme numix-circle-icon-theme-git /
google-chrome smplayer octopi okular jdk maven eclipse /
intellij-idea-ultimate-edition gradle npm nodejs /
\
systemctl enable sshd.service
#待定软件包
gksu yaourt-gui-manjaro wps-office libreoffice net-tools dnsutils inetutils iproute2 jdk nodejs npm xdg-user-dirs htop chromium deepin-wechat deepin-wine-tim ntfs-3g dosfstools ntfs-3g-fuse create_ap Vivaldi(浏览器) transmission-qt kcm-ufw docky conky filezilla Bumblebee virtualbox-ext-vnc virtualbox-guest-iso virtualbox-host-modules-arch virtualbox-ext-oracle flashplugin rhythmbox aria2 quiterss(rss订阅) thunderbird thunderbird-i18n-zh-cn zathura(pdf阅读器) texlive-{core,bin,langchinese} (LaTex) gnome-terminal-transparency(Gnome-Terminal透明) xfce4-terminal(Gnome-Terminal透明) redsocks-git pcap-dnsproxy-git studio-3t synapse yakuake mongochef firefox firefox-i18n-zh-cn Shutter(截图)
解压软件
fire-roller(gnome) ark(kde) p7zip unrar lrzip unace
#conky 配置文件
https://gist.github.com/imsuwj/204fbe376753d01b45bc
##gnome安装octopi的话 执行会说无法取得管理员权限
装gksu
Optional Deps : kdesu: for KDE [installed]
gksu: for XFCE, Gnome, LXDE, Cinnamon
lxqt-sudo: for LXQT
gnome-keyring: for password management
gist: for SysInfo report
pacaur: for AUR support
yaourt: for AUR support [installed]
octopi-repoeditor: for editing functions [installed]
octopi-cachecleaner: for cleaning functions [installed]
octopi-notifier-qt5: for notifications
octopi-notifier-frameworks: for notifications with Knotifications support [installed]
pacmanlogviewer: to view pacman log files
主题图标
la-capitaine-icon-theme
Adapta-gtk-theme
Papirus
Arc
ArchLinux推荐软件列表
https://wiki.archlinux.org/index.php/List_of_applications
http://bbs.archlinuxcn.org/viewtopic.php?id=381
https://github.com/alim0x/Awesome-Linux-Software-zh_CN
Java 程序员眼中的 Linux
- 带动更多的人进入 Linux 世界,特别是做 Java 开发的人,开发人员必备linux编程环境配置手册
https://youmeek.gitbooks.io/linux-tutorial/content/
shadowsocks
图形版本
安装官方源中的shadowsocks-qt5
包,自带图形界面,通过软件菜单(桌面环境自带)启动即可。
命令行版本
安装官方源中的shadowsocks-libev
包,编辑/etc/shadowsocks/config.json
文件,按示例填写:
{
"server":"",
"server_port":"",
"local_adress":"0.0.0.0",
"local_port":1080,
"password":"",
"timeout":600,
"method":"aes-256-gcm",
"plugin":"obfs-local",
"plugin_opts":"obfs=tls;obfs-host=baidu.com"
}
server
:服务器地址
server_port
:服务器端口
下面两行分别是本地地址和本地端口
password
:密码
method
:加密方式
然后以系统服务方式启动:
sudo systemctl start shadowsocks@example.service
如需开机启动:
sudo systemctl enable shadowsocks@example.service
命令行代理
需先配置好本地shadowsocks代理
推荐使用proxychains-ng
包进行命令行代理:
安装proxychains-ng
包后编辑/etc/proxychains.conf
文件(需root
权限)
到文件末尾找到ProxyList
项,按示例添加本地代理:
socks5 127.0.0.1 1080
之后需要用代理运行的命令都可以通过在命令前加上proxychains
来使用代理运行。
Steam 配置
如果你发现你的 steam 不能正常运行,就去装 steam-native
这个包。然后是不是就好了?如果你玩 XCOM2 的话,你可能会发现这个游戏在 Ubuntu 上能正常运行,但是在 Arch 上卡的能吃屎。你可以考虑调整他的配置文件,位置是:
~/.local/share/feral-interactive/XCOM2/VFS/Local/my\ games/XCOM2/XComGame/Config/XComEngine.ini
把 PoolSize=10
改成 256,OneFrameThreadLag=True
改成 False。再运行一下,虽然还有点卡,是不是能玩了?
JetBrains IDE 配置
你可能会发现 JetBrains 的 IDE 会有一个颜色漂移的问题,据说是来自于 jre。解决方案你可以参考 这篇 wiki。当然,最简单的方法是在 IDE 设置里把文字抗锯齿设置成灰度(greyscale),这样的效果我觉得已经基本可以接受了
中文字体与中文输入法
中文字体推荐安装官方源中noto-fonts-cjk
,中文输入法需要安装fcitx
包与fcitx-im
集合包,再加上一个中文支持包,可以到https://wiki.archlinux.org/index.php/fcitx#Chinese中挑选一个喜欢的包装上。
安装fcitx和搜狗输入法:
yay -S fcitx-im fcitx fcitx-configtool kcm-fcitx fcitx-gtk2 fcitx-gtk3 fcitx-qt4 fcitx-qt5 fcitx-sogoupinyin
or
yay -S fcitx fcitx-sogoupinyin fcitx-im kcm-fcitx fcitx-skin-material fcitx-rime
同样的,在~/.xprofile写入
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
可以解决一些软件无法调出fcitx的问题。
oh-my-zsh
zsh
是默认shell
bash
的替代品之一,它的特点是插件多配置方便,兼容bash
脚本并且支持更强大的高亮与补全。
安装官方源中zsh
包。
设置zsh
为默认shell
:
sudo chsh -s /bin/zsh username
curl 方式:
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
wget 方式
$ sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
推荐安装AUR
中的oh-my-zsh-git
这个包,可以帮助配置一些实用的功能。
其他主题插件配置请见oh-my-zsh的配置介绍,分享一下我安装的插件:
plugins=(vim git sudo extract archlinux zsh-autosuggestions zsh-syntax-highlighting)
注意后面两个插件需要安装相应的支持包并配置才能使用。
https://hufangyun.com/2017/zsh-plugin/
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
yay安装软件卡在 node install.js
终极解决方案
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
nvm install v8
npm 安装 node-sass 网速慢的 可以 运行 npm config set registry https://registry.npm.taobao.org
然后 编辑 ~/.npmrc 加入下面内容
# $HOME为你home目录路径的全写
cache=$HOME/.node_modules
prefix=$HOME/.node_modules
registry=https://registry.npm.taobao.org
sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
phantomjs_cdnurl=http://npm.taobao.org/mirrors/phantomjs
ELECTRON_MIRROR=http://npm.taobao.org/mirrors/electron/
系统备份
我目前的解决方案是 rsync,下面给出一个我从 Arch wiki 那里魔改来的备份脚本.区别基本上就是使用了更新和删除,就是如果目标位置已经有备份,他只会更新新的文件,并删除已经被删除了的文件。另外,我还把 steam 的路径添加到了黑名单,这样可以让我节省几十个G的游戏的硬盘空间。如果要还原的话,你只需要把 rsync 的参数互换一下,就以把备份文件复制回原来的位置了。
#!/bin/sh
START=$(date +%s)
rsync -aAXvu --delete /* /Your/Destination/Directory --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found,/var/lib/pacman/sync/*,/home/towdium/.local/share/Steam/*}
FINISH=$(date +%s)
echo "total time: $(( ($FINISH-$START) / 60 )) minutes, $(( ($FINISH-$START) % 60 )) seconds"
美化
GNOME 插件配置
要修改 GNOME 的插件,你需要安装 chrome-gnome-shell
,然后打开预装的 gnome-tweak-tool
,在相应的面板就可以编辑了。我对于 manjaro 挑插件的口味不是特别能认同,所以我把他们的大部份插件都拿掉了,按我的口味重新换了一波,大概列在下边:
- Advanced volume mixer:提供简单的控制各个程序音量的界面
- Netspeed:显示实时网速
- Openweather:天气预报
- Topicons plus:把状态栏(tray)的图标移动到状态栏(自带神秘特效)
GNOME 的插件其实多的能上天,装那些还是取决于你自己的口味。
Nautilus 插件配置
除去自带的插件,我还额外装了两个插件。如果你是 typeahead 的重度使用者(就是按键盘直接跳转到相应文件名的位置),你可能会发现新版的 nautilus 阉割了这个功能,不过安装 nautilus-typeahead
可以恢复这个功能。另外,nautilus-hide
可以帮你方便的隐藏文件,即使他并不是 .
开头。
gnome-tweak-tool
如果你安装了gnome-extra,那么这个工具已经被安装了,否则的话
sudo pacman -S gnome-tweak-tool
图标包
这里我使用的numix-circle图标包,这个图标包在aur里,直接用yay即可
yay -S numix-circle-icon-theme-git
然后在gnome-tweak-tool里启用主题
gtk主题
gtk主题我选择了arc主题
yay -S gtk-theme-arc-git
然后在gnome-tweak-tool里启用
gnome-shell主题
首先在gnome-tweak-tool里的拓展
里启用User themes
然后安装主题,这里我是用的贴吧的@Air_Wawei的Air主题,并自己做了些修改。
首先下载主题 然后解压,将Air文件夹放到/usr/share/themes/
文件夹里,在gnome-tweak-tool里启用主题
gdm背景
输入以下指令
curl -L -O http://archibold.io/sh/archibold
chmod +x archibold
./archibold login-backgroung 你的背景的地址
重启后gdm就会变成你要的背景
gnome-shell拓展
shell拓展请进入https://extensions.gnome.org/自行按照说明安装
screenfetch
screenfetch可以在终端里输出你的系统logo和状态。 可以用pacman安装:
pacman -S screenfetch
要让screenfetch在打开终端是自动输出,在~/.bashrc里加入
screenfetch
dock
要获得像苹果osx一样的dock可以用docky或者dash-to-dock
docky的话sudo pacman -S docky
即可,docky不支持wayland。
dash-to-dock是gnome拓展,请在https://extensions.gnome.org/自行按照说明安装
我这里装了docky,这是我的docky配置
纯命令行安装流程
|
|
参考文章
https://ruiming.me/archlinux-installation/
https://wiki.archlinux.org/index.php/Installation_guide
https://www.viseator.com/2017/05/17/arch_install/
https://www.viseator.com/2017/05/19/arch_setup/
https://www.viseator.com/2017/07/02/arch_more/
https://bleedingfight.github.io/2018/01/07/arch/
https://www.cnblogs.com/bluestorm/p/5929172.html
https://www.mivm.cn/archlinux-vmware/
https://www.zybuluo.com/Mahdi/note/1001705
http://yhhx.tech/2017/06/11/%E7%AC%94%E8%AE%B0/Arch-Linux%E5%AE%89%E8%A3%85%E8%AE%B0%E5%BD%95/
https://moonfoam.github.io/2017/10/04/ArchLinux-installation-note/
https://steemit.com/archlinux/@bigear/install-arch-linux
https://xlui.me/t/install-conky/
https://xlui.me/t/install-xfce4-in-archlinux/
https://www.jianshu.com/p/61eb6397fa8f
https://www.jianshu.com/p/fe2165cc6af8
https://bigeagle.me/2014/06/archlinux-install-for-beginners/
- 原文作者:码中春秋
- 原文链接:https://blog.taielab.com/2018/06/01/archlinux-install-guide.html
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。