RHCE9学习指南 第22章 用rpm管理软件

在这里插入图片描述

rpm全称是redhat package manager,后来改成rpm package manager,这是根据源码包编译出来的包。先从光盘中拷贝一个包,并看他是如何命名的。
先挂载光盘,然后拷贝vsftpd这个包,命令如下。

[root@server ~]# mount /dev/cdrom /mnt
mount: /mnt: WARNING: device write-protected, mounted read-only.
[root@server ~]# cp /mnt/AppStream/Packages/vsftpd-3.0.3-49.el9.x86_64.rpm .
[root@server ~]#
[root@server ~]# ls vsftpd-3.0.3-49.el9.x86_64.rpm 
vsftpd-3.0.3-49.el9.x86_64.rpm
[root@server ~]#

从上面来看

(1)vsftpd:包的名称。
(2)3.0.3:版本version。
(3)49.el9:小版本号,即release,其中el8指的是此包用于安装rhel9系统上。
(4)x86_64:指的是架构,到底是32位的还是64位的包,x86_64表示是64位的。

rpm的安装的命令是 rpm -ivh 安装包,安装的rpm的命令如下。

[root@server ~]# rpm -ivh vsftpd-3.0.3-49.el9.x86_64.rpm 
警告:vsftpd-3.0.3-49.el9.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
Verifying...                       ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...
   1:vsftpd-3.0.3-49.el9           ################################# [100%]
[root@server ~]# 

这样就把vsftpd-3.0.3-49.el9.x86_64.rpm安装好了。如果是第一次接触Linux会感觉到奇怪,怎么不像Windows一样让我们通过浏览来指定路径,那么这个包安装到哪里了呢?
其实相信大家在Windows下都安装过chrome浏览器,基本上是秒安装也没有指定路径,因为这个安装包中已经定义好了安装路径了。同理rpm安装时也已经指定了安装路径了,把这个rpm打开看下,先复制到/opt目录中,命令如下。

[root@server ~]# cp vsftpd-3.0.3-49.el9.x86_64.rpm /opt/
[root@server ~]# cd /opt/
[root@server opt]# ls
vsftpd-3.0.3-49.el9.x86_64.rpm
[root@server opt]#

解开此包,命令如下。

[root@server opt]# rpm2cpio  vsftpd-3.0.3-49.el9.x86_64.rpm  | cpio -id
706[root@server opt]# ls
etc  usr  var  vsftpd-3.0.3-49.el9.x86_64.rpm
[root@server opt]#

可以看到,这里生成了3个目录etc、usr、var,看一下它们的结构,如下所示。

[root@server opt]# tree
.
├── etc
│   ├── logrotate.d
│   │   └── vsftpd
│   ├── pam.d
│   │   └── vsftpd
│   └── vsftpd
│       ├── ftpusers
│       ├── user_list
│       ├── vsftpd.conf
│       └── vsftpd_conf_migrate.sh
├── usr
│   ├── lib
	...输出...
├── var
│   └── ftp
│       └── pub
└── vsftpd-3.0.3-49.el9.x86_64.rpm

27 directories, 48 files
[root@server opt]# cd
[root@server ~]#

这里可以看到,当我们安装rpm包时,他就会把包中的东西按照这个结构拷贝到我们系统,所以安装的路径都是安排好了的。

22.1 rpm查询

如果要查询已经安装过软件包的信息,rpm的第一个选项需要使用q,表示查询的意思。
查询系统安装的所有软件包rpm -qa,命令如下。

[root@server ~]# rpm -qa
....
[root@server ~]#

查询系统是否安装了某个软件包 rpm -qa 包名,例如,要查询是否安装了vsftpd,命令如下。

[root@server ~]# rpm -qa vsftpd
vsftpd-3.0.3-49.el9.x86_64
[root@server ~]#

但是这种用法,在写包名时多一个或少一个字符都查询不出来,如下所示。

[root@server ~]# rpm -qa vsftp
[root@server ~]#

所以,更建议用管道和grep进行过滤,如下所示。

[root@server ~]# rpm -qa | grep vsftp
vsftpd-3.0.3-49.el9.x86_64
[root@server ~]# 

查询安装某软件包之后所生成的文件,则用"rpm -ql 包名"查询,这里q后面是字母l。比如要查询vsftpd所生成的文件,命令如下。

[root@server ~]# rpm -ql vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd
/etc/vsftpd/ftpusers
...输出...
/var/ftp
/var/ftp/pub
[root@server ~]# 

这样就可以看到安装vsftpd时都安装到哪里去了。
查看软件包生成的配置文件 用rpm -qc 包名,命令如下。

[root@server ~]# rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
[root@server ~]# 

查看包的信息,用rpm -qi 包名,命令如下。

[root@server ~]# rpm -qi vsftpd 
Name        : vsftpd
Version     : 3.0.3
Release     : 49.el9
Architecture: x86_64
	...输出...
Summary     : Very Secure Ftp Daemon
Description :
vsftpd is a Very Secure FTP daemon. It was written completely from
scratch.
[root@server ~]#

当我们安装软件包时会产生许多文件,反过来想查询某个文件是由哪个软件包安装出来的用rpm -qf /path/file,命令如下。

[root@server ~]# rpm -qf /etc/vsftpd/vsftpd.conf 
vsftpd-3.0.3-49.el9.x86_64
[root@server ~]#

可以看到,/etc/vsftpd/vsftpd.conf是由vsftpd这个包产生的。

[root@server ~]# rpm -qf /etc/passwd
setup-2.13.7-6.el9.noarch
[root@server ~]# 

/etc/passwd这个文件是由安装setup这个包生成的。
以上这些都是针对已经安装了软件包进行查询,如果对安装包,则需要加p选项,命令如下。

[root@server ~]# rpm -qcp vsftpd-3.0.3-49.el9.x86_64.rpm 
警告:vsftpd-3.0.3-49.el9.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
[root@server ~]#

当然在RHEL9/centos9中不加p也可以,之前的系统是不行的。

22.2 rpm安装及卸载

前面已经介绍了用rpm -ivh安装包安装软件,且vsftpd已经安装完成,如下所示。

[root@server ~]# rpm -qa | grep vsftpd
vsftpd-3.0.3-49.el9.x86_64
[root@server ~]#

卸载软件包用的命令是rpm -e 软件包,现在要把vsftpd卸载掉,命令如下。

[root@server ~]# rpm -e vsftpd
[root@server ~]# rpm -qa | grep vsftpd
[root@server ~]# 

可以看到,现在已经不存在了,再次把这个包安装上去。

[root@server ~]# rpm -ivh vsftpd-3.0.3-49.el9.x86_64.rpm 
警告:vsftpd-3.0.3-49.el9.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
Verifying...                       ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...
   1:vsftpd-3.0.3-49.el9           ################################# [100%]
[root@server ~]# 

有时需要强制安装软件,例如,某个包已经安装过了现在想重新安装,命令如下。

[root@server ~]# rpm -ivh vsftpd-3.0.3-49.el9.x86_64.rpm 
警告:vsftpd-3.0.3-49.el9.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
Verifying...                    ################################# [100%]
准备中...                       ################################# [100%]
	软件包 vsftpd-3.0.3-49.el9.x86_64 已经安装
[root@server ~]# 

这里提示包已经安装过了,没法再次安装。如果加上–force选项强制安装即可。
一般情况下,用于某个文件丢失了,想通过强制重新安装来找回此文件,命令如下。

[root@server ~]# rm -rf /etc/vsftpd/vsftpd.conf 
[root@server ~]# ls /etc/vsftpd/
ftpusers  user_list  vsftpd_conf_migrate.sh
[root@server ~]#

这里把/etc/vsftpd/vsftpd.conf删除,然后开始强制安装,命令如下。

[root@server ~]# rpm -ivh vsftpd-3.0.3-49.el9.x86_64.rpm --force
警告:vsftpd-3.0.3-49.el9.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
Verifying...                      ################################# [100%]
准备中...                         ################################# [100%]
正在升级/安装...
   1:vsftpd-3.0.3-49.el9          ################################# [100%]
[root@server ~]# 

然后再次查看文件。

[root@server ~]# ls /etc/vsftpd/
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh
[root@server ~]#

这里又重新生成了被删除的文件,其他文件原来即使做了修改这里也不会被覆盖替换。
23.3 软件包的更新
所谓的更新就是卸载旧版本的软件包,然后安装新版本的软件包。假设原来系统已经安装了1.0版本的软件包,现在要安装2.0版本的软件包,如果两个版本的包安装路径不一样,则可以两个共存,如果两个版本的包安装路径一样,则就会产生冲突。
先卸载已经安装了的vsftpd,命令如下。

[root@server ~]# rpm -e vsftpd
[root@server ~]#

然后从centos官网下载一个版本更高的vsftpd的安装包,下载地址如下:
https://mirror.stream.centos.org/9-stream/AppStream/x86_64/os/Packages/vsftpd-3.0.5-5.el9.x86_64.rpm
然后查看当前目录下vsftpd的安装包,命令如下。

[root@server ~]# ls -1 vsftpd*
vsftpd-3.0.5-5.el9.x86_64.rpm
vsftpd-3.0.3-49.el9.x86_64.rpm
[root@server ~]#
上面ls 后面的选项是数字1,不是字母l,这里一个版本稍低,一个版本稍高。先把低版本的包安装上去,命令如下。
[root@server ~]# rpm -ivh vsftpd-3.0.3-49.el9.x86_64.rpm 
警告:vsftpd-3.0.3-49.el9.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
Verifying...                      ################################# [100%]
准备中...                         ################################# [100%]
正在升级/安装...
   1:vsftpd-3.0.3-49.el9            ################################# [100%]
[root@server ~]#

这里已经安装了一个3.0.3-49的包,然后还有一个更高版本的3.0.5-5包,命令如下。

[root@server ~]# rpm -ivh vsftpd-3.0.5-5.el9.x86_64.rpm 
警告:vsftpd-3.0.5-5.el9.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
Verifying...                         ################################# [100%]
准备中...                          ################################# [100%]
	file /etc/vsftpd/vsftpd.conf from install of vsftpd-3.0.5-5..el9.x86_64 conflicts with file from package vsftpd-3.0.3-49.el9.x86_64
	...输出...
	file /usr/sbin/vsftpd from install of vsftpd-3.0.5-5.el9.x86_64 conflicts with file from package vsftpd-3.0.3-49.el9.x86_64
[root@server ~]#

因为安装路径一样,所以这里提醒产生了冲突导致没安装成功,如果们用更新的方法来安装就是可以的,更新的用法是rpm -Uvh 安装包,下面更新vsftpd,命令如下。

[root@server ~]# rpm -Uvh vsftpd-3.0.5-5.el9.x86_64.rpm 
警告:vsftpd-3.0.5-5.el9.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
Verifying...                         ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...
   1:vsftpd-3.0.5-5.el9          ################################# [ 50%]
正在清理/删除...
   2:vsftpd-3.0.3-49.el9              ################################# [100%]
[root@server ~]#

现在已经更新成功,查看命令如下。

[root@server ~]# rpm -qa | grep vsftpd
vsftpd-vsftpd-3.0.5-5.el9.x86_64
[root@server ~]#

可以看到,这里安装的是3.0.5-5版本的包。
对于内核来说,不同版本的安装路径是不一样的,所以是可以同时安装多个版本的不会产生冲突。所以,更新内核时建议使用 rpm -ivh 命令而不是rpm -Uvh。因为rpm -Uvh会卸载老版本的内核,如果新版本的内核有问题就没法正常进入系统了,如果使用rpm -ivh,包括版本的内核同时存在,先用新版本的内核引导系统,如果没问题再卸载旧版本的内核也不迟,如果有问题还可以使用旧版本内核引导系统。

22.4 rpm验证

当我们安装了一个软件包之后会产生许多文件,我们要是想判断这些文件是否被做过修改,我们可以用rpm -V(大写字母V),例如,我们刚刚安装了vsftpd,并没有修改任何的配置文件。

[root@server ~]# rpm -V vsftpd
[root@server ~]#

没任何结果显示,说明此vsftpd所生成的文件没有被修改。现在用vim 编辑器修改下/etc/vsftpd/vsftpd.conf,随便增添删减一些内容(最好是修改注释后面的东西,否则影响vsftpd启动),然后再次来判断,命令如下。

[root@server ~]# rpm -V vsftpd
S.5....T.  c /etc/vsftpd/vsftpd.conf
[root@server ~]#

再次检查可以看到/etc/vsftpd/vsftpd.conf被修改过。

S:指的是大小。
5:指的是md5值。
T:指的是时间。
c:指的是此文件是vsftpd的配置文件。

这样就可以看到哪些文件被修改过了,只修改时间的命令如下。

[root@server ~]# touch /etc/vsftpd/ftpusers 
[root@server ~]# rpm -V vsftpd
.......T.  c /etc/vsftpd/ftpusers
S.5....T.  c /etc/vsftpd/vsftpd.conf
[root@server ~]# 

可以看到,/etc/vsftpd/ftpusers的时间发生了改变。
红帽发行的每一个数据包都对它做了数据签名,以证明这个包是红帽官方的。需要在本机用红帽的公钥来进行验证。首先验证机器上是否安装了红帽的公钥,命令如下。

[root@server ~]# rpm -qa | grep pubkey
[root@server ~]#

没结果显示,说明没有导入红帽的公钥。使用如下命令导入公钥,命令如下。

[root@server ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[root@server ~]# 

或者导入存储在光盘中的公钥。

[root@server ~]# rpm --import /mnt/RPM-GPG-KEY-redhat-release 
[root@server ~]# 

再次检查公钥的信息,命令如下。

[root@server ~]# rpm -qa | grep pubkey
gpg-pubkey-fd431d51-4ae0493b
gpg-pubkey-d4082792-5b32db75
[root@server ~]# 

可以看到,已经成功导入了,下面验证下面的两个vsftpd包,命令如下。

[root@server ~]# rpm -K vsftpd-3.0.3-49.el9.x86_64.rpm 
vsftpd-3.0.3-49.el9.x86_64.rpm: digests signatures 确定
[root@server ~]#

这个包是一开始从光盘中拷贝过来的,可以看到验证通过。

[root@server ~]# rpm -K vsftpd-3.0.5-5.el9.x86_64.rpm 
vsftpd-3.0.5-5.el9.x86_64.rpm: digests SIGNATURES 不正确
[root@server ~]#

这个包是从centos网站下载下来的,用红帽的的公钥进行验证,所以可以看到是没有验证通过的。

作业

作业题在server2上完成。
**作业1:**判断server2上是否安装了软件包net-tools。

**作业2:**请判断/etc/hosts是安装了哪个数据包产生出来的。

**作业3:**sshpass的作用是可以无密码登录到远端机器,用法是:
sshpass -p 密码 ssh IP/主机名
这样就可以无需输入密码即可ssh到远端主机上了。
通过如下命令下载软件包sshpass:
1-先挂载光盘到/mnt
mount /dev/cdrom /mnt
2-安装软件包
rpm -ivh /mnt/AppStream/Packages/sshpass-<按tab键补齐>
并安装此软件包,最后测试用sshpass命令ssh到192.168.26.103上。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何绘制出图像的色素分布直方图

效果 如图&#xff0c;可以展示出我们的图像的颜色分布直方图,表明的图像的亮和暗 实现可视化色素分布直方图方法 这里我们对我们的灰色图片和彩色图片进行了直方图显示 import cv2 import matplotlib.pyplot as plt image cv2.imread("test.jpg") # 彩色图片->…

【leetcode 2171. 拿出最少数目的魔法豆】没有数学,全是思路

2171. 拿出最少数目的魔法豆 题目描述 给定一个 正整数 数组 beans &#xff0c;其中每个整数表示一个袋子里装的魔法豆的数目。 请你从每个袋子中 拿出 一些豆子&#xff08;也可以 不拿出&#xff09;&#xff0c;使得剩下的 非空 袋子中&#xff08;即 至少还有一颗 魔法豆…

鼠害监测站的意义是什么

鼠害监测站是专门用于监测鼠害发生情况、种群结构和危害程度的设施。这些站点通常设立在农田、森林、草原等鼠害易发区域&#xff0c;通过定期调查和监测&#xff0c;收集鼠害相关信息&#xff0c;为防治工作提供科学依据。 TH-SH1 鼠害监测站的意义 保障农业生产&#xff1a;…

精品基于Uniapp+springboot美食菜谱类管理系统APP

《[含文档PPT源码等]精品基于Uniappspringboot美食类管理系统APP》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功&#xff01; 软件开发环境及开发工具&#xff1a; 开发语言&#xff1a;Java 后台框架&#xff1a;springboot、ssm 安…

SpringBoot中整合MybatisPlus快速实现Mysql增删改查和条件构造器

场景 Mybatis-Plus(简称MP)是一个Mybatis的增强工具&#xff0c;只是在Mybatis的基础上做了增强却不做改变&#xff0c;MyBatis-Plus支持所有Mybatis原生的特性&#xff0c; 所以引入Mybatis-Plus不会对现有的Mybatis构架产生任何影响。MyBatis 增强工具包&#xff0c;简化 C…

掌握退款与测评自养号技术,在亚马逊、沃尔玛上轻松做卖家

今天&#xff0c;我想与大家分享在亚马逊、沃尔玛退款自养号中的一些经验。众所周知&#xff0c;自养号的环境是至关重要的&#xff0c;它涉及到系统的纯净度、下单所用的信用卡以及许多其他细节。一个良好的养号环境能够确保账号的安全与稳定&#xff0c;进而提高退款成功率。…

2023年暴涨130%后,嘉年华游轮股价2024年还会继续暴涨吗?

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 2023年对嘉年华游轮来说的标志性的一年 2023年&#xff0c;嘉年华游轮(CCL)的业务不但实现了全面复苏&#xff0c;而且其股价也重新回到了市场领先地位&#xff0c;全年上涨了130%&#xff0c;远远超过了标普500指数24%的涨…

数据库结构、数据对比及同步

目录 一、场景二、操作Navicat Premium 一、场景 部署服务时需要确保开发环境的数据库与生产环境的数据库结构、数据一致 这时可以通过Navicat Premium、SQLyog等工具进行数据库对比 二、操作 Navicat Premium 1、选择同步类型 2、选择对比的数据库 3、选择对比参数 4、查看…

预处理详解(#和##运算符、命名约定、#undef​​、命令行定义​、条件编译、头文件的包含​)

目录 一、#和## 1.1#运算符 1.2## 运算符​ 二、命名约定​ 三、#undef​ 四、命令行定义​ 五、条件编译​ 六、头文件的包含​ 4.1 头文件被包含的方式&#xff1a;​ 4.1.1 本地文件包含​ Linux环境的标准头文件的路径&#xff1a;​ VS环境的标准头文件的路径&…

HelloWorld(java)

1.切换盘符&#xff1a;找到刚刚书写的代码 2.编译&#xff1a;javac是JDK提供的编译工具&#xff0c;通过这个工具&#xff0c;把当前路径下下的HelloWorld.java文件编译成class文件 3.运行&#xff1a;java也是JDK提供的一个工具&#xff0c;作用就是用来运行代码&#xff…

【漏洞复现】银达汇智智慧综合管理平台任意文件读取漏洞

Nx01 产品简介 福建银达汇智信息科技股份有限公司成立于2009年&#xff0c;位于福建省福州市&#xff0c;是一家以从事软件和信息技术服务业为主的企业。 Nx02 漏洞描述 银达汇智智慧综合管理平台 FileDownLoad.aspx 存在任意文件读取漏洞&#xff0c;通过漏洞攻击者可下载服务…

项目管理十大知识领域之成本管理

1. 项目成本管理的意义和重要性 项目成本管理是项目管理中至关重要的一部分&#xff0c;它直接关系到项目最终成本和利润的控制&#xff0c;对于企业的可持续发展具有重要意义。通过合理的成本管理&#xff0c;项目能够更好地控制预算&#xff0c;提高效率&#xff0c;降低成本…

计算机系统基础知识一、数值的源码、反码、补码、移码

目录 一、原码、反码、补码定义 1、原码表示 2、反码表示 3、补码表示 二、算数运算 1、二进制算数运算规则 2、机器数的加减运算 三、移码定义 四、移码的意义 概要 在计算机基础中&#xff0c;原码、反码、补码和移码是用于表示和处理有符号整数的编码方式。它们…

5大自动化测试的Python框架,快来学习!

自从2018年被评选为编程语言以来&#xff0c;Python在各大排行榜上一直都是名列前茅。 目前&#xff0c;它在Tiobe指数中排名第三个&#xff0c;仅次于Java和C。随着该编程语言的广泛使用&#xff0c;基于Python的自动化测试框架也应运而生&#xff0c;且不断发展与丰富。 因…

MATLAB解决考研数学一题型(上)

闲来无事&#xff0c;情感问题和考研结束后的戒断反应比较严重&#xff0c;最近没有什么写博文的动力&#xff0c;抽空来整理一下考研初试前一直想做的工作——整理一下MATLAB解决数学一各题型的命令~ 本贴的目录遵循同济版的高数目录~ 目录 一.函数与极限 1.计算双侧极限 2…

鸿蒙开发-UI-布局-弹性布局

地方 鸿蒙开发-UI-布局 鸿蒙开发-UI-布局-线性布局 鸿蒙开发-UI-布局-层叠布局 文章目录 前言 一、基本概念 二、布局方向 1、主轴为水平方向 2、主轴为垂直方向 三、布局换行 四、对齐方式 1、主轴对齐方式 2、交叉轴对齐方式 2.1、容器组件设置交叉轴对齐 2.2、子组件设置交叉…

安装脚手架Vue CLI详解!!!

Vue CLI基本介绍&#xff1a; Vue CLI是Vue官方提供的一个全局命令工具。可以帮助我们快速创建一个开发Vue项目的标准化基础架子【集成了webpack配置】 安装脚手架好处&#xff1a; 开箱即用&#xff0c;零配置&#xff1b;内置babel等工具&#xff1b;标准化 安装步骤&#…

javaScript设计模式-工厂

它的好处是消除对象间的耦合度&#xff0c;在派生子类时提供了更大的灵活性。但盲目的把普通的构造函数扔在一边&#xff0c;并不值得提倡。如果要采一不可能另外换用一个类&#xff0c;或都不需要在运行期间在一系列可互换的类中进行选择&#xff0c;就不应该使用。这样在后期…

虚拟环境中pip install不生效的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

全网首发 2024华数杯B题成品论文word52页(附带所有可执行代码+和高质量数据)

基于数据分析下的光伏发电 摘 要&#xff08;文末获取&#xff09; 根据最新数据&#xff0c;中国的总发电量超过20万亿千瓦时&#xff0c;总体排名世界第一&#xff0c;而光伏发电是一种重要的可再生能源&#xff0c;可以将太阳能转化为电能可以减少对传统能源的依赖&#x…