日常使用ArchLinux
简单来说,受够了windows,买不起osx,就只能折腾linux。折腾了好几个发行版,这次换了archlinux了。理由很简单:软件版本新、滚动发行、yaourt yay一切。
折腾了一阵子MacOS,发现它的软件管理太麻烦了:
- AppStore(系统更新、部分软件包)
- 网络上的软件包
- HomeBrew(GNU、Casks)
大部分Casks不能更换软件源,更新速度极慢,加上Mac机器老旧,新上市的AMD yes等原因,便回到了linux阵营。
系统安装
硬件信息
戴尔Inspiron 灵越 燃7000(Ins 14-7460-D1525S)
联想小新Pro2020锐龙版(Lenovo Ideapad S540-13ARE)
安装流程
启动安装镜像
关闭 Security Boot,跟Windows激活有关,但不影响激活使用。
https://mirrors.aliyun.com/archlinux/iso/latest/
https://mirrors.aliyun.com/archlinux/iso/latest/archlinux-2020.06.01-x86_64.iso
从
archlinux-2020.07.01-x86_64.iso
开始,安装环境移除了netctl
包,不再有wifi-menu
命令,应使用iwctl
来管理无线网连接。
- 使用grub直接引导iso镜像,其中
archisolabel
建议设置成iso的实际label。(manjaro的参数名称是misolabel
)menuentry 'install arch' { loopback loop (hd0,1)/.boot/linux/archlinux-2020.06.01-x86_64.iso set root=(loop) linux /arch/boot/x86_64/vmlinuz archisolabel=ARCH_202006 initrd /arch/boot/x86_64/archiso.img }
- 启动过程中会遇到问题,停在rootfs界面。
手动挂载iso文件所在的分区,假设挂载到Waiting 30 second for device /dev/disk/by_label/ARCH_201803 Error
/usb
,并加载对应的iso文件,然后退出rootfslosetup /dev/loop0 /usb/archlinux-2018.03.01-x86_64.iso
基础安装
分区以及挂载磁盘到/mnt
# 有线网会自动连接,无线网需要手动连接
# wifi连接,可能要执行 rfkill 命令,解禁无线设备(或者使用键盘快捷键解锁无线设备)
#iwctl --passphrase your_wifi_password station wlan0 connect your_wifi_name
# 分配ip
#dhcpcd
# 同步时间
timedatectl set-ntp true
# 镜像源
cat <<EOF>/etc/pacman.d/mirrorlist
Server = http://mirrors.aliyun.com/archlinux/\$repo/os/\$arch
EOF
# 分区,并挂载到`/mnt`(注意是否是efi启动),EFI分区挂载到`/boot/efi`
# base-devel包含yay所需组件
pacstrap /mnt base base-devel linux linux-firmware
# 生成分区挂载信息,如果有swapfile,注意修改路径
genfstab -U /mnt >> /mnt/etc/fstab
# chroot
arch-chroot /mnt
# ****** 以下为chroot环境 ******
# 时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 好像能避免windows、linux相差8小时的问题
hwclock --systohc
# 语言
cat <<EOF>> /etc/locale.gen
en_US.UTF-8
zh_CN.UTF-8
EOF
locale-gen
cat <<EOF>/etc/locale.conf
LANG=en_US.UTF-8
LANGUAGE=en_US
EOF
# 主机名
echo ideabook > /etc/hostname
cat <<EOF>> /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.0.1 ideabook
::1 ideabook
EOF
# LVM支持
pacman -S lvm2
# 添加lvm2钩子,HOOKS=(... block lvm2 filesystems ...)重建内核
vim /etc/mkinitcpio.conf
mkinitcpio -P
# NTFS分区支持
pacman -S ntfs-3g
# intel cpu
#pacman -S intel-ucode
# amd cpu
pacman -S amd-ucode
# 安装引导
pacman -S grub efibootmgr
# windows双系统检测
pacman -S os-prober
# 默认 --target=x86_64
grub-install
grub-mkconfig -o /boot/grub/grub.cfg
# 休眠支持
# /etc/mkinitcpio.conf
# 添加内核钩子resume,紧跟着filesystems HOOKS=(... filesystems resume ...)
# HOOKS=(base udev autodetect modconf block lvm2 filesystems resume keyboard fsck)
# /etc/default/grub
# 添加内核参数(swap分区位置信息) resume=/dev/sda4
# GRUB_CMDLINE_LINUX_DEFAULT="resume=/dev/vg0/swap loglevel=3 quiet splash"
# 网络连接
# 如:networkmanager(wicd已被弃用)
# 注意启用相应的网络服务只能启动一个
pacman -S openresolv
cat <<EOF>>/etc/resolvconf.conf
#name_servers=172.17.0.1
#name_servers_append=223.5.5.5
EOF
# NetworkManager
pacman -S networkmanager
cat <<EOF>/etc/NetworkManager/conf.d/rc-manager.conf
[main]
rc-manager=resolvconf
EOF
# iwd使用
mkdir /etc/iwd
cat <<EOF>/etc/iwd/main.conf
[General]
EnableNetworkConfiguration=true
[Network]
NameResolvingService=resolvconf
EOF
# 支持32位、aur源
pacman -S archlinuxcn-keyring
cat <<EOF>> /etc/pacman.conf
[multilib]
Include = /etc/pacman.d/mirrorlist
[archlinuxcn]
Server = http://mirrors.aliyun.com/$repo/$arch
EOF
pacman -Syy
pacman -S yay
退出并重启
exit
umount -R /mnt
reboot
图形界面
结构
Linux系统 <=> 显卡驱动 <=> 图形服务 <=> 桌面管理器 <=> 桌面环境
姑且这么理解吧,之前总搞不懂装个图形界面怎么这么多东西。
显卡驱动
pacman -S mesa lib32-mesa
-
intel
pacman -S xf86-video-intel
-
amdgpu
pacman -S xf86-video-amdgpu
4800U是5代GCN,非Southern Islands或Sea Islands启用内核模块
/etc/mkinitcpio.conf
MODULES=(amdgpu)
重建内核
mkinitcpio -P
-
nvidia
# nouveau驱动比较菜鸡,可以考虑安装nvidia包 #pacman -S xf86-video-nouveau pacman -S nvidia lib32-nvidia-utils pacman -S bumblebee lib32-virtualgl systemctl enable bumblebeed usermod -a -G bumblebee nono # 重启 pacman -S primus lib32-primus
测试
pacman -S mesa-demos glxgears -info optirun glxgears -info # 添加vblank_mode=0,primus才能全力运行 vblank_mode=0 primusrun glxgears -info vblank_mode=0 optirun -b primus glxgears -info
optirun默认使用virtualgl桥接,效率比primus低
primus好久没人维护了,有些bug
steam中游戏启动参数
vblank_mode=0 primusrun %command%
国服dota启动参数
vblank_mode=0 primusrun %command% -language schinese -international -perfectworld
图形服务
pacman -S xorg-server
桌面环境
推荐Deepin(V20目前Bug比较多),国人开发,界面美观,工具丰富。pacman -S deepin deepin-extra
- KDE功能强大,配置项灵活。扩展应用包很大,包含了很多不常用的如教育、游戏的软件包。
pacman -S plasma kde-applications # 不想安装mariadb时 #pacman -S plasma kde-applications --assume-installed=mariadb
- xfce4精简好用
pacman -S xfce4 xfce4-goodies # 如果是NetworkManager pacman -S nm-connection-editor network-manager-applet # 声音 pacman -S pulseaudio pulseaudio-alsa pulseaudio-bluetooth xfce4-pulseaudio-plugin pavucontrol
通用部分
# 网络组件(原则同上所述)
pacman -S networkmanager
systemctl enable NetworkManager
# 蓝牙播放设备所需组件,bluez默认已经安装
pacman -S bluez pulseaudio-bluetooth
# 蓝牙服务(蓝牙图标)
systemctl enable bluetooth
桌面管理器
lightdm
作为deepin
的依赖会自动安装,也可以给xfce4用
启用lightdm
桌面管理器pacman -S lightdm-gtk-greeter-settings systemctl enable lightdm
sddm
是kde默认的桌面管理器systemctl enable sddm
输入法
pacman -S wqy-microhei
# 中文字体 cjk(中日韩)
pacman -S noto-fonts-cjk
# yay不能以root运行
yay -S fcitx-sogoupinyin
# 用fcitx-configtool而不用kcm-fcitx(kde),会安装kwallte
# fcitx-gtk fcitx-qt能让输入法支持各个架构写的程序
pacman -S fcitx-configtool fcitx fcitx-qt5
# 设置环境变量,否则输入法切换不出来
cat <<EOF>>~/.xprofile
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export LANG=zh_CN.UTF-8
export LANGUAGE=zh_CN
EOF
cat <<EOF>>~.pam_environment
GTK_IM_MODULE DEFAULT=fcitx
QT_IM_MODULE DEFAULT=fcitx
XMODIFIERS DEFAULT=@im=fcitx
EOF
应用软件
# 工具
yay -S zsh git subversion mlocate
# 编辑器
yay -S vim sublime-text-imfix code phpstorm
# 网络
yay -S uget chromium firefox-i18n-zh-cn
# 开发
yay -S npm php mariadb-clients redis
yay -S postman-bin dbeaver docker docker-compose
#yay -S virtualbox virtualbox-host-modules-arch virtualbox-ext-oracle virtualbox-guest-iso
# 把当前用户加入virtualbox用户组,否则virtualbox识别不到usb设备
#usermod -a -G vboxusers ${USER}
# 聊天社交
yay -S thunderbird-i18n-zh-cn electronic-wechat qq-linux
# 音乐
yay -S netease-cloud-music
# wps、pdf
yay -S wps-office-cn ttf-wps-fonts foxitreader
# 图片处理
yay -S gimp
# 游戏
yay -S steam
#yay -S steam-native-runtime
#yay -S steamcmd
# 远程协助
#yay -S teamviewer
# 内网穿透
yay -S frpc frps
# 等宽字体
yay -S ttf-iosevka adobe-source-code-pro-fonts
# android安卓工具,adb/fastboot/driver
yay -S android-tools android-udev mtpfs gvfs-mtp gvfs-gphoto2
# 其他
yay -S sshpass
yay -S man-pages-zh_cn
开机动画
这里指的是,从grub选中以后,到出现登录界面之间的加载过程中的动画。使用KMS组件plymouth
。
安装
yay -S plymouth
# 以下为可选操作,plymouth-theme-arch-logo是个比较好看的动画(主题)
yay -S plymouth-theme-arch-logo
plymouth-set-default-theme arch-logo
配置plymouth参数
/etc/plymouth/plymouthd.conf
# Distribution defaults. Changes to this file will get overwritten during
# upgrades.
[Daemon]
Theme=arch-logo
ShowDelay=0
DeviceTimeout=5
配置KMS
编辑/etc/mkinitcpio.conf
,把plymouth
添加到HOOKS的base udev
之后,示例如下
HOOKS=(base udev plymouth autodetect modconf block filesystems keyboard fsck)
重建内核
每次修改plymouth参数都需要重建内核
mkinitcpio -P
如果设置主题时加上-R
参数,会自动执行上述操作
plymouth-set-default-theme -R arch-logo
修改内核参数
如果启动引导器是GRUB,编辑/etc/default/grub
,给常量GRUB_CMDLINE_LINUX_DEFAULT
添加quiet splash
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
然后重新生成grub配置文件
grub-mkconfig -o /boot/grub/grub.cfg
切换Plymouth版本的桌面管理器
能够使开机动画与登录界面平滑过度
- lightdm
systemctl disable lightdm systemctl enable lightdm-plymouth
- sddm
systemctl disable sddm systemctl enable sddm-plymouth
常见问题/FAQ
yay
执行安装命令后提示找不到数据库错误!
这是翻译的坑,原文是no database errors have been found
,意思是没有发现数据库错误
,就是没有错误,一切正常。adb shell
提示一下错误信息
archlinux安装error: insufficient permissions for device
android-udev
包即可。其他发行版参考在硬件设备上运行应用- 安装
archlinuxcn-keyring
秘钥验证失败(出现类似以下错误信息)
参考文章GnuPG-2.1 与 pacman 密钥环==> Locally signing trusted keys in keyring... -> Locally signing key 02E02B85AF209AA00F784A1DD48313B447CD9E46... ==> ERROR: 02E02B85AF209AA00F784A1DD48313B447CD9E46 could not be locally signed.
- 文件管理器连接samba
注意安装gvfs-smb
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南