Linux构建远程YUM仓库与NFS共享存储服务

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。

推荐:Linux运维老纪的首页,持续学习,不断总结,共同进步,活到老学到老 导航剑指大厂系列:全面总结 运维核心技术:系统基础、数据库、网路技术、系统安全、自动化运维、容器技术、监控工具、脚本编程、云服务等。 常用运维工具系列:常用的运维开发工具, zabbix、nagios、docker、k8s、puppet、ansible等 数据库系列:详细总结了常用数据库 mysql、Redis、MongoDB、oracle 技术点,以及工作中遇到的 mysql 问题等 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂 非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏

搞它!!!Linux构建远程YUM仓库与NFS共享存储服务

一、构建远程YUM仓库

1、YUM仓库概述

(1)、yum仓库简介

YUM(Yellow dog Updater, Modified)

基于RPM包构建的软件更新机制

可以自动解决依赖关系

所有软件包由几种的YUM软件仓库提供

在这里插入图片描述

在这里插入图片描述

(2)yum仓库的三种提供方式

FTP服务:ftp://… HTTP服务: http://… 本地目录:file://…

(3)yum配置文件

为客户机指定YUM仓库位置 yum的配置文件

仓库设置:/etc/yum.repos.d/.repo 日志文件:/var/log/yum.log 配置文件:/etc/yum.repo.d/.repo

代码语言:javascript

复制

[CentOS7-base]   #源名称,必填
name=CentOS-$releasever-base     #源描述,可以不填,但是会有提示
baseurl=file:///misc/cd/       #本地的光盘文件,可以有多个地址。必填https://mirrors.aliyun.com/centos/7.3.1611/os/x86_64/
gpgcheck=1                    #是否开启校验,在yum.conf中已经定义它默认值为1
enabled=1                     #是否禁用此yum源,默认为
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#如果开启yum源包校验,则需要导入RPM公钥,此处只是在系统没有导入rpm公钥时候进行安装
#这里相当于rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

今天小编就带大家玩ftp,话不多说,开干!

(4)配置远程ftp YUM源

第一步:服务端将centos7光盘镜像挂载到服务端(光盘镜像要连接状态)

代码语言:javascript

复制

[root@server ~]# mount /dev/sr0 /mnt	'将镜像挂载到本地'
mount: /dev/sr0 is write-protected, mounting read-only
[root@server ~]# df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda2      xfs        20G  3.1G   17G  16% /
...省略部分内容
/dev/sr0       iso9660   4.3G  4.3G     0 100% /mnt
[root@server ~]# ls /mnt		'挂载成功'
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL

第二步:进入服务器站点,将镜像复制到文件夹

代码语言:javascript

复制

[root@server var]# yum install vsftpd -y	'安装vsftpd'
...省略部分内容[root@server var]# cd ftp
[root@server ftp]# ls
pub
[root@server ftp]# pwd             '进入到ftp的主配置文件'
/var/ftp
[root@server ftp]# mkdir centos7	'在站点下创建文件夹,存放镜像'
[root@server ftp]# ls
centos7  pub
[root@server ftp]# ls centos7
[root@server ftp]# cp -rf /mnt/* centos7/&	'将镜像强制复制到centos7中,并在后台运行'
[1] 9301
[root@server ftp]# jobs			'查看后台运行程序'
[1]+  Running                 cp -i -rf /mnt/* centos7/ &
[root@server ftp]# mkdir other		'创建yum源的索引目录,用于创建repodata数据文件'
[root@server ftp]# ls
centos7  other  pub
'若已将作为源发布的其他 rpm 安 
装包文件存放到/var/ftp/other 目录下,则可执行以下操作为其创建 repodata 数据。'
[root@server ftp]# createrepo -g /mnt/repodata/repomd.xml  other'以现有的repodata目录为样板 '[root@server ftp]# ls centos7
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL
[root@server ftp]# ls other/repodata

第三步:服务端开启vsftpd服务 21端口负责连接服务器 20端口负责上传和下载

代码语言:javascript

复制

[root@server ~]# systemctl start vsftpd     '开启vsftp文件共享服务'
[root@server ~]# netstat -ntap | grep 21
tcp6       0      0 :::21                   :::*                    LISTEN      12216/vsftpd        
[root@server ~]# netstat -ntap | grep 20vsftpd中21端口负责连接服务器20端口负责上传和下载[root@server ~]# systemctl stop firewalld.service 	'关闭防火墙'
[root@server ~]# setenforce 0   '关闭核心防护'

第四步:进入客户端配置:安装ftp服务,查看是否可以看到站点 感受一下ftp的神奇之处

代码语言:javascript

复制

[root@client ~]# yum install ftp -y
[root@client ~]# ftp 192.168.197.172	'使用ftp用匿名方式登录服务端'
Connected to 192.168.197.172 (192.168.197.172).
220 (vsFTPd 3.0.2)
Name (192.168.197.172:root): ftp	'输入名称'
331 Please specify the password.
Password:	'输入root用户登录密码'
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls	'发现可以查看到站点中的文件'
227 Entering Passive Mode (192,168,197,172,88,1).
150 Here comes the directory listing.
drwxr-xr-x    8 0        0             220 Nov 25 03:15 centos7
drwxr-xr-x    3 0        0              22 Nov 25 03:16 other
drwxr-xr-x    2 0        0               6 Oct 30  2018 pub
226 Directory send OK.
ftp> bye
221 Goodbye.

第五步:构建yum源之前 将其原有的配置文件打包带走,接下来自己手动编写一个 将所有的repo文件移动到文件夹中

代码语言:javascript

复制

[root@client ~]# cd /etc/yum.repos.d/    'yum配置文件目录'
[root@client yum.repos.d]# ls     '   第一个是主配置文件'
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
[root@client yum.repos.d]# mkdir bak
[root@client yum.repos.d]#mv *.repo bak '   将所有以repo结尾的文件移动到bak的文件夹内 '
[root@client yum.repos.d]#ls bak    
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo

第六步:清空缓存,自己写一个repo文件,并将秘钥复制到其中 主角来了 ,前面的都是铺垫,这个一定要记住,

代码语言:javascript

复制

[root@client yum.repos.d]# vim centos7.repo 
[base]		'//仓库类别'
name=centos7.packages		'//仓库名称(说明) '
baseurl=ftp://192.168.110.133/centos7		'//URL 访问路径 '
enabled=1		'//启用此软件仓库 '
gpgcheck=1		'//验证软件包的签名 因为这里不像本地yum毕竟是远程yum仓库 所以要验证一下以防被其他人篡改'
gpgkey=ftp://192.168.110.133/centos7/RPM-GPG-KEY-CentOS-7		
'将服务端复制的秘钥粘贴到此,//GPG 公钥文件的位置 '[other]
name=other.packages
baseurl=ftp://192.168.110.133/other  
enabled=1
gpgcheck=0		'//不验证软件包的签名 '
'在服务端查看秘钥并复制'
[root@server ftp]# ls centos7 	'服务端查看'
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL

第七步:此时yum list 已经生效(可以安装安装软件包和进行更新相关操作了)

yum update 更新软件包,连内核一起更新

yum upgrade 只更新软件包,但不更新内核

(5)软件包查询

查询软件包 yum list [软件名]… yum info [软件名]… yum search <关键词>… 查询软件包组 yum grouplist [包组名]… yum groupinfo <包组名>…

(6)安装、升级软件

yum install [软件名] yum groupinstall <包组名>

升级软件

yum update

yum groupdate

yum update 更新软件包,连内核一起更新

yum upgrade 只更新软件包,但不更新内核

卸载软件

yum remove <软件名>… yum groupremove <包组名>…

二、NFS共享存储服务

1、NFS 网络文件系统(Network File System)

NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利;

2、NFS挂载原理

在这里插入图片描述

在这里插入图片描述

如上图示:

当我们在NFS服务器设置好一个共享目录/home/public后,其他的有权访问NFS服务器的NFS客户端就可以将这个目录挂载到自己文件系统的某个挂载点,这个挂载点可以自己定义,如上图客户端A与客户端B挂载的目录就不相同。并且挂载好后我们在本地能够看到服务端/home/public的所有数据。如果服务器端配置的客户端只读,那么客户端就只能够只读。如果配置读写,客户端就能够进行读写。挂载后,NFS客户端查看磁盘信息命令:#df –h。

既然NFS是通过网络来进行服务器端和客户端之间的数据传输,那么两者之间要传输数据就要有想对应的网络端口,NFS服务器到底使用哪个端口来进行数据传输呢?基本上NFS这个服务器的端口开在2049,但由于文件系统非常复杂。因此NFS还有其他的程序去启动额外的端口,这些额外的用来传输数据的端口是随机选择的,是小于1024的端口;既然是随机的那么客户端又是如何知道NFS服务器端到底使用的是哪个端口呢?这时就需要通过远程过程调用(Remote Procedure Call,RPC)协议来实现了!

3、配置NFS服务

NFS软件很简单,主要配置文件:/etc/exports,默认这个里面内容是空的,如果没有这个文件,可以使用vim主动建立这个文件。至于NFS服务器的搭建也很简单,只要编辑好主要配置文件/etc/exports之后,先启动rpcbind(若已经启动了,就不要重新启动),然后再启动nfs,NFS就成功了

(1)第一步:格式化并挂载刚添加的硬盘

格式化磁盘步骤省略,如有疑问查看我之前博客

代码语言:javascript

复制

[root@server ~]# vim /etc/fstab
[root@server ~]# mount -a
[root@server ~]# df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda2      xfs        20G  4.1G   16G  21% /
devtmpfs       devtmpfs  898M     0  898M   0% /dev
tmpfs          tmpfs     912M     0  912M   0% /dev/shm
tmpfs          tmpfs     912M  9.0M  903M   1% /run
tmpfs          tmpfs     912M     0  912M   0% /sys/fs/cgroup
/dev/sda5      xfs        10G   52M   10G   1% /home
/dev/sda1      xfs       6.0G  174M  5.9G   3% /boot
tmpfs          tmpfs     183M  8.0K  183M   1% /run/user/42
tmpfs          tmpfs     183M     0  183M   0% /run/user/0
/dev/sdb1      xfs        20G   33M   20G   1% /mnt
(2)第二步:安装nfs-utils rpcbind,并设置为开机自启

代码语言:javascript

复制

[root@server ~]# yum install nfs-utils rpcbind -y
[root@server ~]# systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@server ~]# systemctl enable rpcbind.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/rpcbind.service to /usr/lib/systemd/system/rpcbind.service.
(3)第三步:设置共享目录,启动服务并关闭防护墙

代码语言:javascript

复制

[root@server ~]# vim /etc/exports
/mnt    192.168.133.0/24(rw,sync,no_root_squash)
[root@server ~]# systemctl start nfs
[root@server ~]# systemctl start rpcbind
[root@server ~]# netstat -ntap | grep rpc
tcp        0      0 0.0.0.0:35312           0.0.0.0:*               LISTEN      14124/rpc.statd     
tcp        0      0 0.0.0.0:20048           0.0.0.0:*               LISTEN      14125/rpc.mountd    
tcp6       0      0 :::20048                :::*                    LISTEN      14125/rpc.mountd    
tcp6       0      0 :::58102                :::*                    LISTEN      14124/rpc.statd  
[root@server ~]# systemctl stop firewalld.service 
[root@server ~]# setenforce 0

NFS配置权限设置,即/etc/exports文件配置格式中小括号()里的参数集;

在这里插入图片描述

在这里插入图片描述

(4)第四步:查看本机发布的NFS共享目录

代码语言:javascript

复制

[root@server ~]# showmount -e
Export list for server:
/mnt 192.168.110.0/24
(5)第无步:进客户端,关闭防火墙,安装httpd服务

代码语言:javascript

复制

[root@client ~]# systemctl stop firewalld.service 
[root@client ~]# setenforce 0
[root@client ~]# yum install httpd -y
(6)第六步:手动挂载NFS共享目录或者使用自动挂载

这里小编挂载在apache的网页配置文件上>_<

代码语言:javascript

复制

[root@client ~]# mount 192.168.110.133:/mnt /var/www/html    '临时挂载'
[root@client ~]# df -hT
Filesystem           Type      Size  Used Avail Use% Mounted on
/dev/sda2            xfs        20G  4.1G   16G  21% /
devtmpfs             devtmpfs  898M     0  898M   0% /dev
tmpfs                tmpfs     912M     0  912M   0% /dev/shm
tmpfs                tmpfs     912M  9.0M  903M   1% /run
tmpfs                tmpfs     912M     0  912M   0% /sys/fs/cgroup
/dev/sda5            xfs        10G   37M   10G   1% /home
/dev/sda1            xfs       6.0G  174M  5.9G   3% /boot
tmpfs                tmpfs     183M   12K  183M   1% /run/user/42
tmpfs                tmpfs     183M     0  183M   0% /run/user/0
192.168.110.133:/mnt nfs4       20G   32M   20G   1% /var/www/html[root@client ~]# umount /var/www/html     '取消挂载'
[root@client ~]# vim /etc/fstab       '改为永久挂载'
192.168.110.133:/mnt    /var/www/html   nfs     defausts,_netdev        0 0
[root@client ~]# mount -a      '检查一下挂载情况,不提醒默认挂载成功'
[root@client ~]# df -hT
Filesystem           Type      Size  Used Avail Use% Mounted on
/dev/sda2            xfs        20G  4.1G   16G  21% /
devtmpfs             devtmpfs  898M     0  898M   0% /dev
tmpfs                tmpfs     912M     0  912M   0% /dev/shm
tmpfs                tmpfs     912M  9.0M  903M   1% /run
tmpfs                tmpfs     912M     0  912M   0% /sys/fs/cgroup
/dev/sda5            xfs        10G   37M   10G   1% /home
/dev/sda1            xfs       6.0G  174M  5.9G   3% /boot
tmpfs                tmpfs     183M   12K  183M   1% /run/user/42
tmpfs                tmpfs     183M     0  183M   0% /run/user/0
192.168.110.133:/mnt nfs4       20G   32M   20G   1% /var/www/html
(7)第七步:配置httpd网页并开启服务

代码语言:javascript

​
[root@client ~]# cd /var/www/html    '进入到apache网页配置文件'
[root@client html]# ls
[root@client html]# vim index.html    '编辑配置文件'
<h1>this is nfs web </h1>
[root@client html]# systemctl start httpd.service 
用客户端的网址登陆​

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/875957.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YOLOX+PyQt5交通路口智能监测平台设计与实现

1.概述 交通要道的路口上人车穿行&#xff0c;特别是上下班早高峰&#xff0c;且时常发生交通事故。因此对交通路口的车流量和人流量的监测必不可少。 2.检测模型 使用的检测模型为YOLOX模型&#xff0c;模型权重为训练VOC数据集得来&#xff0c;其中包括了二十个类别&#…

Vue3二次封装axios

官网: https://www.axios-http.cn/docs/interceptors steps1: 安装 npm install axios -ssteps2: /src/api/request.js 文件 >>> 拦截器 import axios from axios // 如果没用element-plus就不引入 import { ElMessage } from element-plusconst service axios.cre…

【区块链+绿色低碳】基于区块链的双碳能源纳管平台 | FISCO BCOS应用案例

在双碳战略的指导下&#xff0c;南京区块链产业应用协会牵头研发的双碳能源纳管平台&#xff0c;依托区块链、人工智能、云计算、 物联网、大数据、工业互联网与边缘计算等技术&#xff0c;对绿电追溯、需求侧响应、能源微网、源网荷储、隔墙用电、 碳排放权认证、额度计量、预…

循环队列的实现【C语言】

用数组实现循环队列 题目&#xff1a;622. 设计循环队列 - 力扣&#xff08;LeetCode&#xff09; 分析 循环队列&#xff0c;队列满则不能再插入数据&#xff0c;队列为空则不能再出数据。 多开一个空间方便区分队列为空和队列为满的情况。 如果要存K个数据只开K个空间&a…

【在排序数组中查找元素的第一个和最后一个位置】python刷题记录

R2-分治 有点easy的感觉&#xff0c;感觉能用哈希表 class Solution:def searchRange(self, nums: List[int], target: int) -> List[int]:nlen(nums)dictdefaultdict(list)#初始赋值哈希表&#xff0c;记录出现次数for num in nums:if not dict[num]:dict[num]1else:dict[…

【C++】C++应用案例-翻转数组

翻转数组&#xff0c;就是要把数组中元素的顺序全部反过来。比如一个数组{1,2,3,4,5,6,7,8}&#xff0c;翻转之后就是{8,7,6,5,4,3,2,1}。 &#xff08;1&#xff09;另外创建数组&#xff0c;反向填入元素 数组是将元素按照顺序依次存放的&#xff0c;长度固定。所以如果想要…

基因组挖掘指导天然药物分子的发现-文献精读34

基因组挖掘指导天然药物分子的发现 摘要 天然产物是临床药物的主要来源&#xff0c;也是新药研发过程中先导化合物结构设计和优化的灵感源泉。但传统策略天然药源分子的发现却遭遇了瓶颈&#xff0c;新颖天然产物的数量逐渐无法满足现代药物开发的需求和应对全球多药耐药的威胁…

【每日刷题】Day86

【每日刷题】Day86 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 118. 杨辉三角 - 力扣&#xff08;LeetCode&#xff09; 2. 数组中出现次数超过一半的数字_牛客题霸…

Java之 jvm

jvm之管理内存 程序计数器&#xff1a;当前线程所执行的字节码的行号指示器。程序计数器是唯一一个不会出现 OutOfMemoryError 的内存区域&#xff0c;它的生命周期随着线程的创建而创建&#xff0c;随着线程的结束而死亡。Java虚拟机栈 方法调用 一个方法调用都会有对应的栈帧…

加速下载,揭秘Internet Download Manager2024下载器的威力!

1. Internet Download Manager&#xff08;IDM&#xff09;是一款广受欢迎的下载管理软件&#xff0c;以其强大的下载加速功能和用户友好的界面著称。 IDM马丁正版下载如下: https://wm.makeding.com/iclk/?zoneid34275 idm最新绿色版一键安装包链接&#xff1a;抓紧保存以…

ISP 代理提供商:互联网安全的关键参与者

简介&#xff1a;互联网安全的演变态势 互联网改变了我们互动、工作和开展业务的方式&#xff0c;但也带来了与安全性和可访问性相关的重大挑战。在这个数字时代&#xff0c;互联网服务提供商 (ISP) 代理提供商在解决这些问题方面发挥着关键作用。他们提供的基本服务不仅可以增…

网络安全常见错误及解决办法(更新中)

# 开启代理&#xff0c;无法连接网络 把代理关掉 # 上一秒还在安装tree&#xff0c;下一秒xshell就连接不上了 —》sshd服务的key这个文件权限过高&#xff0c;跟装tree没有关系&#xff0c;装一个epel 源&#xff0c;epel-release​ 部分命令&#xff1a;chmod 600 /etc/ssh…

google、windows自带语音识别中英文等实时字幕使用

2、自带实时字幕 1&#xff09;google浏览器自带 实时字幕 设置里可以设置&#xff1a; 有视频声音播放会弹出黑色文本框 下载其他语言包-比如中文&#xff1a; 测试 2&#xff09;windows11 辅助功能 实时字幕 &#xff08;直接快捷键打开&#xff1a;Win Ctrl L&#…

C# 实现条件变量

C# 进程通信系列 第一章 共享内存 第二章 条件变量&#xff08;本章&#xff09; 第三章 消息队列 文章目录 C# 进程通信系列前言一、关键实现1、用到的主要对象2、初始化区分创建和打开3、变量放到共享内存4、等待和释放逻辑 二、完整代码三、使用示例1、线程同步控制2、进程…

ROS配置并同时驱动多个UVC相机(含功能包)

配置并同时驱动多个UVC相机&#xff0c;并将数据保存为ROS话题形式的bag文件。 ROS可以同时驱动多个UVC相机。要实现这个目标并将数据保存成ROS话题的形式&#xff0c;再保存为bag文件&#xff0c;可以按照以下步骤操作&#xff1a; 1. 安装必要的包 sudo apt-get update sud…

MySQL零散拾遗(四)--- 使用聚合函数时需要注意的点点滴滴

聚合函数 聚合函数作用于一组数据&#xff0c;并对一组数据返回一个值。 常见的聚合函数&#xff1a;SUM()、MAX()、MIN()、AVG()、COUNT() 对COUNT()聚合函数的更深一层理解 COUNT函数的作用&#xff1a;计算指定字段在查询结果中出现的个数&#xff08;不包含NULL值&#…

ElMessage自动引入,样式缺失和ts esline 报错问题解决

一. 环境 "unplugin-auto-import": "^0.17.6", "vue": "^3.3.8", "vite": "^5.0.0", "typescript": "^5.2.2",二. ElMessage样式缺失问题. 以下有两种解决方法 方法一: 配置了自动引用后…

Oracle集群RAC磁盘管理命令asmcmd的使用

文章目录 ASM磁盘共享简介ASM磁盘共享的优势ASM磁盘组成ASM磁盘共享的应用场景Asmcmd简介Asmcmd的功能Asmcmd的命令Asmcmd的使用注意事项Asmcmd运行模式交互模式运行非交互模式运行ASMCMD命令分类实例管理命令:文件管理命令:磁盘组管理命令:模板管理命令:文件访问管理命令:…

Python文献调研(一)环境搭建

一、安装Python版本 1.点击进入Python官网 Download Python | Python.org 2.根据自己的需求选择python的版本&#xff0c;点击【Download】 3.自定义安装路径&#xff0c;记得勾选Add Python xxx to PATH 这步是自动配置环境变量的&#xff0c;如果忘记勾选&#xff0c;建议…

VirtualBox 安装Centos 7 避坑指南 SSH连不上 镜像失效 静态网络配置等

背景 几乎每次安装Centos 7 时&#xff0c;都会遇到各种各样的问题&#xff0c;毕竟每次安装动辄就是半年几年&#xff0c;几乎都是在换工作时&#xff0c;有了新机器才会倒腾一次&#xff0c;时间久远&#xff0c;就会忘记一些细节&#xff0c;这次整理一下&#xff0c;避免以…