惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Vulnerabilities – Threatpost
aimingoo的专栏
aimingoo的专栏
B
Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
GbyAI
GbyAI
阮一峰的网络日志
阮一峰的网络日志
Engineering at Meta
Engineering at Meta
IT之家
IT之家
V
Visual Studio Blog
The Cloudflare Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
A
About on SuperTechFans
博客园 - 聂微东
Blog — PlanetScale
Blog — PlanetScale
N
News and Events Feed by Topic
A
Arctic Wolf
WordPress大学
WordPress大学
小众软件
小众软件
C
CERT Recently Published Vulnerability Notes
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
D
Darknet – Hacking Tools, Hacker News & Cyber Security
F
Fortinet All Blogs
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Y
Y Combinator Blog
T
Threat Research - Cisco Blogs
Latest news
Latest news
Simon Willison's Weblog
Simon Willison's Weblog
Cyberwarzone
Cyberwarzone
S
Schneier on Security
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
L
Lohrmann on Cybersecurity
Stack Overflow Blog
Stack Overflow Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Privacy International News Feed
J
Java Code Geeks
Spread Privacy
Spread Privacy
宝玉的分享
宝玉的分享
I
Intezer
L
LangChain Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
G
GRAHAM CLULEY
博客园 - 叶小钗
博客园 - 三生石上(FineUI控件)
The GitHub Blog
The GitHub Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
N
News and Events Feed by Topic
AWS News Blog
AWS News Blog
Attack and Defense Labs
Attack and Defense Labs
Security Archives - TechRepublic
Security Archives - TechRepublic
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO

Yee's Blog

腾讯云/轻量云 安装ArchLinux的个人记录 Jenkins Linux安装 腾讯课堂、钉钉在线网课视频直播回放下载离线播放 Ceph块设备对RBD块设备操作LVM创建PV时报错 Ceph映射RBD块设备 2020年9月26日前端部门Vue考核 2020年9月26日后端部门Python考核 Nginx反向代理下载传输超过1G大文件时断开问题 Windows Server 2019 Datacenter M720q 安装记录 Ceph块设备基础及快照、克隆操作 从Ceph集群中删除OSD节点 Centos8配置 chrony NTP服务端及客户端 搭建Ceph集群 Ceph硬件准备 OSD与Pool池的常见操作及管理 Ceph用户管理 MacOS睡眠管理——让你的Mac睡的更香 初中古诗文必背篇目 Ansible 技巧之场 Ansible 包含和导入文件 Ansible 学习文档 Ansible 主机模式 Ansible 角色 Ansible 调整连接数 Splunk数据搜索和报表 Ansible 常用模块 Ansible 变量和事实 Ansible 任务控制 Ansible Playbook Ansible 基础概念 42Team-Flask框架-HTTP协议快速了解 42Team-Flask框架-路由和视图 42Team-Flask框架-请求与响应 42Team-Flask框架 42Team-Flask框架-Flask介绍 42Team-Flask框架-使用Pycharm来构建一个全新的Flask项目 How to install RHEL8(Centos) on Dell R710/R610 server Centos8安装Docker报错解决方案 Centos8安装Docker后容器内无法访问网络 Docker或Podman容器内无法解析DNS问题多种解决方案 使用NetworkManager来管理树莓派Ubuntu系统网络以及个人的体验优化 Linux 存储设备的挂载及识别 Firewalld 防火墙常用指令教程-常用规则(禁止Ping | 放行端口) Linux 查找系统中的文件 Linux 守护进程和控制服务 Linux SSH远程访问 42Team小组_Linux基础培训课件 如何在AmazeUI中当改变select标签后触发Vue方法的问题 使用Docker部署安装WordPress博客平台 在Raspberry树莓派中搭建NFS存储服务器 在 树莓派 Linux 中搭建匿名 danted socks5 代理服务器 HTTP与HTTPS区别随笔 Bash/Shell学习笔记
记录我的联想M720Q Arch Sway窗口管理器的安装和配置过程
本文作者: YeeFire · 2021-06-24 · via Yee's Blog

安装Arch Linux基本过程纪录

下载并烧录镜像

本次下载2021.5.1日的镜像,写这篇文章的时候是六一儿童节,但是并没有看到这个月的镜像。好耶,都去过六一了!

应该是最后一次用东软维云的镜像站咯!下载Arch 2021.5.1 ISO走起。

引导系统

引导Arch ISO前在BIOS中关闭安全引导,借着还有Windows的时候,更新了一下BIOS到2021年三月份的版本。

链接到互联网

在 Arch ISO Live中安装了iwd来管理无线网络,因为本次安装过程只有无线网络,那么用iwctl工具来配置本次安装过程中使用的无线网络。

进入iwctl交互模式: iwctl

罗列设备: device list,在列表中可以找到wlan0无线设备,记下来他的名字,接下来会使用到这个名称。

扫描无线网络: station wlan0 scan

罗列已发现的网络 station wlan0 get-networks

连接到无线网络 station wlan0 connect SSID

删除多余的引导

使用efibootmgr删除Windows引导。

efibootmgr -b 000X -B

更新系统时间

使用timedatectl更新时间,开启ntp。确保系统时间是准确的: timedatectl set-ntp true

建立硬盘分区

使用fdisk工具对磁盘进行分区,我要将整个磁盘都空间都划分给Arch使用。

fdisk /dev/nvme0n1

  • ESP分区 1G
  • SWAP分区 8G
  • 根文件存储 剩余空间

格式化磁盘文件系统

将ESP被格式化成,ESP分区格式化成FAT32分区格式: mkfs.vfat -F32 /dev/nvme0n1p1

创建SWAP文件系统:

mkswap /dev/nvme0n1p2

swapon /dev/nvme0n1p2

创建根目录文件系统ext4: mkfs.ext4 /dev/nvme0n1p3

挂载分区

挂载根分区目录: mount /dev/nvme0n1p3 /mnt

创建EFI目录并进行挂载:

mkdir /mnt/efi

mount /dev/nvme0n1p1 /mnt/efi

选择镜像源

文件 /etc/pacman.d/mirrorlist 定义了软件包会从哪个镜像源下载。在 LiveCD 启动的系统上,在连接到因特网后,reflector 会通过选择 20 个最新同步的 HTTPS 镜像并按下载速率对其进行排序来更新镜像列表。

在列表中越前的镜像在下载软件包时有越高的优先权。您或许想检查一下文件,看看是否满意。如果不满意,可以相应的修改 /etc/pacman.d/mirrorlist 文件,并将地理位置最近的镜像源挪到文件的头部,同时也应该考虑一些其他标准。

这个文件接下来还会被 pacstrap 拷贝到新系统里,所以请确保设置正确。

安装系统软件包

pacstrap /mnt base linux linux-firmware base-devel networkmanager

写入引导

用以下命令生成 fstab 文件 (用 -U 或 -L 选项设置UUID 或卷标):

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

强烈建议在执行完以上命令后,后检查一下生成的 /mnt/etc/fstab 文件是否正确。

切换根目录

Chroot更当前进程及其子进程的可见根路径。变更后,程序无法访问可见根目录外文件和命令。

arch-chroot /mnt

安装一些常用软件包

pacman -S vim bash-completion

设置时区时间

timedatectl set-timezone Asia/Shanghai

hwclock --systohc

设置使用的区域

编辑/etc/locale.gen然后移除需要的 地区 前的注释符号 #

接着执行 locale-gen 以生成 locale 信息

编辑/etc/locate.conf:

LANG=en_US.UTF-8

设置全局区域环境为美国英语环境。

稍后用户可以编辑自己的~/.config/locale.conf文件来设置使用的语言和特定的区域格式。如:

  • LANG
  • LANGUAGE
  • LC_ADDRESS
  • LC_COLLATE
  • LC_CTYPE
  • LC_IDENTIFICATION
  • LC_MEASUREMENT
  • LC_MESSAGES
  • LC_MONETARY
  • LC_NAME
  • LC_NUMERIC
  • LC_PAPER
  • LC_TELEPHONE
  • LC_TIME

LANG:默认的区域设置
这个变量的值会覆盖掉所有未设置的 LC_* 变量的值。

相关详情访问: Arch Wiki - Locate(简体中文)

设置主机名

hostnamectl set-hostname Archxxxxxx

设置用户及ROOT密码

设置root用户密码: passwd

添加普通用户并设置密码:

useradd -m username

passwd username

将用户添加到管理员组(wheel): usermod -aG wheel username

编辑/etc/sudoers文件允许wheel组中用户使用sudo提权到root级别权限。

安装引导程序

安装引导是安装的最后一步,使用GRUB配置本机引导,首先安装grubefibootmgr两个包。

pacman -S grub efibootmgr

然后按照下列步骤安装 GRUB:

挂载 EFI 系统分区,在本节之后的内容里,挂载点为/efi

选择一个启动引导器标识,这里叫做 GRUB。这将在 esp/EFI/ 中创建一个与标识同名的目录来储存 EFI 二进制文件,而且这个名字还会在 UEFI 启动菜单中表示 GRUB 启动项。

执行下面的命令来将 GRUB EFI 应用 grubx64.efi 安装到 esp/EFI/GRUB/,并将其模块安装到 /boot/grub/x86_64-efi/。

grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB

生成GRUB配置文件: grub-mkconfig -o /boot/grub/grub.cfg

安装后的一些系统服务配置

使用NetworkManager管理本机网络

刚才在安装过程中使用pacstrap安装软件包时就已经将networkmanager软件包安装好了,接下来开启NetworkManager服务,并使用nmcli配置连接无线网络。

systemctl enable --now NetworkManager

罗列当前可用的无线网络: nmcli device wifi list

连接到SSID_NAME无线网络
nmcli device wifi connect SSID_NAME ifname wlp3s0 password <mypassword> name XXXXX

若要交互式的输入密码,可以加-a --ask参数,避免在终端内输入密码留下痕迹。

nmcli device wifi connect SSID_NAME ifname wlp3s0 name XXXXX

此时缺省password参数,会在终端内进行交互式输入密码。

PPPoE / DSL support

若要使用PPPoE拨号,需要rp-pppoe软件包后,才可以用nmcli连接。

pacman -S rp-pppoe

nmcli connection add type pppoe pppoe.username "myusername" pppoe.password "mypassword" ifname "enp1s0f1" con-name "NDR" autoconnect yes

nmcli connection up NDR

配置EAP PEAP认证无线网络

校内的无线网络使用EAP认证,通过查阅资料使用nmcli添加EAP无线网络方法如下:

nmcli connection add type wifi con-name my-CUCC ifname wlp3s0 ssid CUCC ipv4.method auto 802-1x.eap peap 802-1x.phase2-auth mschapv2 802-1x.identity yourusername 802-1x.password yourpassword wifi-sec.key-mgmt wpa-eap autoconnect yes

桌面窗口服务

使用Wayland图形显示服务,sway平铺窗口管理器。

常见的环境配置文件所在地址

对于特定用户,还可以在 /.bashrc、/.xinitrc 或 ~/.xprofile 中设置自己的用户环境。不同之处在于:

.bashrc:每次使用终端登录时读取并运用里面的设置。

.xinitrc:每次使用 startx 或 SLiM 启动 X 界面时读取并运用里面的设置。

.xprofile:每次使用 GDM 等显示管理器登录时读取并运用里面的设置。

安装wayland和Sway以及依赖的一些包

pacman -S wayland sway

pacman -S alacritty swayidle

有关使用Wayland中的常见问题详见Arch Wiki - Wayland

  • swayidle 在一定非活跃时间后执行操作 swayidle与swaylock配置延时锁屏
  • swaylock-effects Sway锁屏工具

配置Sway平铺窗口管理器

配置在登录系统后自动启动sway,以及配置Sway的程序启动器,任务栏,和各种优化。

配置tty登录后自动运行sway

vim ~/.bash_profile

启动Sway时,设置环境变量,其中包含让firefox使用wayland的标记变量以及QT环境等变量信息。

vim ~/.local/bin/sway


set -a
[ -f $HOME/.config/sway/env ] && . "$HOME/.config/sway/env"
set +a

if [ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty1" ]; then
exec sway
fi

编辑环境变量文件:

MOZ_ENABLE_WAYLAND=1
QT_QPA_PLATFORM=wayland
  • MOZ_ENABLE_WAYLAND=1 : 火狐浏览器使用Wayland图形窗口服务标记
  • QT_QPA_PLATFORM=wayland : 在Wayland环境下使用Qt5需要安装qt5-wayland包,并设置QT_QPA_PLATFORM=wayland环境变量。

使用wofi作为程序启动坞

安装wofi: yay -S wofi

修改Sway配置文件

set $menu dmenu_path | wofi --show drun -i | xargs swaymsg exec --

rofi-emoji

使用dex自动启动程序-Fcitx5(自启动fcitx5)

fcitx5等一些应用会创建XDG Autostart启动配置,通常以.desktop文件拓展名结尾。像fcitx5等一些程序包在安装时会在/etc/xdg/目录下生成配置文件,但是只有部分的窗口管理器支持xdg启动。在Sway中目前没有看到原生对它的支持,所以就需要一些其它工具辅助执行。

那么若要在进入桌面环境后自动启动fcitx5,则可以使用dex工具。它可以自动执行/etc/xdg/autostart目录下的.desktop程序启动配置文件。

安装dex: yay -S dex

在Sway配置文件中配置自启动dex:

~/.config/sway/config 文件末尾处添加: exec_always "dex -a"

之后在Sway启动后,会执行dex工具,dex工具又回去执行哪些在XDG自动启动目录下,但是在Sway中不会自动执行的程序启动配置文件.desktop,此时fcitx5已经可以自动启动了。

安装中文字体

推荐安装以下常用开源中文字体:

  • wqy-microhei
  • wqy-microhei-lite
  • wqy-bitmapfont
  • wqy-zenhei
  • noto-fonts-cjk

yay -S wqy-microhei wqy-microhei-lite wqy-bitmapfont wqy-zenhei noto-fonts-cjk

更新字体缓存: fc-cache -fv

关于更多本土化中文字体设置详见

Arch Wiki Simplified Chinese

锁屏工具swaylock

我使用的是swaylock-effects

创建锁屏执行脚本文件: sudo vim /usr/bin/lock-screen

#!/bin/bash

swaylock --screenshots --clock --indicator --indicator-radius 100 \
--indicator-thickness 7 --effect-blur 7x5 --effect-vignette 0.5:0.5 \
--ring-color bb00cc --key-hl-color 880033 --line-color 00000000 \
--inside-color 00000088 --separator-color 00000000 --grace 2 --fade-in 0.2

赋予全体用户执行权限: chmod u+x /usr/bin/lock-screen

接下里配置Sway配置文件: vim .config/sway/config





exec swayidle -w \
timeout 300 'lock-screen &' \
timeout 500 'swaymsg "output * dpms off"' \
resume 'swaymsg "output * dpms on"' \
before-sleep 'lock-screen &'



上面的部分配置为Sway默认配置,简单修改为上面的配置即可,修改好配置文件好需要重启Sway后才可以生效,因为使用的是exec,所以重新加载配置文件还不能生效,如果想要查看效果。可以: killall -9 sway ,之后重新登录系统等待查看效果。

延时工具swayidle配置

swayidle我用来和swaylock-effects搭配使用,用于在一定时间内无操作后自动执行脚本或程序,所以可以用来解决一定时间哪无操作自动锁屏的需求。

zsh

安装zsh: yay -S zsh

更改用户默认Shell: usermod --shell /usr/bin/zsh username

要注意bash_profile等文件是否有内容,如果有的话需要迁移为zsh相关的文件。

初始化默认配置文件:

git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
source .zshrc

常用软件包

这里会记录一些我常用的软件包

  • git
  • vim
  • bash-completion bash自动补全
  • rp-pppoe 对PPPoE的支持
  • openssh openssh 需要开启服务
  • rclone 挂载云盘
  • yay 使用yay管理AUR源
  • proxychains-ng 终端代理,可配置代理链
  • v2ray-core 请珍惜眼前所拥有的一切
  • ntfs-3g 挂载ntfs设备
  • qt5-wayland 在Wayland下支持Qt5,需要配置环境变量

开启archlinuxcn

我使用清华大学archlinuxcn源

使用方法:

/etc/pacman.conf 文件末尾添加以下两行,并安装 archlinuxcn-keyring 包导入 GPG key。

[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch

安装fcitx5-rime中文输入法

安装以下包:yay -S fcitx5 fcitx5-qt fcitx5-gtk fcitx5-configtool fcitx5-rime qt5-wayland

若在Wayland环境下使用Qt5需要安装qt5-wayland包,并设置QT_QPA_PLATFORM=wayland环境变量。

yay安装

git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si

或者在开启了archlinuxcn源后直接通过源安装。

pacman -S yay

让yay通过proxychains使用代理

go版本的yay不能使用proxychains进行代理,所以需要替换安装以下的软件包:

yay -S gcc-go (代替go)
yay -S yay (or yay-git)

重新安装yay后还需要更改proxychains的配置文件:将52行附近的proxy_dns前使用#注释#proxy_dns

Edge浏览器

从AUR源中安装微软Edge浏览器: yay -S microsoft-edge-dev-bin

在Wayland环境下,还需要对Edge浏览器的启动脚本做些手脚才能正式使用。

vim /usr/bin/microsoft-edge-dev

在exec指令中添加两个参数:

-enable-features=UseOzonePlatform

-ozone-platform=wayland

目前没办法在EDGE浏览器中使用输入法,待解决

安装Wine

Wine目前原生不支持wayland,需要Xwayland支持。不过经过搜索后发现Wine的Git仓库中存在了wayland分支,并且在持续开发,截止到目前已经支持wayland环境与Wine运行的应用共享剪贴板。

接下来尝试使用wayland的分支尝试编译运行。

emmmm失败了,错误提示找不到显示驱动,先不折腾它,接下来试试Xwayland吧。

安装Xwayland

yay -S xorg-xwayland

安装wine

Wine可通过开启Multilib仓库来安装wine包及依赖。

vim /etc/pacman.conf

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

yay -Sy

yay -S insatll wine