当前位置: 首页 > news >正文

ArchLinux挑战安装(ZFS、Wayland、KDE、xero)

目录

0. 前言:

1. 先期准备

1.1 引导ArchLinx光盘。

1.2 禁用 reflector 服务

1.3 防止网卡禁用

1.4 wifi设置

1.5 测试网络是否连接

1.6 更新系统时间

1.7 更换源

1.8 下载ZFS模块

1.9 加载ZFS模块

2. 磁盘处理

2.1 查看磁盘分区

2.2 清除与整个磁盘关联的任何 ZFS 标签如果是新硬盘或者以前没有安装过ZFS的硬盘,可以忽略这条命令

2.3 创建磁盘分区

2.4 创建/boot的分区格式

2.5 创建ZFS池

2.6 创建数据集

2.7 导入导出测试

2.8 配置系统

2.8.1 设置zroot

2.8.2 创建cache并复制到新系统

2.8.3 挂载非ZFS分区

3. 安装系统

3.1 安装基本系统

3.2 生成fstab 

3.3 进入CHROOT,此时的任何操作都影响你想安装的系统。

3.4 修改pacman配置

3.5 设置key

3.6 安装ZFS模块

3.7 系统设置

3.7.1 编辑mkinitcpio文件

3.7.2 生成 hostid

3.7.3 重新生成 initramfs

3.7.4 安装其他软件

3.7.5 启动后台服务

3.8 安装引导

3.8.1 下载ZFSBootMenu

3.8.2 设置启动参数

3.8.3 (可选)安装rEFInd

3.8.3.1 下载安装

3.8.3.2 编辑refind.conf文件

4. 其它安装操作

4.1 设置时区

4.2 设置本地化

4.3 语言编码

4.4 设置主机名

4.5 HOSTS

4.6 设置ROOT密码

5. 收尾工作

5.1 生成zfs快照

5.2 重启机器

6. 重启后操作

6.1 以root登录。

6.2 添加用户

6.3 设置sudo

6.4 设置时区

6.5 设置archlinuxcn


0. 前言:

啊啊啊啊啊~~~~~为什么xero不出iso了啊~~~~~~~~

1. 先期准备

1.1 引导ArchLinx光盘。

1.2 禁用 reflector 服务

systemctl stop reflector.service

2020 年,archlinux 安装镜像中加入了 reflector 服务,它会自己更新 mirrorlist(软件包管理器 pacman 的软件源)。在特定情况下,它会误删某些有用的源信息。

通过以下命令查看该服务是否被禁用

systemctl status reflector.service

按下 q 退出结果输出。

1.3 防止网卡禁用

rfkill unblock all

1.4 wifi设置

#是否启用了网络接口

ip link

#执行iwctl命令,进入交互式命令行

iwctl

-------------下面为iwctl界面,不同于终端-----------

help                                                         # 输入help回车可以查看使用说明

device list                                                 # 回车后可以查看当前网卡设备,一般为 wlan0

station <device> scan                         # <device>替换为上面的网卡设备,这条命令可以让网卡扫描wifi设备

station <device> get-networks                 # 回车后可以显示当前可连接网络,列出所有 wifi 网络

station <device> connect <wifi name>         # 连接wifi, <wifi name> 为上面获取的wifi名称,注意这里无法输入中文。回车后输入密码即可 password: # 如果wifi为加密wifi,输入密码回车

exit或者quit # 退出 wifi 连接界面

1.5 测试网络是否连接

ping www.baidu.com -n

1.6 更新系统时间

更新系统时间是有必要的,因为下载软件是服务器会验证系统时间,如果时间不正确,可能出现下载失败的情况。

timedatectl set-ntp true # 将系统时间与网络时间进行同步

timedatectl status # 查看系统时间状态,检查是否成功 看到(system clock synchronized :yes)这一句就是成功了

1.7 更换源

# 备份原来的配置文件

cp -a /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak

# 编辑配置文件 vim /etc/pacman.d/mirrorlist

# ---------------下面为vim操作,不同于终端-------------

# 找到第一个 Server=... 的行在该行上一行写入以下内容

Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch # 中国科学技术大学开源镜像站

Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch # 清华大学开源软件镜像站

Server = https://repo.huaweicloud.com/archlinux/$repo/os/$arch         # 华为开源镜像站

Server = http://mirror.lzu.edu.cn/archlinux/$repo/os/$arch         # 兰州大学开源镜像站

Server = http://mirrors.aliyun.com/archlinux/$repo/os/$arch         # 阿里云镜像站

# -------------------------------------------------- #

也可以按/,搜索China,找到中科大的镜像源,然后2dd 剪切2行,再按GG回到第一行,按 p 粘贴

或者reflector自动选择

pacman -S reflector # 安装
# 选择最快的镜像源
sudo reflector --verbose -l 200 -p https --sort rate --save /etc/pacman.d/mirrorlist
# 或者 选择在xx的最快镜像源,最新的50个
sudo reflector --verbose --latest 200 -p https --sort rate -c Japan,'South Korea',Taiwan,India,'United States',Canada,Germany,France --save /etc/pacman.d/mirrorlist

更新软件包

pacman -Syy

1.8 下载ZFS模块

curl -s https://archzfs.leibelt.de/media/setup/init | bash

1.9 加载ZFS模块

modprobe zfs

lsmod | grep zfs

2. 磁盘处理

2.1 查看磁盘分区

lsblk

ls -la /dev/disk/by-id

找到要操作的硬盘后,设置一个变量,方便后续操作

disk=/dev/disk/by-id/ata-CT1000MX500SSD1_2138E5D33BCE

2.2 清除与整个磁盘关联的任何 ZFS 标签
如果是新硬盘或者以前没有安装过ZFS的硬盘,可以忽略这条命令

zpool labelclear -f &disk-part3

2.3 创建磁盘分区

parted -a optimal $disk

        mkpart ESP 0% 300M

        mkpart BOOT 300M 1500M

        mkpart rootfs 1500M 100%

        set 1 boot on

quit

2.4 创建/boot的分区格式

mkfs.vfat /dev/nvme0n1p1

mkfs.fat -F 32 /dev/nvme0n1p1

mkfs.ext4 /dev/nvme0n1p2

2.5 创建ZFS池

zpool create -f \
            -o ashift=12 \
            -O acltype=posixacl \
            -o autotrim=on \
            -O mountpoint=none \
            -O canmount=off \
            -O relatime=on \
            -O xattr=sa \
            -O normalization=formD \
            -O dnodesize=legacy \
            -O devices=off \
            -O compression=zstd \
            -R /mnt \
            zroot ${disk}-part3

检查一下

zpool status

2.6 创建数据集

zfs create -o mountpoint=none zroot/data
zfs create -o mountpoint=none zroot/ROOT
zfs create -o mountpoint=/ -o canmount=noauto zroot/ROOT/default
zfs create -o mountpoint=/home zroot/data/home
zfs create -o mountpoint=/root zroot/data/home/root

查看一下

zfs list

2.7 导入导出测试

zpool export zroot

zpool import -d /dev/disk/by-id -R /mnt zroot -N

zfs mount zroot/ROOT/default

zfs mount -a

检查是否挂载

mount | grep mnt

2.8 配置系统

2.8.1 设置zroot

zpool set bootfs=zroot/ROOT/default zroot

2.8.2 创建cache并复制到新系统

zpool set cachefile=/etc/zfs/zpool.cache zroot

mkdir -p /mnt/etc/zfs

cp /etc/zfs/zpool.cache /mnt/etc/zfs/zpool.cache

2.8.3 挂载非ZFS分区

mkdir /mnt/boot

mount /dev/nvme0n1p2 /mnt/boot

mkdir /mnt/efi

mount -t vfat /dev/nvme0n1p1 /mnt/efi

3. 安装系统

3.1 安装基本系统

pacstrap /mnt base base-devel linux-zen linux-zen-headers \

        openssh grub efibootmgr \

        intel-ucode mesa lib32-mesa vulkan-intel lib32-vulkan-intel \

        libva-intel-driver libvdpau-va-gl intel-compute-runtime \

        mesa xf86-video-intel  intel-gpu-tools \

        helix dkms

3.2 生成fstab 

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

编辑fstab

helix /mnt/etc/fstab

注释掉所有zroot行.

3.3 进入CHROOT,此时的任何操作都影响你想安装的系统。

arch-chroot /mnt

3.4 修改pacman配置

编辑/etc/pacman.conf,在最后加入下面代码

helix /etc/pacman.conf

添加下面内容

[archzfs]
# SigLevel = Optional TrustAll
# Origin Server - France
Server = http://archzfs.com/archzfs/x86_64
# Mirror - Germany
Server = http://mirror.sum7.eu/archlinux/archzfs/archzfs/x86_64
# Mirror - Germany
Server = https://mirror.biocrafting.net/archlinux/archzfs/archzfs/x86_64
# Mirror - India
Server = https://mirror.in.themindsmaze.com/archzfs/archzfs/x86_64
# Mirror - US
Server = https://zxcvfdsa.com/archzfs/archzfs/x86_64

3.5 设置key

pacman-key -r DDF7DB817396A49B2A2723F7403BD972F75D9D76

pacman-key --lsign-key DDF7DB817396A49B2A2723F7403BD972F75D9D76

3.6 安装ZFS模块

pacman -Sy zfs-dkms

3.7 系统设置

3.7.1 编辑mkinitcpio文件

helix /etc/mkinitcpio.conf

MODULES加入zfs,删除HOOK里的fsck,在filesystems前面加上zfs

MODULES=(zfs)
HOOK(... keyboard zfs filesystems)

3.7.2 生成 hostid

zgenhostid $(hostid)

3.7.3 重新生成 initramfs

mkinitcpio -P

3.7.4 安装其他软件

pacman -S man-db man-pages efibootmgr networkmanager \
            terminus-font texinfo mtools dosfstools \
            pacman-contrib openssh bash-completion \

                bash bash-completion sudo net-tools curl \

        dhcpcd e2fsprogs iwd man-db man-pages

3.7.5 启动后台服务

systemctl enable NetworkManager
systemctl enable zfs.target
systemctl enable zfs-import-cache
systemctl enable zfs-mount
systemctl enable zfs-import.target
systemctl enable zfs-zed

3.8 安装引导

3.8.1 下载ZFSBootMenu

curl -O -L https://get.zfsbootmenu.org/zfsbootmenu.EFI

拷贝EFI文件

mkdir -p /efi/EFI/zbm

mv zfsbootmenu-release-x86_64-v2.3.0-vmlinuz.EFI /efi/EFI/zbm/zfsbootmenu-v2.3.0.EFI

3.8.2 设置启动参数

zfs set org.zfsbootmenu:commandline="rw quiet loglevel=0 nowatchdog" zroot/ROOT

efibootmgr -c -d /dev/dev/nvme0n1 -p 1 -L "ArchLinux(ZFS)" -l '\EFI\zbm\zfsbootmenu-v2.3.0.EFI'

3.8.3 (可选)安装rEFInd

3.8.3.1 下载安装

pacman -S refind

refind-install --usedefault /dev/sda1

3.8.3.2 编辑refind.conf文件

helix /efi/EFI/refind/refind.conf

dont_scan_dirs EFI/Boot,EFI/Microsoft/Boot,EFI/refind,EFI/zbm
dont_scan_volumes ext2,ext3,ext4,ntfs,OSX,EFI0,SYSTEM,EFIU,EFIM
scan_all_linux_kernels falsemenuentry "Archlinux (ZBM)" {loader \EFI\zbm\zfsbootmenu-v2.3.0.EFIicon \EFI\refind\themes\nord\icons\os_arch.pngoptions "quiet loglevel=0"
}

4. 其它安装操作

4.1 设置时区

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

hwclock --systohc

4.2 设置本地化

helix /etc/locale.gen

搜索en_US和zh_CN取消下面两行的注释en_US.UTF-8 UTF-8zh_CN.UTF-8 UTF-8保存退出

locale-gen

4.3 语言编码

echo "LANG=en_US.UTF-8" > /etc/locale.conf

4.4 设置主机名

echo '主机名' > /etc/hostname

4.5 HOSTS

echo -e '127.0.0.1 localhost\n::1 localhost\n127.0.1.1 主机名' >> /etc/hosts

4.6 设置ROOT密码

passwd

5. 收尾工作

5.1 生成zfs快照

zfs snapshot zroot@install

5.2 重启机器

exit

umount /mnt/efi

umount /mnt/boot

zfs umount -a

zpool export zroot

reboot

6. 重启后操作

6.1 以root登录。

6.2 添加用户

useradd -m -G wheel 用户名

passwd 用户名

6.3 设置sudo

以helix为编辑器编辑sudo

EDITOR=helix visudo

取消这一行的注释

%wheel ALL=(ALL:ALL) ALL

6.4 设置时区

timedatectl set-ntp 1

6.5 设置archlinuxcn

helix /etc/pacman.conf

取消Color和ParallelDownloads = 5 两行的注释,添加一行ILoveCandy(下载包时使用吃豆人动画)

Color
ParallelDownloads = 5
ILoveCandy

在文件最后加入archlinuxcn仓库

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

可选的仓库如下:

## 北京外国语大学 (北京) (ipv4, ipv6, http, https)
## Added: 2020-05-18
[archlinuxcn]
Server = https://mirrors.bfsu.edu.cn/archlinuxcn/$arch
## 北京大学 (北京) (ipv4, ipv6, http, https)
## Added: 2023-02-26
[archlinuxcn]
Server = https://mirrors.pku.edu.cn/archlinuxcn/$arch
## 腾讯云 (Global CDN) (ipv4, ipv6, http, https)
## Added: 2018-11-23
[archlinuxcn]
Server = https://mirrors.cloud.tencent.com/archlinuxcn/$arch
## 网易 (China CDN) (ipv4, http, https)
[archlinuxcn]
Server = https://mirrors.163.com/archlinux-cn/$arch
## 阿里云 (Global CDN) (ipv4, ipv6, http, https)
## Added: 2020-07-03
[archlinuxcn]
Server = https://mirrors.aliyun.com/archlinuxcn/$arch
## 清华大学 (北京) (ipv4, ipv6, http, https)
[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
## 中国科学技术大学 (安徽合肥) (ipv4, ipv6, http, https)
[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
## 吉林大学 (吉林长春) (ipv4, ipv6, http, https)
## Added: 2023-04-21
[archlinuxcn]
Server = https://mirrors.jlu.edu.cn/archlinuxcn/$arch
## 浙江大学 (浙江杭州) (ipv4, ipv6, http, https)
## Added: 2017-06-05
[archlinuxcn]
Server = https://mirrors.zju.edu.cn/archlinuxcn/$arch
## 重庆大学 (重庆) (ipv4, ipv6, http, https)
[archlinuxcn]
Server = https://mirrors.cqu.edu.cn/archlinuxcn/$arch
## 重庆邮电大学 (重庆) (ipv4, ipv6, http, https)
[archlinuxcn]
Server = https://mirrors.cqupt.edu.cn/archlinuxcn/$arch
## SJTUG 软件源镜像服务 (上海) (ipv4, ipv6, https)
## Added: 2018-05-21
[archlinuxcn]
Server = https://mirror.sjtu.edu.cn/archlinux-cn/$arch
## 南京大学 (江苏南京) (ipv4, ipv6, http, https)
[archlinuxcn]
Server = https://mirrors.nju.edu.cn/archlinuxcn/$arch
## 南方科技大学 (广东深圳) (ipv4, ipv6, http, https)
## Added: 2021-08-17
[archlinuxcn]
Server = https://mirrors.sustech.edu.cn/archlinuxcn/$arch
## 武昌首义学院 (湖北武汉) (ipv4, ipv6, http, https)
## Added: 2023-04-07
[archlinuxcn]
Server = https://mirrors.wsyu.edu.cn/archlinuxcn/$arch
## 华中科技大学 (湖北武汉) (ipv4, ipv6, http, https)
## Added: 2024-05-07
[archlinuxcn]
Server = https://mirrors.hust.edu.cn/archlinuxcn/$arch
## 北京交通大学 (北京) (ipv4, ipv6, https)
## Added: 2023-08-19
[archlinuxcn]
Server = https://mirror.bjtu.edu.cn/archlinuxcn/$arch
## 兰州大学 (甘肃兰州) (ipv4, ipv6, http, https)
## Added: 2023-08-19
[archlinuxcn]
Server = https://mirror.lzu.edu.cn/archlinuxcn/$arch
## 西安交通大学 (陕西西安) (ipv4, ipv6, http, https)
## Added: 2023-08-19
[archlinuxcn]
Server = https://mirrors.xjtu.edu.cn/archlinuxcn/$arch
## 南阳理工学院 (河南南阳) (ipv4, ipv6, http, https)
## Added: 2023-08-19
[archlinuxcn]
Server = https://mirror.nyist.edu.cn/archlinuxcn/$arch
## 南京工业大学 (江苏南京) (ipv4, ipv6, http, https)
## Added: 2023-08-19
[archlinuxcn]
Server = https://mirrors.njtech.edu.cn/archlinuxcn/$arch
## 上海科技大学 (上海) (ipv4, https)
## Added: 2023-08-19
[archlinuxcn]
Server = https://mirrors.shanghaitech.edu.cn/archlinuxcn/$arch
## 中国科学院软件研究所 (北京) (ipv4, https)
## Added: 2023-08-19
[archlinuxcn]
Server = https://mirror.iscas.ac.cn/archlinuxcn/$arch
## 北京邮电大学 (北京) (ipv4, ipv6, http, https)
## Added: 2023-09-15
[archlinuxcn]
Server = https://mirrors.bupt.edu.cn/archlinuxcn/$arch
## CICKU (Global CDN w/o China) (ipv4, ipv6, http, https)
## Added: 2023-11-15
## Rate limiting mainland China traffic
[archlinuxcn]
Server = https://mirrors.cicku.me/archlinuxcn/$arch
## NCKU CCNS (Taiwan) (ipv4, http, https)
## Added: 2021-06-30
## Resources provided by NCKU CSIE
[archlinuxcn]
Server = https://archlinux.ccns.ncku.edu.tw/archlinuxcn/$arch
## xTom (Hong Kong server) (Hong Kong) (ipv4, ipv6, http, https)
## Added: 2017-09-18
## Blocking users in mainland China
[archlinuxcn]
Server = https://mirrors.xtom.hk/archlinuxcn/$arch
## xTom (Singapore server) (Singapore) (ipv4, ipv6, http, https)
## Added: 2024-04-14
## Blocking users in mainland China
[archlinuxcn]
Server = https://mirrors.xtom.sg/archlinuxcn/$arch
## xTom (US server) (San Jose, CA, United States) (ipv4, ipv6, http, https)
## Added: 2019-02-19
## Blocking users in mainland China
[archlinuxcn]
Server = https://mirrors.xtom.us/archlinuxcn/$arch
## xTom (Netherlands server) (Amsterdam, the Netherlands) (ipv4, ipv6, http, https)
## Added: 2019-09-07
## Blocking users in mainland China
[archlinuxcn]
Server = https://mirrors.xtom.nl/archlinuxcn/$arch
## xTom (Germany server) (Duesseldorf, Germany) (ipv4, ipv6, http, https)
## Added: 2021-05-07
## Blocking users in mainland China
[archlinuxcn]
Server = https://mirrors.xtom.de/archlinuxcn/$arch
## xTom (Estonia server) (Tallinn, Estonia) (ipv4, ipv6, http, https)
## Added: 2021-05-27
## Blocking users in mainland China
[archlinuxcn]
Server = https://mirrors.xtom.ee/archlinuxcn/$arch
## xTom (Japan server) (Osaka, Japan) (ipv4, ipv6, http, https)
## Added: 2022-01-17
## Blocking users in mainland China
[archlinuxcn]
Server = https://mirrors.xtom.jp/archlinuxcn/$arch
## xTom (Australia server) (Sydney, Australia) (ipv4, ipv6, http, https)
## Added: 2022-07-03
## Blocking users in mainland China
[archlinuxcn]
Server = https://mirrors.xtom.au/archlinuxcn/$arch
## Open Computing Facility, UC Berkeley (Berkeley, CA, United States) (ipv4, ipv6, http, https)
## Added: 2019-02-19
[archlinuxcn]
Server = https://mirrors.ocf.berkeley.edu/archlinuxcn/$arch

7.安装xero-plasma

xero-plasma

下载脚本并执行。

8.设置Wayland

8.1 检测Wayland

pacman -Qi wayland

如果未安装,请使用以下命令安装它:

sudo pacman -S --needed wayland

8.2 显示管理器

目前只有 GDM 和 sddm-git 在 Arch Linux 中具有适当的 Wayland 支持。

yay -S sddm-git

8.3 安装Wayland包

pacman -S --needed xorg-xwayland xorg-xlsclients qt5-wayland glfw-wayland
xorg-xwayland:用于在 Wayland 下运行 xclients
xorg-xlsclients:列出在显示器上运行的客户端应用程序(可选)
qt5-wayland:Wayland 的 Qt API
glfw-wayland:Wayland 的 GUI 应用程序开发包

其次,使用以下命令集通过 Wayland 会话安装 plasma 和相关应用程序。按照下面提到的顺序执行它们。

pacman -S --needed plasma kde-applications
pacman -S --needed plasma-wayland-session

完成后,启用显示管理器和 NetworkManager 服务。

sudo systemctl enable sddm
sudo systemctl enable NetworkManager

sddm 显示管理器需要更多调整。使用任何文本编辑器,打开 sddm 配置文件并在.Current=breeze[Theme]

sudo nano /usr/lib/sddm/sddm.conf.d/default.conf
[Theme]
# current theme nameCurrent=breeze

完成后,保存并关闭文件。并重启。

8.4  Firefox 使用 Wayland

打开/etc/environment,添加一行

MOZ_ENABLE_WAYLAND=1

然后,重启或运行下面的命令即可生效。

source /etc/environment

打开 Firefox 并转到以根据“窗口协议”验证值。您还可以从终端运行以查看 Wayland 下正在运行哪些外部应用程序。

about:supportxlsclients

相关文章:

ArchLinux挑战安装(ZFS、Wayland、KDE、xero)

目录 0. 前言&#xff1a; 1. 先期准备 1.1 引导ArchLinx光盘。 1.2 禁用 reflector 服务 1.3 防止网卡禁用 1.4 wifi设置 1.5 测试网络是否连接 1.6 更新系统时间 1.7 更换源 1.8 下载ZFS模块 1.9 加载ZFS模块 2. 磁盘处理 2.1 查看磁盘分区 2.2 清除与整个磁盘…...

纯css写一个动态圣诞老人

效果预览 在这篇文章中&#xff0c;我们将学习如何使用CSS来创建一个生动的圣诞老人动画。通过CSS的魔力&#xff0c;我们可以让圣诞老人在网页上摇摆&#xff0c;仿佛在向我们招手庆祝圣诞节和新年。 实现思路 实现这个效果的关键在于CSS的keyframes动画规则以及各种CSS属性…...

百度Apollo的PublicRoadPlanner一些移植Ros2-foxy的思路(持续更新)

如今的PublicRoadPlanner就是之前耳熟能详的EM planner 计划 —— ROS2与CARLA联合仿真 结构化场景: 规划算法:EM-planner 控制算法:MPC和PID 非结构化场景: 规划算法采用Hybrid A* (1)小车模型搭建(计划参考Github上Hybrid上的黑车,比较炫酷) (2)车辆里程计: 位…...

Linux内存管理(七十三):cgroup v2 简介

版本基于: Linux-6.6 约定: 芯片架构:ARM64内存架构:UMACONFIG_ARM64_VA_BITS:39CONFIG_ARM64_PAGE_SHIFT:12CONFIG_PGTABLE_LEVELS :31. cgroup 简介 术语: cgroup:control group 的缩写,永不大写(never capitalized); 单数形式的 cgroup 用于指定整个特性,也用…...

c++习题01-ljc的暑期兼职

目录 一&#xff0c;题目描述 二&#xff0c;思路 三&#xff0c;伪代码 四&#xff0c;流程图 五&#xff0c;代码 一&#xff0c;题目描述 二&#xff0c;思路 1&#xff0c;根据题目要求需要声明4个变量&#xff1a;a,b,c,d ;牛奶价格a&#xff0c;活动要求b&…...

有哪些方法可以恢复ios15不小心删除的照片?

ios15怎么恢复删除的照片&#xff1f;在手机相册里意外删除了重要的照片&#xff1f;别担心&#xff01;本文将为你介绍如何在iOS 15系统中恢复已删除的照片。无需专业知识&#xff0c;只需要按照以下步骤操作&#xff0c;你就能轻松找回宝贵的回忆。 一、从iCloud云端恢复删除…...

nacos漏洞汇总

1 nacos介绍 1.1 nacos是啥 Alibaba Nacos是阿里巴巴推出来的一个新开源项目&#xff0c;是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。致力于帮助发现、配置和管理微服务。Nacos提供了一组简单易用的特性集&#xff0c;可以快速实现动态服务发现、服…...

React Antd ProTable 如何设置类似于Excel的筛选框

React Antd ProTable 如何设置类似于Excel的筛选框 目标&#xff1a;在web页面的table表格中完成类似于EXCEL的Filter筛选功能。 示例图&#xff1a;点击标题列上方的漏斗状图标&#xff0c;即可对数据进行筛选。 ProTable 前景提要 ProTable API中有说明&#xff0c;是有…...

句法分析概述

第1关&#xff1a;句法分析概述 任务描述 本关任务&#xff1a;通过对句法分析基本概念的学习&#xff0c;完成相应的选择题。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 句法分析的基础概念&#xff1b; 句法分析的数据集和评测方法。 句法分析简介…...

简单了解css的基本使用

CSS 一、基础认知 1、CSS引入方式 1.1、内嵌式&#xff08;CSS写在style标签中&#xff09; style标签虽然可以写在页面的任意位置&#xff0c;但是通常约定写在head标签中 2.2、外联式&#xff08;CSS写在一个单独的.css文件中&#xff09; 需要通过link标签在网页中引入…...

构建网络图 (JavaScript)

前序&#xff1a;在工作中难免有一些千奇百怪的需求&#xff0c;如果你遇到构建网络图&#xff0c;或者学习应对未来&#xff0c;请看这边文章&#xff0c;本文以代码为主。 网络图是数据可视化中实用而有效的工具&#xff0c;特别适用于说明复杂系统内的关系和连接。这些图表…...

洛谷U389682 最大公约数合并

这道题最后有一个性质没有想出来&#xff0c;感觉还是有一点遗憾。 性质一、贪心是不对的 8 11 11 16虽然第一次选择8和16合并是最优的&#xff0c;但是如果合并两次的话8 11 11是最优的。 性质二 、有1的情况就是前k1个&#xff0c;也就是说&#xff0c;很多情况下取前k1都…...

video_多个m3u文件合并成一个m3u文件

主要是用#EXT-X-DISCONTINUITY进行拼接,用简单的例子说明: 第一个文件: #EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:69 #EXT-X-MEDIA-SEQUENCE:1001 #EXTINF:60.000000, xmt202406_11001.ts #EXTINF:60.000000, xmt202406_11002.ts #EXTINF:60.000000, xmt202406_11…...

x264 码率控制 MBtree 原理:i_propagate_cost计算过程

x264 码率控制 MBtree 原理 关于x264 码率控制中 MBtree 算法的原理具体可以参考:x264 码率控制MBtree原理。 i_propagate_cost介绍 该值在 frame.h 中 x264_frame_t结构体中声明。该值是一个 uint16_t型指针变量,在 MBtree 算法中用来存储每个宏块的传播代价。在*frame_ne…...

C语言基础笔记(全)

一、数据类型 数据的输入输出 1.数据类型 常量变量 1.1 数据类型 1.2 常量 程序运行中值不发生变化的量&#xff0c;常量又可分为整型、实型(也称浮点型)、字符型和字符串型 1.3 变量 变量代表内存中具有特定属性的存储单元&#xff0c;用来存放数据&#xff0c;即变量的值&a…...

通过注释语句,简化实体类的定义(省略get/set/toString的方法)

引用Java的lombok库&#xff0c;减少模板代码&#xff0c;如getters、setters、构造函数、toString、equals和hashCode方法等 import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;Data NoArgsConstructor AllArgsConstructorData&#xf…...

springboot框架使用Netty依赖中解码器的作用及实现详解

在项目开发 有需求 需要跟硬件通信 也没有mqtt 作为桥接 也不能http 请求 api 所以也不能 json字符串这么爽传输 所以要用tcp 请求 进行数据交互 数据还是16进制的 写法 有帧头 什么的 对于这种物联网的这种对接 我的理解就是 我们做的工作就像翻译 把这些看不懂的 字节流 变成…...

Python爬虫实战之爬取京东商品数据

在数字化时代&#xff0c;数据如同黄金般珍贵&#xff0c;而电商数据&#xff0c;尤其是像京东这样的大型电商平台上的信息&#xff0c;更是商家、市场分析师和数据科学家眼中的瑰宝。本文将带您走进Python爬虫的世界&#xff0c;探索如何高效、合法地采集京东商品数据&#xf…...

浅析Resource Quota中limits计算机制

前言 在生产环境中&#xff0c;通常需要通过配置资源配额&#xff08;Resource Quota&#xff09;来限制一个命名空间&#xff08;namespace&#xff09;能使用的资源量。在资源紧张的情况下&#xff0c;常常需要调整工作负载&#xff08;workload&#xff09;的请求值&#xf…...

《数据结构与算法基础 by王卓老师》学习笔记——1.4算法与算法分析

一、算法 1.1算法的研究内容 1.2算法的定义 1.3算法的描述 以下是算法的自然语言描述 以下是算法的传统流程图表示 以下是NS流程图表示 1.4算法和程序的区别与联系 1.5算法的五个特性 1.6算法设计的要求 Robustness也称为鲁棒性 二、算法分析 2.1算法时间效率的度量 2.1.1事…...

运维团队如何加强安全设备监控与日志管理

随着信息技术的飞速发展&#xff0c;网络安全问题日益凸显&#xff0c;安全设备的监控和日志管理成为了运维团队不可或缺的工作内容。本文将结合运维行业的实际需求&#xff0c;探讨如何加强安全设备监控与日志管理&#xff0c;以提升系统的安全性和稳定性。 一、安全设备监控…...

仓库管理系统13--物资设置

1、添加窗体 2、设计UI界面 注意这个下拉框的绑定&#xff0c;你看到的选项是由displaymember决定&#xff0c;当你选择了哪个选项时&#xff0c;后台绑定这个选项的ID <UserControl x:Class"West.StoreMgr.View.GoodsView"xmlns"http://schemas.microsoft…...

机器人控制系列教程之URDF文件语法介绍

前两期推文&#xff1a;机器人控制系列教程之动力学建模(1)、机器人控制系列教程之动力学建模(2)&#xff0c;我们主要从数学的角度介绍了机器人的动力学建模的方式&#xff0c;随着机器人技术的不断发展&#xff0c;机器人建模成为了机器人系统设计中的一项关键任务。URDF&…...

Arathi Basin (AB) PVP15

Arathi Basin &#xff08;AB&#xff09; PVP15 阿拉希盆地&#xff0c;PVP&#xff0c;15人战场...

Ubuntu/Linux SSH 端口转发

文章目录 Ubuntu/Linux SSH 端口转发概述本地端口转发场景一场景二 参考资料 Ubuntu/Linux SSH 端口转发 概述 SSH, Secure Shell 是一种在网络上用于安全远程登录到另一台机器的工具。除了远程登录以外&#xff0c;ssh 的端口转发是它的另一项强大功能。通过 ssh 端口转发功…...

flask的locked_cached_property

下面是一个关于 locked_cached_property 装饰器的详细教程。这个装饰器将一个方法转换为一个惰性属性&#xff0c;在第一次访问时计算其值&#xff0c;并在随后的访问中缓存该值。同时&#xff0c;它在多线程环境中是线程安全的。 教程&#xff1a;理解和使用 locked_cached_p…...

OSI七层模型TCP/IP四层面试高频考点

OSI七层模型&TCP/IP四层&面试高频考点 1 OSI七层模型 1. 物理层&#xff1a;透明地传输比特流 在物理媒介上传输原始比特流&#xff0c;定义了连接主机的硬件设备和传输媒介的规范。它确保比特流能够在网络中准确地传输&#xff0c;例如通过以太网、光纤和无线电波等媒…...

Swagger2及常用校验注释说明

Api(value "后台用户管理") RestController RequestMapping("bossuser") public class BossUserController {ApiOperation(value "测试接口")PostMapping("test")public String testUser(Valid RequestBody TestUser user) {LOG.inf…...

【项目实训】各种反爬策略及爬虫困难点总结

在这里&#xff0c;我总结了本次项目的数据收集过程中遇到的反爬虫策略以及一些爬虫过程中容易出现问题的地方。 user-agent 简单的设置user-agent头部为浏览器即可&#xff1a; 爬取标签中带href属性的网页 对于显示岗位列表的页面&#xff0c;通常检查其源代码就会发现&…...

能量智慧流转:全面升级储能电站的智能网关解决方案

监控系统是电化学储能电站的关键组成部分&#xff0c;储能电站也需要相应的监控系统&#xff0c;通过监控系统对储能设备的状态进行监测&#xff0c;实时感知储能设备的健康状态&#xff0c;控制储能设备的充放电功率和时机等&#xff0c; 一个好的监控系统可以实现储能电站安全…...

【金融研究】6月,对冲基金狂卖美国科技股 短期乐观,长期悲观?“油价最大空头”花旗:明年跌到60

科技股新高的背后&#xff0c;是对冲基金与散户投资者的分歧&#xff0c;对冲基金正在向散户投资者出售创纪录数量的科技/半导体/美股“七姐妹”股票。 对冲基金狂卖美国科技股 在五大明星科技股&#xff08;苹果、亚马逊、微软、英伟达、谷歌&#xff09;轮番创下历史新高的…...

GroundingDINO1.5突破开放式物体检测界限:介绍与应用

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…...

centos编译内核ko模块

1、make报错 make: * /lib/modules/4.14.0-49.el7a.aarch64/build: 没有那个文件或目录。 停止。 [rootlocalhost 4.14.0-49.el7a.aarch64]# pwd /lib/modules/4.14.0-49.el7a.aarch64 [rootlocalhost 4.14.0-49.el7a.aarch64]# ll 总用量 1744 lrwxrwxrwx. 1 root root …...

Android13 WMS窗口层级树

1&#xff0c;认识层级树 可以通过dumpsys activity containers 看到 WMS 层级树的结构 ACTIVITY MANAGER CONTAINERS (dumpsys activity containers) ROOT typeundefined modefullscreen override-modeundefined requested-bounds[0,0][0,0] bounds[0,0][1440,2960]#0 Displa…...

计算机毕业设计Python+LSTM+Tensorflow股票分析预测 基金分析预测 股票爬虫 大数据毕业设计 深度学习 机器学习 数据可视化 人工智能

基于TensorFlow-LSTM的股票预测系统开题报告 一、研究背景与意义 随着信息技术的飞速发展&#xff0c;股票市场作为现代经济活动的重要组成部分&#xff0c;其价格波动受到广泛关注。投资者们迫切希望通过科学的方法预测股票价格&#xff0c;以优化投资决策&#xff0c;实现利…...

仓库管理系统14--仓库设置

1、添加窗体 <UserControl x:Class"West.StoreMgr.View.StoreView"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:mc"http://schemas.openxmlformats.…...

Python 算法交易实验73 QTV200第二步: 数据清洗并写入ClickHouse

说明 先检查一下昨天启动的worker是否正常工作&#xff0c;然后做一些简单的清洗&#xff0c;存入clickhouse。 内容 1 检查数据 from Basefuncs import * # 将一般字符串转为UCS 名称 def dt_str2ucs_blockname(some_dt_str):some_dt_str1 some_dt_str.replace(-,.).re…...

记录:有趣的C#多元运算符 ? : 表达式写法

有时候用 if //...Whatre you she wanna go else if //...do do do else //...and i know something just like this... 感觉代码太多了怎么优雅的、高端的替换&#xff1f; 看个高端的栗子菊&#xff1a; LedCOM["parity"] ledData[4] "N" ? …...

华宽通中标长沙市政务共性能力建设项目,助力智慧政务建设新飞跃

在数字化浪潮的推动下&#xff0c;长沙市政府正积极拥抱智慧城市建设&#xff0c;以科技力量提升政务服务效能。华宽通凭借其卓越的技术实力与丰富的项目经验&#xff0c;成功中标长沙市政务共性能力建设项目&#xff0c;这无疑是对华宽通在智慧城市领域实力的高度认可。 华宽…...

[面试题]计算机网络

[面试题]Java【基础】[面试题]Java【虚拟机】[面试题]Java【并发】[面试题]Java【集合】[面试题]MySQL[面试题]Maven[面试题]Spring Boot[面试题]Spring Cloud[面试题]Spring MVC[面试题]Spring[面试题]MyBatis[面试题]Nginx[面试题]缓存[面试题]Redis[面试题]消息队列[面试题]…...

企业级低代码开发效率变革赋能业务增长

企业级低代码开发已经成为当今软件开发领域的一大趋势&#xff0c;它为企业带来了前所未有的效率变革&#xff0c;从而赋能业务增长。本文将围绕这一主题&#xff0c;深入探讨低代码开发的概念、优势以及如何在企业级应用中实现高效的低代码开发&#xff0c;以助力我国企业实现…...

2024最新总结:1500页金三银四面试宝典 记录35轮大厂面试(都是面试重点)

学习是你这个职业一辈子的事 手里有个 1 2 3&#xff0c;不要想着去怼别人的 4 5 6&#xff0c;因为还有你不知道的 7 8 9。保持空瓶心态从 0 开始才能学到 10 全。 毕竟也是跳槽高峰期&#xff0c;我还是为大家准备了这份1500页金三银四宝典&#xff0c;记录的都是真实大厂面…...

使用Spring Boot和Thymeleaf构建动态Web页面

使用Spring Boot和Thymeleaf构建动态Web页面 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;我们将探讨如何利用Spring Boot和Thymeleaf构建动…...

扫盲之webSocket

介绍 webSocket 是一种协议&#xff0c;设计用于在客户端和服务器之间提供低延迟、全双工、和长期运行的连接。 全双工&#xff1a;通信的两个参与方可以同时发送和接收数据&#xff0c;不需要等待对方的响应或传输完成 websocket就是为了解决实时通信的问题 建立webSocke…...

一些硬件知识(十二)

1、请说明一下滤波磁珠和滤波电感的区别。 因此磁珠通常用于模数地的连接。 磁珠由导线穿过铁氧体组成&#xff0c;直流电阻很小&#xff0c;在低频时阻抗也很小&#xff0c;对直流信号几乎没有影响。 在高频&#xff08;几十兆赫兹以上&#xff09;时磁珠阻抗比较大&#xff0…...

Adobe Acrobat编辑器最新版下载安装 Adobe Acrobat版本齐全!

功能强大&#xff0c;Adobe Acrobat无疑是PDF文档处理领域的翘楚。这款软件集多种PDF文档处理功能于一身&#xff0c;不仅使得用户可以轻松地编辑PDF文档&#xff0c;更能轻松应对转换和合并等多种需求。 在编辑功能上&#xff0c;Adobe Acrobat的表现尤为出色。无论是添加文字…...

k8s如何使用 HPA 实现自动扩展

使用Horizontal Pod Autoscaler (HPA) 实验目标&#xff1a; 学习如何使用 HPA 实现自动扩展。 实验步骤&#xff1a; 创建一个 Deployment&#xff0c;并设置 CPU 或内存的资源请求。创建一个 HPA&#xff0c;设置扩展策略。生成负载&#xff0c;观察 HPA 如何自动扩展 Pod…...

Hi3861 OpenHarmony嵌入式应用入门--0.96寸液晶屏 iic驱动ssd1306

使用iic驱动ssd1306&#xff0c;代码来源hihope\hispark_pegasus\demo\12_ssd1306 本样例提供了一个HarmonyOS IoT硬件接口的SSD1306 OLED屏驱动库&#xff0c;其功能如下&#xff1a; 内置了128*64 bit的内存缓冲区&#xff0c;支持全屏刷新;优化了屏幕刷新速率&#xff0c;…...

代码随想录训练营第二十二天 77组合

第一题&#xff1a; 原题链接&#xff1a;77. 组合 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 经典的回溯模板题&#xff1a; 终止条件&#xff0c;当中间变量用来存储单个结果的大小等于k&#xff0c;则将中间变量存放到结果数组中。 一个for循环横向遍历…...

Unity踩坑记录

1. 如果同时在父物体和子物体上挂载BoxCollider&#xff0c;那么当使用&#xff1a; private void OnTriggerEnter2D(Collider2D collision){if (collision.CompareTag("CardGroup")){_intersectCardGroups.Add(collision.GetComponent<CardGroup>());}} 来判…...