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

浅谈Yum 安装和 源码安装

浅谈Yum 安装和 源码安装

本文所叙述的Linux系统是基于RedHat发行版的CentOS7

yum安装

1. 前言

我们知道在Windows上下载的安装包后缀是 .exe ,与之对应的 在 Linux下的安装包的后缀是 .rpm

rpm (Red Hat Package Manager) 是红帽软件包管理器

我们在Windows电脑上下载完.exe安装包后,双击打开即可安装,完全不用操心其内部配置和代码的联系方式。

但是,在Linux下,比如你下载一个mysql5.7 的rpm包,那么当你使用rpm命令去安装的时候,就告诉你这个rpm 还依赖于其他的rpm包,你必须按照顺序来一个一个安装,这样显得非常麻烦,且对新手很不友好!

那么,有没有一种工具,让我们无需关心其rpm包之间的依赖,更加方便快捷的安装某个应用呢,答案是肯定的。

这里贴上rpm软件包管理器的常用命令作为学习和参考

# 一、查询已安装的软件包
$ rpm -q 软件包名   # 查询软件包是否安装
$ rpm -ql 软件包名  # 查询软件包的文件具体安装位置
$ rpm -qi 软件包名  # 查询软件包信息# 二、安装、升级、卸载软件包$ rpm -ivh 软件包名  # 安装软件包(其中,i表示安装,v表示显示安装过程,h表示显示安装进度)
$ rpm -Uvh 软件包名  # 升级软件包(U表示升级)
$ rpm -e 软件包名     # 卸载软件包

2. 横空出世

yum就是这样一个方便快捷的工具,对小白同学非常友好。

它会自己解决rpm包之间的依赖关系,我们只需要一个简简单单的命令即可完成安装

# 比如我们安装mysql
$ yum -y install mysql

像上面的命令一样,我们就只提供给我们想要安装的应用名称,即可完成安装。

那么可能有人会问了,这个yum 是从哪里找的rpm安装包呢?安不安全呢?下载速度怎么样啊?

3. yum 源仓库

这个非常好理解,这个yum 仓库里面存放的就是绝大部分rpm安装包,几乎是囊括了你所需要的软件包。

你就跟windows电脑里的软件管家对比,之前你下载一个微信、QQ啥软件的,你都要去百度上寻找官网下载

一不小心可能还下载到病毒,但你去本机自带的软件管家里下载,起码保证你方便寻找,安全可靠。

那yum仓库就跟软件管家一毛一样。里面存放了非常之多的rpm包,当你敲了命令后,他就会去这个仓库里找rpm包

并且自动解决这些包之间的依赖关系,且您放心,这个仓库都是有专人在维护的,可靠性、安全性、完整性不需要担心。

But,But,But 最大的难点就是下载速度比较慢,因为这个仓库是在国外在维护

访问下载速度自然也就慢了,如果你可以科学上网 的话,那当我没说…

当然,解决办法还是有滴!国内也是有这样的仓库的,由国内知名的大厂在维护,比如阿里云、网易、搜狐等

国内开源镜像站
https://developer.aliyun.com/mirror/
http://mirrors.sohu.com
http://mirrors.163.com

但是哦,我在上面说的是这个仓库囊括了绝大多数安装包,有的没有的,就需要第三方可信任组织的软件包

  • epel 它提供了众多centos额外的第三方包
http://mirrors.sohu.com/fedora-epel/7/x86_64/Packages/
https://developer.aliyun.com/mirror/epel/

现在,你有了国内的yum 仓库,你就可以去这个地址下下载啦

老规矩,附上一份yum 常用命令

$ yum install -y 软件名   # 安装软件
$ yum remove 软件名  # 卸载软件
$ yum update 软件名  # 更新软件
$ yum update  # 更新所有软件包
$ yum search 软件名  # 搜索指定软件
$ yum list # 列出所有软件包
$ yum list installed  # 列出已安装的所有软件包
$ yum list available  # 列出可用的安装包
$ yum clean all  # 清理下载的缓存,释放磁盘空间

BUT,又有人可能会问,那yum怎么知道要去这个地址下载软件呢?

嘿!请往下接着瞧

4. 配置仓库地址

首先要说明的一点是,yum是分为服务端和客户端。

服务端说白了就是yum 仓库,提供服务的

客户端就是我们个人、企业的主机,来获取这些服务的机器

我们先来看看yum 的客户端
# 客户端的配置文件是 /etc/yum.conf 文件  它为所有仓库提供公共配置
$ vim /etc/yum.conf[main]
cachedir=/var/cache/yum/$basearch/$releasever   # 注明缓存的文件目录位置
keepcache=0										# 本地缓存是否保留 0 否 1 是
debuglevel=2									# 调日志级别
logfile=/var/log/yum.log						# 日志文件目录位置
exactarch=1										# 精确匹配系统平台(CentOS、Ubantu)
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5								# 同时安装几个软件包
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release#  This is the default, if you make this bigger yum won't see if the metadata
# is newer on the remote and so you'll "gain" the bandwidth of not having to
# download the new metadata and "pay" for it by yum not having correct
# information.
#  It is esp. important, to have correct metadata, for distributions like
# Fedora which don't keep old packages around. If you don't like this checking
# interupting your command line usage, it's much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
# metadata_expire=90m# 最后一句话解释一下,请将你的yum 仓库配置文件(也就是仓库地址咯)放在 /etc/yum.repos.d目录下,要以.repo结尾才可以
# PUT YOUR REPOS HERE OR IN separate files named file.repo  
# in /etc/yum.repos.d
# 那我们cd 到该目录下看看
$ cd /etc/yum.repos.d
# 切记,必须将*.repo文件放在这个目录下,也不能放在它的子目录下,且只在这个目录下才可行。

我们来以这个目录下的 CentOS-Base.repo 文件为例来说明文件内容

$ vim CentOS-Base.repo# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#[base]
name=CentOS-$releasever - Base -mirrors.sohu.com  # 仓库的名字
failovermethod=priority # roundrobin 随机挑选   priority 顺序读取
baseurl=http://mirrors.sohu.com/centos/7/os/x86_64/Packages/=http://mirrors.sohu.com/centos/7/updates/x86_64/Packages/
gpgcheck=1  # 是否检测秘钥
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7  # 公钥存放路径# 指定rpm包升级的时候,去哪里找
#released updates   
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7# epel额外包的下载地址
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

自己自定义的时候的格式,按照[base]的那个来,其余的updates和 extras都也一样

我们可以去阿里巴巴的镜像网站看看如何配置

[阿里巴巴CentOS的[base]的配置源教程](centos镜像_centos下载地址_centos安装教程-阿里巴巴开源镜像站 (aliyun.com))

[阿里巴巴CentOS的[extras]的配置源教程](epel镜像_epel下载地址_epel安装教程-阿里巴巴开源镜像站 (aliyun.com))

源码安装

上面的yum 安装方式有利有弊

  • 利:安装方便快捷,适合新手,配置相对方便,可以自动解决依赖关系

  • 弊:不能自定义应用、不能指定应用的下载版本

源码安装利弊

  • 利:可以指定下载版本,设置参数、指定安装路径、扩展第三方功能
  • 弊:不适合新手,适合老手,不能自动解决依赖关系,安装复杂、配置相对复杂

建议方式:yum 和 源码一起使用,即可解决绝大部分问题

源码安装分三步

前提条件:准备好开发工具以及开发环境

  • 开发工具:gcc make 等
  • 开发组件
    • yum groups install "Development Tools"
    • yum groups install "Platform Development"

第一步

执行脚本 configure 文件

# 1.解压提前下载好的tar.gz 的源码包
# 2.cd 到解压的目录下
# 3.然后执行./configure --prefix=软件安装路径对于C C++ 代码进行编译安装,需要执行configure脚本来生成Makefile文件来检查依赖和外部环境# 假设你已经下载了nginx-1.12.0.tar.gz压缩包在/opt目录下$ cd /opt/ 
$ tar -zxvf nginx-1.12.0.tar.gz # 解压
$ cd nginx-1.12.0
$./configure --prefix=/data/nginx_test01 # 指定安装的目录到/data/nginx_test01 下
$ ls # 可以看到Makrfile文件

第二步

执行make 命令

# make 的作用就是进行源代码编译,以及提供一些功能
# 在当前目录(/opt/nginx-1.12.0)下输入make指令
$ make

第三步

开始安装 make install

# 当你执行完这条命令后,才会生成/data/nginx_test01这个文件夹
# 还是在当前目录下,输入make install命令
$ make install
# 然后这个目录文件就生成了  /data/nginx_test01

演示启动玩一下

# 上面已经编译安装完了nginx,现在我们来启动它
$ cd /data/nginx_test01
$ ls
$ cd ./sbin # bin目录是二进制文件可执行的目录
$ ls # 然后可以看见一个nginx可执行文件,执行它
$ ./nginx# 然后去网页上访问IP加端口,看看是否成功# 如果出现403,则需要浅浅的配置一下nginx的配置文件
$ cd /data/nginx_test01/conf
$ vim nginx.conf# user nobody;  # 将第一行代码取消注释,nobody改成root 以root用户执行
user root;
...
...
# 保存退出# 重启nginx
$ cd ..
$ ./sbin/nginx -s reload 
# 然后就好了

最后一步,将启动文件地址加入到PATH里,配置全局变量

就不用每次去指定目录里再去启动、重启了

# 我想直接输入 nginx启动它,就必须要配置环境变量
# 那么就可以将 /data/nginx_test01/sbin 写入环境变量$ vim /etc/profile.d/nginx.sh
# 写入这样一条命令
$ export PATH=/data/nginx_test01/sbin:$PATH
# 保存退出# 重新读取配置文件
$ source /etc/profile.d/nginx.sh# 然后就可以启动、重启、停止nginx服务了
$ nginx #启动
$ nginx -s stop #停止
$ nginx -s reload
$ nginx -s restart

感谢自己的记录和坚持不懈,加油! 今日学习记录和分享到此结束! 下次再见!

相关文章:

浅谈Yum 安装和 源码安装

浅谈Yum 安装和 源码安装 本文所叙述的Linux系统是基于RedHat发行版的CentOS7 yum安装 1. 前言 我们知道在Windows上下载的安装包后缀是 .exe ,与之对应的 在 Linux下的安装包的后缀是 .rpm rpm (Red Hat Package Manager) 是红帽软件包管理器 我们在Windows电脑…...

JavaEE初阶Day 3:多线程(1)

目录 Day 3:多线程(1)1. 线程1.1 引入线程的原因1.2 线程的定义1.3 为何线程更轻量1.4 问题 2. 多线程代码2.1 继承Thread重写run2.2 通过实现Runnable接口创建线程2.3 针对2.1的变形使用匿名内部类2.4 针对Runnable创建匿名内部类2.5 使用la…...

gutil140.dll是什么?gutil140.dll无法继续执行的解决方法

gutil140.dll文件是一个动态链接库(DLL)文件,通常与Microsoft Visual Studio 2015相关联。 gutil140.dll是开发过程中使用的工具函数集合,它辅助开发人员执行常见的编程任务,如文件操作、内存分配和字符串处理等。这个…...

在CentOS 7上安装Python 3.7.7

文章目录 一、实战步骤1. 安装编译工具2. 下载Python 3.7.7安装包3. 上传Python 3.7.7安装包4. 解压缩安装包5. 切换目录并编译安装6. 配置Python环境变量7. 使配置生效8. 验证安装是否成功 二、实战总结 一、实战步骤 1. 安装编译工具 在终端中执行以下命令 yum -y groupin…...

基于SpringBoot Vue宠物领养系统

一、📝功能介绍 基于SpringBoot Vue宠物领养系统 角色:管理员、用户 当游客打开系统的网址后,首先看到的就是首页界面。在这里,游客能够看到宠物领养救助平台的导航条显示首页、宠物招领、宠物认领、 宠物论坛、宠物资讯、后台管…...

ip命令

ip a 也是ip addr简写 [rootlocalhost ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft…...

【Kaggle】练习赛《鲍鱼年龄预测》(上)

前言 上一篇文章&#xff0c;讲解了《肥胖风险的多类别预测》机器学习方面的文章&#xff0c;主要是多分类算法的运用&#xff0c;本文是一个回归的算法&#xff0c;本期是2024年4月份的题目《Regression with an Abalone Dataset》即《鲍鱼年龄预测》&#xff0c;在此分享高手…...

Ruby 之交租阶段信息生成

题目 我看了一下&#xff0c;这个题目应该不是什么机密&#xff0c;所以先放上来了。大概意思是根据合同信息生成交租阶段信息。 解答 要求是要使用 Ruby 生成交租阶段信息&#xff0c;由于时间比较仓促&#xff0c;变量名那些就用得随意了些。要点主要有下面这些&#xff1a…...

RUST语言值所有权之内存复制与移动

1.RUST中每个值都有一个所有者,每次只能有一个所有者 String::from函数会为字符串hello分配一块内存 内存示例如下: 在内存分配前调用s1正常输出 在分配s1给s2后调用报错 因为s1分配给s2后,s1的指向自动失效 s1被move到s2 s1自动释放 字符串克隆使用...

【Django学习笔记(三)】BootStrap介绍

BootStrap介绍 前言正文1、BootStrap 快速了解2、初识BootStrap2.1 下载地址2.2 创建目录2.3 引入BootStrap2.4 使用BootStrap 3、BootStrap 组件&样式3.1 导航条3.2 栅格系统3.3 container3.3.1 container3.3.2 container-fluid 3.4 面板3.5 媒体对象3.6 分页3.7 图标3.7.…...

ClickHouse开发相关(UDAF)

ClickHouse开发相关(UDAF) ClickHouse介绍 ClickHouse是一个开源、高性能的列式 OLAP 数据库管理系统,用于使用 SQL 进行实时分析。 为什么需要ClickHouse UDAF? ClickHouse中已存在了许多聚合函数,绝大多数情况下已经覆盖我们的需求,但是有时候我们仍然需要自定义函数…...

MySql并发事务问题

事务 事务概念&#xff1a; 事务是一组操作的集合&#xff0c;它是一个不可分割的工作单位&#xff0c;事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求&#xff0c;即这些操作要么同时成功&#xff0c;要么同时失败。 事务的特性&#xff1a;ACID&#xff1a; 小…...

Windows下Docker创建Mysql5.7

安装 下载镜像&#xff0c;注意&#xff0c;要带版本号 docker pull mysql:5.7 等下载完成执行命令&#xff1a; 错误命令1&#xff0c;直接Windows下路径&#xff1a; docker run --name mysql57 --restartalways -p 3306:3306 -v F:/mysqldata/data57/log:/var/log/mysql…...

Redis(性能管理、主从复制、哨兵模式)概述及部署

目录 一、性能管理 1、查看Redis内存使用 2、内存碎片率 3、跟踪内存碎片率 4、内存使用率 5、内回收key 二、Redis集群有三种模式 三、Redis主从复制 1、主从复制的概念 2、主从复制的作用 3、主从复制的流程 4、搭建Redis主从复制 1.环境准备 2.安装Redis&#…...

LabVIEW挖坑指南

一、挖坑指南 1.1、输出变量放在条件框内 错误写法&#xff1a; 现象&#xff1a;如果没进入对应的分支&#xff0c;输出为默认值 正常写法&#xff1a; 让每个分支输出的值都在预料之内。 1.2、统计耗时不准 错误写法 现象&#xff1a;统计出来的耗时是2000ms 正常写法&a…...

docker容器环境安装记录(MAC M1)(完善中)

0、背景 在MAC M1中搭建商城项目环境时&#xff0c;采用docker统一管理开发工具&#xff0c;期间碰到了许多环境安装问题&#xff0c;做个总结。 1、安装redis 在宿主机新建redis.conf文件运行创建容器命令&#xff0c;进行容器创建、端口映射、文件挂载、以指定配置文件启动…...

Linux 常用命令(持续更新中...)

1. ls 查看文件列表命令 语法&#xff1a; ls [-a -l -h] [Linux路径] -a -l -h 是可选的选项 &#xff08;-h需配合-l命令一起使用&#xff09;Linux路径是此命令可选的参数 ls #查看当前目录所有非隐藏文件(平铺方式显示) ls -a #查看当前目录下所有文件 …...

xss.pwnfunction-Jefff

在eval中可以直接执行命令所以直接把"直接闭合在结尾再加上一个"因为后面的"没闭和会报错 ?jeffa";alert(1);" 或 ?jeffa"-alert(1)-" -是分隔符...

java——文件上传

一、文件上传——简介 文件上传的简介&#xff1a;文件上传是指将本地计算机中的文件传输到网络上的服务器或另一台计算机上的过程。在 Web 开发中&#xff0c;文件上传通常指的是将用户通过 Web 页面提交的文件&#xff08;如图像、文档、音频、视频等&#xff09;传输到服务器…...

RCE(远程命令执行)漏洞详解

漏洞描述 RCE(remote command/code execute&#xff0c;远程命令执行)漏洞 远程代码执行 (RCE) 攻击是指攻击者可以在一个组织的计算机或网络上运行恶意代码。执行攻击者控制的代码的能力可用于各种目的&#xff0c;包括部署额外的恶意软件或窃取敏感数据。 漏洞原理 远程代…...

K8S - Deployment 的版本回滚

当前状态 先看deployment rootk8s-master:~# kubectl get deploy -o wide --show-labels NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES …...

53 v-bind 和 v-model 的实现和区别

前言 这个主要的来源是 偶尔的情况下 出现的问题 就比如是 el-select 中选择组件之后, 视图不回显, 然后 model 不更新等等 这个 其实就是 vue 中 视图 -> 模型 的数据同步, 我们通常意义上的处理一般是通过 模型 -> 数据 的数据同步, 比如 我们代码里面更新了 model.…...

VMware-16.0配置虚拟机网络模式

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、为什么要配置网络&#xff1f;二、配置步骤1.检查VMware服务2.进入配置页面3.添加网络模式1.Bridge2.NAT3.Host-only 4.DHCP租约5.静态IP 三、使用总结 前言…...

element-ui badge 组件源码分享

今日简单分享 badge 组件的源码实现&#xff0c;主要从以下两个方面&#xff1a; 1、badge 组件页面结构 2、badge 组件属性 一、badge 组件页面结构 二、badge 组件属性 补充几个标签的用途&#xff1a; sub&#xff1a;下标、sup&#xff1a;上标、var 变量 代码如下&am…...

MySQL中日期有关函数

本次记录了获取日期时间的多种方式&#xff0c;还有日期和字符串之间的转换&#xff0c;以及加减日期的操作。 获取时间 # 1.获取当前时间(年月日时分秒格式) select now();# 2.获取当前时间(年月日格式) select curdate();# 3.获取当前时间(时分秒格式) select curtime();# 4.…...

jdbc工具类

jdbc 工具类&#xff0c;具体见下面代码&#xff0c;直接可以用。 /*** version 1.0* descpription: jdbc工具类* date 2024/4/6*/ public class JDBCUtils {private static final String URL "jdbc:mysql://127.0.0.1:3306/mybatis";private static final String …...

Svelte Web 框架介绍

Svelte 是一个用于构建网络应用程序的现代框架&#xff0c;它与其他用户界面框架&#xff08;如React和Vue&#xff09;有着本质的不同。Svelte 的核心理念是在构建应用程序时&#xff0c;将大部分工作转移到编译步骤中&#xff0c;而不是在用户的浏览器中运行时处理。这种方法…...

IP地址获取不到的原因是什么?

在数字化时代的今天&#xff0c;互联网已成为我们日常生活和工作中不可或缺的一部分。而IP地址&#xff0c;作为互联网通信的基础&#xff0c;其重要性不言而喻。然而&#xff0c;有时我们可能会遇到IP地址获取不到的问题&#xff0c;这会给我们的网络使用带来诸多不便。那么&a…...

Android APP加固利器:深入了解混淆算法与混淆配置

Android APP 加固是优化 APK 安全性的一种方法&#xff0c;常见的加固方式有混淆代码、加壳、数据加密、动态加载等。下面介绍一下 Android APP 加固的具体实现方式。 混淆代码 使用 ipaguard工具可以对代码进行混淆&#xff0c;使得反编译出来的代码很难阅读和理解&#xff…...

蓝桥杯真题Day47 倒计时6天:6道真题+回溯递归问题

[蓝桥杯 2019 省 A] 糖果 题目描述 糖果店的老板一共有M种口味的糖果出售。为了方便描述&#xff0c;我们将M 种口味编号 1∼ M。小明希望能品尝到所有口味的糖果。遗憾的是老板并不单独出售糖果&#xff0c;而是K 颗一包整包出售。 幸好糖果包装上注明了其中 K 颗糖果的口味…...

腾宁科技做网站399元全包/如何做seo搜索引擎优化

Java 设计模式 Prototype 原型 模式 Prototype 模式用于不能根据类来来生产实例时&#xff0c;而根据现有的实例来生成新的实例。 原型&#xff1a;负责定义用于复制现有实例来生成新实例的方法。具体的原型&#xff1a;负责实现复制现有实例并生成新实例的方法。使用者&#x…...

焦作网站建设设计/厦门seo排名扣费

一、基本入门 1.IntelliJ-IDEA预装的版本控制介绍 我们来看IntelliJ-IDEA的版本控制设置区域 打开File>Settings>Version Control 可以看到里面有git插件这让很多人认为 IntelliJ IDEA 自带了 SVN 或是 Git 等版本控制工具&#xff0c;认为只要安装了 IntelliJ IDEA 就可…...

wordpress报表/微信拓客的最新方法

什么是路由&#xff1f; 根据不同的url展示不同的页面或者数据。 分类&#xff1a;路由分为前端路由和后端路由。 前端路由&#xff1a;主要用于单页面的开发&#xff0c;根据用户请求的地址来渲染不同的页面。前端路由不会经过后端&#xff0c;而是根据hash值的变化进行页面数…...

个人网站设计主题/app平台搭建

TCP/IP 是一组协议的代名词&#xff0c;它还包括许多协议&#xff0c;组成了 TCP/IP 协议簇。 TCP/IP 通讯协议采用了5层的层级结构&#xff0c;每一层都呼叫它的下一层来完成自己的需求。 应用层 负责应用程序间沟通&#xff0c;如简单电子邮件传输&#xff08;SMTP&#xff…...

档案网站建设经验/seo软文推广工具

海阔凭鱼跃&#xff0c;天高任鸟飞。Hey 你好&#xff01;我是秦爱德。&#x1f604;❝平平无奇上班摸鱼&#xff0c;甚至想着如何带薪拉屎 &#x1f60f;&#x1f60f;&#x1f60f;❞论一个职业程序员&#xff0c;我们如何在工作中悄无声息的「摸鱼」 ❓ 且老板还得拍手叫好&…...

wordpress wp unslash/网络营销推广优化

这篇文章主要介绍了C语言树状数组的实例详解的相关资料,希望通过本文能帮助到大家&#xff0c;让大家理解掌握这部分内容&#xff0c;需要的朋友可以参考下C语言树状数组的实例详解最近学了树状数组&#xff0c;给我的感觉就是 这个数据结构好神奇啊^_^首先她的常数比线段树小&…...