操作系统迭代、Debian安装教程

2023-05-16

前言

最近在考虑公司生产环境操作系统的迭代问题。目前,公司业务主要跑在CentOS7和8上面,由于CentOS早已停止了7和8的支持,新版的CentOS Stream也从RHEL的下游变成了上游,稳定性得不到保证。所以更换操作系统的想法又一次被提了起来。

方案

针对这次想法,大概有三个方案,分别如下:

方案1:只升级内核

目前网上有CentOS内核的LTS(长期支持)版本,解决了内核的安全问题,这个方案代价最小

方案2:替换为RHEL其他下游版本

包括:Rocky Linux、Oracle Linux或者AlmaLinux ,这些发行版基于RHEL发行,和生产环境理论上兼容性应该比较好,但是需要进行测试

方案3:替换为Debian

由于Debian的包比较新,需要按照线上环境进行兼容测试

总结

如上看来方案1和2代价最小,方案3代价最大。但是从网上看来,很多人都推荐Debian,因为Debian安装后运行时CPU使用率和内存占用率都要比Centos低不少,并且包也挺新,正是因为如此,前期需要做大量的测试工作。
注意:
安装完成时候简单操作了一下,流畅度确实要比CentOS快很多,下一步安装生产环境所需的软件进行测试

以下为Debian安装教程,非常详细。
安装过程相对于CenOS来说,步骤大同小异,只是分区要比CentOS繁琐不少

如果使用openstack或者虚拟化部署的,请直接从qcow2镜像进行安装开始看起。但是需要注意一点,由于为了减少镜像体积,openstack在打包时精简了非常多的包文件,在编译软件时需要安装很多的依赖包,并且需要做很多的软连接,不过很多依赖包可以使用apt install解决,这点比Centos好很多,如果是Centos需要卸载之前的旧包,然后进行手动编译安装

使用iso安装Debian

最新的Debian版本为11.03,可以在https://www.debian.org/distrib/进行下载,建议选择支持LTS的
选择Graphical install:图像化安装

image.png

选择语言

选择English
image.png

选择时区

选择Hong Kong
image.png

键盘布局

默认即可
image.png
进行检测
image.png

配置网络

Debian在安装时会使用DHCP分配IP,如果局域网内未开启DHCP服务,则会提示你配置网络失败,需要在安装界面进行手动配置,或者安装完成以后在操作系统里进行配置
提示自动配置网络失败,点击下一步
image.png
选择选择:Configure network manually 手动配置网络

image.png
输入IP地址
image.png
输入子网掩码
image.png
输入网关
image.png
输入DNS
image.png

配置主机名

image.png
配置解析DNS解析时的主机名
image.png

设置root密码

image.png

添加普通账户

image.png
设置普通账户密码:
image.png

硬盘分区

硬盘分区这里相对于Centos来说,操作步骤繁琐不少,没有Centos简单
分区规划:

  1. 文件系统使用ext4
  2. 除了boot为标准分区以外,其他分区为LVM
  3. 分区大小由于是测试环境,不在做规划

先开始创建boot分区,选择Manual
image.png
选择Yes
image.png
选择需要分区的磁盘,点击Continue
image.png
选择Create a new partition,创建一个新分区
image.png
创建boot引导区
设置boot分区大小,1G足够了,如果还嫌大,可以设置为512M
image.png
选择分区为Primary:主分区
image.png
设置大磁盘大小从开始算还是结束算,选择Beginning
image.png
Use as:选择文件系统为Ext4
mount point:选择挂载点为/boot
typical usage:文件系统inode大小为standard
boottable flag:开启引导
最后选择 Done setting up the partition ,完成当前分区工作
image.png
创建LVM
选择第三项:Configure the Logical Volume Manager,配置逻辑卷组(LVM)
image.png
选择yes
image.png
Create volume group 创建卷组
image.png
输入卷组名
image.png
添加磁盘到卷组,不要选错了,/dev/sda1为我们刚才创建好得boot分区,选下面的/dev/sda free
image.png
点击YES
image.png
选择Create logical volume 创建逻辑卷
image.png
选择刚才创建好的逻辑卷组
image.png
输入逻辑卷名称
image.png
分配大小,点击Continue完成创建
image.png
按照如上步骤依次完成 homeswapvar等lv的创建,最后点击 Finish partitioning and write changes to disk
点击Display configuration details查看LVM分区情况,没有错误,点击Finish完成分区
image.png
image.png
格式化LVM分区
选择刚才创建好的LVM分区
image.png
选择文件系统
选择挂载点
选择文件系统node大小
完成当前分区设置
依次完成剩余分区的初始化工作
image.png
全部完成以后点击 Finish partitioning and write changes to disk
image.png
最后选择Yes,点击Continue进行下一步
image.png

校验镜像

选择NO
image.png

选择软件包

只勾选最后2个即可
image.png

安装boot loader

image.png
选择/dev/sda
image.png

安装完成

点击Continue开始安装,安装完成重启即可
image.png
如果有不太明白的地方可以参考Debian官方文档:https://www.debian.org/releases/stable/installmanual

设置IP地址

注:如果在安装时配置了网络,这里不用在进行二次设置了
查看网卡名称,ip addr,ens33为网卡

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:78:b7:09 brd ff:ff:ff:ff:ff:ff
    altname enp2s1
    inet 192.168.1.190/24 brd 192.168.1.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe78:b709/64 scope link 
       valid_lft forever preferred_lft forever

编辑/etc/network/interfaces ,增加如下内容:

allow-hotplug ens33
iface ens33 inet static
        address 192.168.1.190/24
        gateway 192.168.1.1
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 114.114.114.114
        dns-search debian-test

vi /etc/resolv.conf,增加如下选项

search debian-test
nameserver 114.114.114.114

添加镜像源

把Debian默认的镜像源更换为中科大镜像源
备份现有配置文件

cp /etc/apt/sources.list /etc/apt/sources.list.bak

vi /etc/apt/sources.list删除之前的所有配置,添加新源

deb http://mirrors.ustc.edu.cn/debian stable main contrib non-free
# deb-src http://mirrors.ustc.edu.cn/debian stable main contrib non-free
deb http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free
# deb-src http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free

# deb http://mirrors.ustc.edu.cn/debian stable-proposed-updates main contrib non-free
# deb-src http://mirrors.ustc.edu.cn/debian stable-proposed-updates main contrib non-free

更新索引

apt-get update

安装vim测试一下

root@debian-test:~# apt install vim
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  libgpm2 vim-runtime
Suggested packages:
  gpm ctags vim-doc vim-scripts
The following NEW packages will be installed:
  libgpm2 vim vim-runtime
0 upgraded, 3 newly installed, 0 to remove and 1 not upgraded.
Need to get 7,756 kB of archives.
After this operation, 36.3 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://mirrors.ustc.edu.cn/debian stable/main amd64 libgpm2 amd64 1.20.7-8 [35.6 kB]
Get:2 http://mirrors.ustc.edu.cn/debian stable/main amd64 vim-runtime all 2:8.2.2434-3+deb11u1 [6,226 kB]
Get:3 http://mirrors.ustc.edu.cn/debian stable/main amd64 vim amd64 2:8.2.2434-3+deb11u1 [1,494 kB]
Fetched 7,756 kB in 0s (21.7 MB/s) 


使用qcow2镜像进行安装

下载镜像文件

https://www.debian.org/distrib/ 下载镜像文件
image.png

上传镜像到虚拟化平台

使用winscp上传镜像到虚拟平台,我这里用的是虚拟化平台为PVE
image.png

创建虚拟机

以下命令在PVE宿主机操作

# 新建vm
qm create 107 --name debian --ostype l26 --cores 1 --memory 2048 --net0 virtio,bridge=vmbr0,firewall=1, --sockets 1
# 候选参数,启用大页面: --hugepages 2048 --keephugepages 1 开启numa: --numa 1 开机自动启动: --onboot 1 

# 导入debian镜像至刚才创建的虚拟机
qm importdisk 107 debian-11-generic-amd64.qcow2 vm --format=qcow2

# 使用 VirtIO SCSI将磁盘附加到vm
qm set 107 --scsihw virtio-scsi-pci --scsi0 vm:107/vm-107-disk-0.qcow2

# 添加cloudinit镜像,传递参数给vm 
qm set 107 --ide2 vm:cloudinit --boot c --bootdisk scsi0 --serial0 socket --vga serial0

# 调整磁盘大小,debian镜像根大小只有2G
qm resize 107 scsi0 +30G

# 配置debian用户验证方式:密码、sshkey二选一
qm set 107 --cipassword test123456
# 如果使用sshkey一定要保存好sshkey的秘钥文件,生成的私钥在/root/.ssh/下
# qm set 107 --sshkey ~/.ssh/id_rsa.pub

# 设置IP获取方式,如果是dhcp,后面的添加ip、网关和DNS无需在操作
qm set 107 --ipconfig0 ip=dhcp
# qm set 107 --ipconfig0 ip=192.168.1.191/24,gw=192.168.1.1 
# 添加DNS
# qm set 107 --nameserver=114.114.114.114

# 检查配置
qm cloudinit dump 107 user

#创建107为镜像模板,如果不需要可以,如下步骤可以省略
qm template 107

#克隆镜像并重命名镜像
qm clone 107 108 --name debian

# 启动vm
qm start 108

初始化

vm开机后cloud-init会对其进行初始化和更新操作,这里需要等待一段时间,初始化完成以后,重启即可

登录

密码登录

如果在创建虚拟机的时候,配置了登录密码,在PVE管理端,打开控制台直接输入用户名和密码即可登录,默认的用户名为debian,如果想使用xshell远程管理,需要在/etc/ssh/sshd_config开启允许使用密码登录即可。登录完成使用sudo su切换为root即可。
官方不推荐使用PAM登录

ssh登录

如果使用ssh-key登录,需要保存/root/.ssh/id_rsa 私钥文件到本地,然后在XSHELL工具–>用户秘钥管理者,导入一下
新建连接,登录用户选择debian即可
image.png
image.png
image.png

配置apt镜像源

使用如下命令替换源为USTC

# 替换源为USTC
sudo sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list

# 重建缓存文件
sudo apt-get update

迁移home分区

Home目录默认在/上,不安全,需要剥离出去。操作步骤如下:

# 关闭107vm
qm stop 107

# 增加一块硬盘
qm set 107 --scsi1 vm:50,format=qcow2

进行分区、格式化、挂载

# 查看添加新硬盘序号
fdisk -l
Disk /dev/sdb: 50 GiB, 53687091200 bytes, 104857600 sectors # /dev/sdb为新添加的硬盘
Disk model: QEMU HARDDISK   
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

# 开始分区,使用lvm
fdisk /dev/sdb
Command (m for help): n # 输入n添加新的分区
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): e # 输入e选择扩展分区
Partition number (1-4, default 1): 
First sector (2048-104857599, default 2048):  # 起始大小,直接回车默认即可
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-104857599, default 104857599): # 结束大小,回车默认即可

Created a new partition 1 of type 'Extended' and of size 50 GiB.
Command (m for help): t # 输入t,转换分区为lvm
Selected partition 1
Aliases:
   linux          - 83
   swap           - 82
   extended       - 05
   uefi           - EF
   raid           - FD
   lvm            - 8E
   linuxex        - 85
Hex code or alias (type L to list all): 8e # 输入8e为lvm格式
Changed type of partition 'Extended' to 'Linux LVM'.
Command (m for help): w  # 保存变更
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks

# debian镜像没有lvm包,需要安装
apt install lvm2
# 创建pv
pvcreate /dev/sdb1
# 创建vg
vgcreate debian_vg /dev/sdb1
# 创建lv
lvcreate -L 49.9G -n lv_home debian_vg
# 格式化lv
mkfs.ext4 /dev/mapper/debian_vg-lv_home
# 备份秘钥到根分区
 -rf /home/debian/.ssh/ /
# 挂在lv到/home
mount /dev/mapper/debian_vg-lv_home /home
# 添加目录至分区表
echo "/dev/mapper/debian_vg-lv_home /home  ext4  defaults,noatime  0 0" >> /etc/fstab
# 创建目录
mkdir -p /home/debian
# 复制秘钥至新的debian目录下
cp -rf /.ssh/ /home/debian/
# 更改属主
chown -R debian:debian /home/debian/
# 更改完成后,记得新打开一个ssh窗口,看看是否报错,如果有报错,请检查上面步骤,是否都执行了。如果没有说明迁移成功
# 最后重启107虚拟机即可
qm reboot 107

如果有其他需要添加的分区,请按照添加**硬盘–>分区–>创建pv卷–>创建vg–>创建lv–>创建挂在目录–>挂载,**步骤执行即可

下一步安装生产环境所用的软件即可

参考来源

https://pve.proxmox.com/wiki/Cloud-Init_Support
https://pve.proxmox.com/pve-docs/qm.1.html
https://ubuntu.com/blog/cloud-init-v-18-2-cli-subcommands
https://gist.github.com/chriswayg/b6421dcc69cb3b7e41f2998f1150e1df

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

操作系统迭代、Debian安装教程 的相关文章

  • CentOS上搭建MPICH2开发环境的步骤

    本博客已迁往http coredumper cn 前提条件 共有 5 台机器 均安装有 CentOS6 4 系统 主机名分别为 node0 node1 node2 node3 node4 node0 作为主节点 这里的主节点是指将 node
  • 算法设计与分析5.11求解满足方程解问题

    编写一个实验程序 xff0c 求出a b c d e xff0c 满足ab cd e 61 1方程 xff0c 其中所有变量的取值为1 5并且均不相同 注 xff1a 原书上的方程为ab cd 43 e 61 1 xff0c 该方程无解 分
  • pip安装python第三方库的四种方法

    文章目录 一 无镜像安装二 镜像安装三 一劳永逸式镜像安装四 批量安装总结 一 无镜像安装 pip install 库名 打开命令提示符 win 43 r 输入cmd xff0c 在命令提示窗口输入pip install 库名 xff0c
  • 【计算机组成原理】实验5:运算器实验

    实验内容 一 实验原理 实验中所用的运算器数据通路如下图所示 ALU运算器由CPLD描述 运算器的输出经过2片74LS245三态门与数据总线相连 xff0c 2个运算寄存器AX BX的数据输入端分别由4个74LS374锁存器锁存 xff0c
  • 有什么免费好用的全球天气api?

    简单介绍几个 xff0c 选你觉得合适的就行 xff08 下面推荐的国内外的都有 xff0c 访问速度会有些差别 xff09 高德天气 API 天气查询 API文档 开发指南 Web服务 API 高德地图API知心天气 API HyperD
  • Xming的另一种配置,实现远程登录Linux图形界面

    Xming Xming xff1a 我估计这是最简单的登陆Linux桌面的方式了 可以到Xming的网站下载Xming软件 xff0c 因为是Windows软件 xff0c 所以安装非常简单 安装完成后会有两个快捷方式 xff0c 一个是X
  • openstack octavia 简介以及手工安装过程

    openstack octavia 是 openstack lbaas的支持的一种后台程序 xff0c 提供为虚拟机流量的负载均衡 实质是类似于trove xff0c 调用 nove 以及neutron的api生成一台安装好haproxy和
  • Win10 ubuntu子系统,如何安装到其他盘?

    win10的WSL子系统 xff0c 如果是按照网上的一般的安装方法 xff0c 基本都是安装到了C盘了 xff0c 但是只要稍微懂点电脑知识的人都不希望自己的软件安装到C盘 xff0c 那么这个子系统怎么能不安装到C盘咧 xff1f 首先
  • ffmpeg 转jpg文件为rgb32格式的文件

    ffmpeg i 1 jpg vcodec rawvideo pix fmt rgba raw1 rgb 1 jpg 需要转换的原始文件 rgba bgra rgba格式转换 raw1 rgb 转换完成输出的文件名 xff08 注 xff1
  • vbox下安装archlinux

    从 http mirrors ustc edu cn archlinux iso 下载archlinux 在vbox中启动安装介质 xff0c 默认关闭uefi 一路默认 xff0c 一直到磁盘分配 输入 span class hljs p
  • openstack zun源码分析

    容器服务启动过程 项目包括三个服务 xff0c 分别是zun api xff0c zun wsproxy xff0c zun compute xff0c 均使用systemctl来管理启动停止 xff0c 相关的服务文件如 zun api
  • 有效解决Ubuntu18.04无法联网问题

    网络配置 虚拟机的网络适配器的模式有两种 xff1a 桥接模式 xff1a 使得虚拟机拥有跟物理机一样的IP地址 NAT模式 xff1a 使得虚拟机直接共享物理机的IP xff0c 自己本身没有独立的IP地址 这两种模式选择在 以上两种模式
  • 5分钟带你了解音视频开发

    前言 想赚钱 xff0c 第一点就得选对自己的方向 xff0c 有的行业和领域 xff0c 无论你如何努力 xff0c 天花板也不过如此 选对时代的风口 xff0c 就算是头猪都能被吹上天 xff0c 今天我们就来聊聊音视频开发 蓬勃发展的
  • C# 学习笔记(一)-- C# 语言和 .NET 框架

    从今天开始 xff0c 在这里记录重新学习 C 的学习笔记 导语 之前曾经自学过一段时间的 C xff0c 也写过一些 WinForm 的小工具 个人认为 C 是我所见过的用法最为优雅 xff0c 使用起来最为舒服的语言 xff0c 因此便
  • Ubuntu 添加开机/关机执行脚本与service的理解

    最近碰到一个需求是需要在ubuntu中插入一个关机脚本 xff0c 在系统关机之前执行它 在网上浏览了很多资料 xff0c 但是没有切实可行的方法 xff0c 大多数的博客都是比较陈旧的方法 xff0c 可能已经不适用于最新的ubuntu1
  • Linux 进程间通信基础(四)--fifo管道

    最近正好有一些空余时间 xff0c 在这里总结一下曾经使用过的Linux进程间通信的几种方法 xff0c 贴出来帮助有需要的人 xff0c 也有助于自己总结经验加深理解 上一次我们梳理了pipe管道的相关知识 xff0c 这一次梳理fifo
  • 利用二进制文件制作自己的Debian软件安装包

    在使用Ubuntu系统的时候 xff0c 我们已经习惯了使用Debian风格的软件安装方式 即使用apt get install命令安转或dpkg i deb的方式安装debena软件包 但有时程序没有放到Ubuntu的源服务器上且不提供d
  • Tortoise Git 克隆出现"fatal: Authentication failed for"

    使用Tortoise Git克隆时出现 34 fatal Authentication failed for 34 的错误 xff0c 并且他还不让你输入用户名和密码 xff0c 寻找了许多办法 xff0c 看到最多的是在Git Bash中
  • 怎么解决 接口请求 504 Gateway Time-out

    HTTP 504 Gateway Timeout 错误通常是由于网关或代理服务器无法在规定的时间内从上游服务器接收到响应而导致的 这可能是由于上游服务器过载或网络问题导致的 要解决此问题 xff0c 可以尝试以下步骤 xff1a 检查上游服
  • WSL无法使用npm

    报错信息 root 64 DESKTOP U2RC2DU npm bash mnt c Program Files nodejs npm bin sh M bad interpreter No such file or directory

随机推荐

  • HDU 3700 Line belt

    Line belt Time Limit 2000 1000 MS Java Others Memory Limit 32768 32768 K Java Others Total Submission s 3669 Accepted Su
  • Ubuntu中使用framebuffer的方法

    打开 etc initramfs tools modules文件 xff0c 在末尾加上 xff1a fbcon vesafb 打开 etc modprobe d blacklist framebuffer xff0c 找到 blackli
  • html5.超链接标签,图片标签

    lt a gt 超链接标签 a标签常用的属性 xff1a href 用于指定链接的资源 target 设置打开新资源的目标 Blank 在独立的窗口上打开新资源 self 在当前窗口打开新资源 file file协议 xff08 文件协议
  • ubuntu22.04 搭建 Pytorch环境

    关于电脑 第一步 安装anaconda 1 进入官网 链接 anaconda 2 下载linux的sh版 3 在对应位置输入 span class token function sh span 文件名 sh 4 选择 yes 5 选择no
  • opencv的ORB特征(slambook2 orb_cv.cpp代码详解)

    ORB特征提取与匹配 slambook2 ch7 orb cv cpp 1 头文件 span class token macro property span class token directive hash span span clas
  • Debian安装nodejs

    安装指定版本nodejs xff0c 以18 X版本为例 1 通过curl命令向系统中添加NodeSource存储库 curl sL https deb nodesource com setup 18 x bash xff08 如果提示 c
  • pip安装第三方库全攻略:普通安装、安装whl后缀文件、使用国内镜像安装

    简介 xff1a pip 是 Python 的包安装程序 其实 xff0c pip 就是 Python 标准库 xff08 The Python Standard Library xff09 中的一个包 xff0c 只是这个包比较特殊 xf
  • Python:处理cv2模块putText中文无法识别问题

    简介 xff1a 在cv2中 xff0c 目前putText函数中文是无法直接使用的 xff0c 需要进行一点的转换 解决办法为通过PIL模块重新封装一个函数 xff0c 直接调用 如图 xff1a 通过PIL模块改造 xff1a new
  • VLC播放电视直播rtmp流地址

    简介 xff1a RTMP是Real Time Messaging Protocol xff08 实时消息传输协议 xff09 的首字母缩写 该协议基于TCP xff0c 是一个协议族 xff0c 包括RTMP基本协议及RTMPT RTMP
  • Python:global的使用

    简介 xff1a 1 global是Python中的全局变量关键字 2 全局变量是编程术语中的一种 xff0c 源自于变量之分 3 变量分为局部与全局 xff0c 局部变量又可称之为内部变量 4 由某对象或某个函数所创建的变量通常都是局部变
  • Python:opencv画点、圆、线、多边形、矩形

    简介 xff1a 机器学习视觉方向一般都需要在图像中添加标注框 xff0c 标注框有着很大的用处 xff0c 特别是对图像中某些需要关注的特征起到圈定的效果 xff0c 方便对特征选择进行处理 相关攻略 xff1a 机器学习 xff1a 基
  • adb重启或关机手机命令

    简介 xff1a 在某些特殊场景中 xff0c 例如手机真机不在身边 xff0c 但已通过adb进行连接 xff0c 可以使用命令进行远程关机或者重启 相关攻略 xff1a adb xff1a 常用命令 adb xff1a win10系统下
  • docker:更换镜像源

    简介 xff1a 因为国内的网络访问问题 xff0c 为加快拉取镜像速度 xff0c 建议设置docker国内镜像源 相关攻略 xff1a win10 xff1a 安装docker和测试安装redis centos7 6 xff1a 安装d
  • 七大顶级Linux桌面比较

    1七大顶级Linux桌面 xff1a Unity 对于开源Linux平台来说 xff0c 如何选择就是首要解决的问题 通常Linux发行版都有默认的桌面成为你的首选 xff0c 但目前可供选择的桌面环境种类繁多 特别是Ubuntu系统一个平
  • Linux:安装go环境

    简介 xff1a Go xff08 又称 Golang xff09 是 Google 的 Robert Griesemer xff0c Rob Pike 及 Ken Thompson 开发的一种静态强类型 编译型语言 Go 语言语法与 C
  • docker应用:搭建私有云盘

    简介 xff1a NextCloud是一个开源的云存储解决方案 xff0c 可以在自己的服务器上搭建个人云存储系统 它提供了与市面上主流云存储服务 xff08 如Dropbox Google Drive xff09 相似的功能 xff0c
  • Flask+A-Frame:交互式全景图展示网站

    简介 xff1a 通过结合 Flask 轻量级 Web 框架与 A Frame 3D 和 VR 技术 xff0c 实现了一个可交互的全景图展示功能 xff0c 用户可以在浏览器中自由观看 旋转和缩放全景图片 项目的核心是使用 Flask 搭
  • OpenCV合成全景图

    简介 xff1a OpenCV 利用特征提取 特征匹配 齐次估计 图像配准和图像融合等技术 xff0c 将一系列图像合成为全景图 OpenCV 和 Pillow 是两个功能强大的 Python 图像处理库 xff0c 但它们在处理全景图拼接
  • BDD行为驱动开发+Python案例解析

    简介 xff1a BDD xff08 Behavior Driven Development xff0c 行为驱动开发 xff09 是一种敏捷软件开发方法 xff0c 它强调软件应该按照预期的行为来开发 BDD的核心理念是使用自然语言编写的
  • 操作系统迭代、Debian安装教程

    前言 最近在考虑公司生产环境操作系统的迭代问题 目前 xff0c 公司业务主要跑在CentOS7和8上面 xff0c 由于CentOS早已停止了7和8的支持 xff0c 新版的CentOS Stream也从RHEL的下游变成了上游 xff0