Linux 软件管理(rpm、yum、编译安装)_linux软件安装管理之 yum rpm(1)

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注运维)
img

正文


#### 1.6、使用rpm卸载软件



[root@localhost Packages]# rpm -e tree
[root@localhost Packages]# rpm -q tree
package tree is not installed


#### 1.7、软件的依赖关系


**例如:安装gcc**


![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/2e51b774312c478cb753e5a1ed86b257.png)



这个依赖关系就是,你如果想要下载A软件就必须要先下载B软件,要是想要下载B软件就先要下载C软件…
A --> B —> C ----> D ------> E


如此以来如果被依赖的软件包很多很多,这样的安装相对来说就过于繁琐,于是我们就迎来了依赖软件包的克星——就是他:yum安装


## 二、yum安装


#### 2.1、什么是yum?


* Yum(Yellowdog Updater, Modified)是一个在 Red Hat 及其衍生发行版(如 CentOS 和 Fedora)中用来管理软件包的命令行工具。它是 RPM 包管理系统的前端工具,用于简化软件包的安装、升级和移除等操作。
* 基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。


#### 2.2、yum安装的原理


![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/cd42bbc26701437eb70d7e24b22f3cfd.png)


#### 2.3、yum源/yum仓库


* Yum源是指一组存储软件包的服务器或存储库,它包含了一系列软件包及其相关的元数据(如依赖关系信息、版本号等)
* 每个Yum源都有一个唯一的URL地址,Yum工具通过这个URL地址访问源中的软件包。
* 添加Yum源通常涉及编辑Yum配置文件(如/etc/yum.repos.d/目录下的.repo文件),将源的URL地址和其他相关信息添加到配置文件中。一旦配置完成,用户就可以使用Yum命令从该源中安装、更新和删除软件包。
* 通过使用Yum源,用户可以方便地管理系统上的软件包,并确保系统能够获取到所需的软件包及其更新版本。


#### 2.4、元数据


* 仓库中的全部软件名
* 仓库中每个软件的版本号
* 仓库中每个软件的依赖信息


#### 2.5、yum 安装的流程


* 第一步:去找到yum源
* 第二步:去下载仓库中的元数据
* 第三步:通过元数据分析目标仓库是否有要安装的软件包,并且获取软件包的依赖关系信息
* 第四步:根据元数据的分析结果在yum源中去下载rpm包到本地
* 第五步:根据元数据的分析结果依次按照顺序安装rpm包


#### 2.6、yum源的分类


第一种:自己创建yum仓库(新手不建议)  
 第二种:使用现有的yum仓库【本地/远程】


#### 2.7、使用yum安装软件gcc(使用本地源)


创建本地yum源有两种方法:


* 方法1:直接使用光盘作为yum源
* 方法2:自己创建一个目录,在目录中准备rpm包和源数据


##### 2.7.1、方法1:使用光盘作为yum源


**第一步:挂载光盘**



mkdir /test/testyum -p
mount /dev/cdrom /test/testyum/

检查挂载点
ls /test/testyum/


**第二步:修改yum的配置文件,指向我们创建的yum源:/test/testyum/**



yum的配置文件包括主配置文件和子配置文件
主配置文件:/etc/yum.conf
子配置文件:/etc/yum.repos.d下,配置文件名称无所谓,但是后缀必须是.repo


我们现在要用的是子配置文件



1)切换路径
[root@localhost ~]# cd /etc/yum.repos.d/

2)备份/删除原来的配置文件
[root@localhost yum.repos.d]# mkdir bak
[root@localhost yum.repos.d]# mv *.repo bak

3)新建一个配置文件,指向我们的yum仓库
[root@localhost yum.repos.d]# vi local.repo
[myrepo] # 指定yum仓库的id,这行不能有空格
name=my repo # 指定yum仓库的名称,可以随便写
enabled=1 # 指定yum仓库是否激活,0表示不激活;1表示激活可用
gpgcheck=0 # 指定是否检查rpm包的来源合法性,0表示不检查;1表示检查,如果要检查的话
baseurl=file:///test/testyum/ # 指定yum仓库的位置


**第三步:检查配置是否成功**



[root@localhost yum.repos.d]# yum clean all #清除之前yum源的缓存
[root@localhost yum.repos.d]# yum repolist #重新加载配置的yum源
#没有报错就是配置成功


**第四步:安装软件**



[root@localhost yum.repos.d]# yum install gcc
#期间会自动解决依赖关系并询问是否安装以来输入“y”确定安装


**补充:**


* 无论用rpm安装还是用yum安装,都可以用rpm -q 来检查


##### 2.7.2、方法2:使用网络yum源


**网络源**



  • 阿里:https://mirrors.aliyun.com/
  • 华为:https://mirrors.huaweicloud.com/
  • 网易:https://mirrors.163.com/
  • 清华:https://mirrors.tuna.tsinghua.edu.cn/
  • 中科大:https://mirrors.ustc.edu.cn/

#### 2.8、配置清华的centos源


**清华centos7网络源地址:**



https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/os/x86_64/



因为使用网络源下软件本质上是访问这个网页之后再下载,所以必须保证虚拟接可以访问外网


**第一步:配置linux网络**  
 1)给虚拟机添加新网卡


* 新网卡的网络类型设置为NAT -只要物理机能上网,虚拟就可以正常上网
* 配置过程:略


2)重启网络



systemctl restart network


3)检查新网卡是否有IP



ip addr


4)检查网络是否正常



ping www.qq.com


**第二步:配置清华centos源文件**  
 1)创建yum源配置文件



[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# vim qinghua-centos.repo



[qh01centos]
name=qh centos
enabled=1
gpgcheck=0
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/os/x86_64/


2)检查是否成功



[root@localhost yum.repos.d]# yum clean all
[root@localhost yum.repos.d]# yum repolist


#### 2.9、配置清华的epel源


**什么是epel?**


* EPL(Extra Packages for Enterprise Linux)是一个为基于 Red Hat Enterprise Linux(RHEL)和其衍生发行版(如 CentOS 和 Oracle Linux)提供额外软件包的项目。它提供了一系列高质量的、社区维护的软件包,这些软件包通常不包含在官方的 RHEL 软件仓库中。
* EPEL源包含了许多常用的开源软件、工具和库,以及一些不常见但有用的软件包,如开发工具、网络服务、安全工具等。这些软件包通过EPEL项目进行维护和更新,用户可以通过Yum工具轻松地安装、升级和管理这些软件包。
* 使用EPEL源可以为RHEL和其衍生发行版增加更多的软件选择,帮助用户满足系统的特定需求,扩展系统的功能和应用范围。EPEL源是一个受欢迎且广泛使用的软件仓库,为Linux用户提供了更多的选择和灵活性。


**第一步:创建yum源配置文件**



[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# vim qinghua-epel.repo



[qinghuaepel]
name=qinghua epel
enabled=1
gpgcheck=0
baseurl=https://mirrors.tuna.tsinghua.edu.cn/epel/7Server/x86_64/


**第二步:检查是否成功**



[root@localhost yum.repos.d]# yum clean all
[root@localhost yum.repos.d]# yum repolist


#### 2.10、使用yum



安装软件
卸载软件
清除缓存
生成缓存


**清除缓存**


* 元数据
* rpm包



yum clean all


**生成缓存**



yum repoilist


**安装软件**



yum install 软件名1 软件名2 软件名3 …


**卸载软件**



yum remove 软件名1 软件名2 软件名3 …


## 三、源码编译安装


#### 3.1、什么是编译安装?


* Linux的编译安装是一种在Linux系统上安装软件的方法,通常用于安装那些没有预编译包或需要定制编译参数的软件。
* 编译安装通常需要一定的技术水平和经验,因为它涉及到理解软件的编译和安装过程,以及处理可能出现的依赖性问题。但它也提供了更大的灵活性和控制权,可以根据需要进行定制化配置和优化。


#### 3.2、编译安装的过程


* 第一步:获取源代码包: 首先需要从软件的官方网站或代码仓库获取软件的源代码。通常这些源代码会以压缩包的形式提供,如.tar.gz或.tar.bz2。
* 第二步:解压源代码包: 下载后,需要将源代码解压到合适的目录中。通常可以使用tar命令解压,例如:



tar -zxvf software.tar.gz


* 第三步:配置编译参数: 接下来,需要进入解压后的源代码目录,并根据需求配置编译参数。这包括选择安装路径、启用或禁用特定功能等。通常可以通过运行./configure脚本来进行配置。  
 \*第四步: 编译: 配置完成后,可以使用make命令来编译软件。这将根据配置文件生成可执行文件和相关的库文件。
* 第五步:安装: 编译完成后,可以使用make install命令将软件安装到系统中。这将把可执行文件、库文件和其他相关文件复制到系统的指定目录中。
* 第六步:清理: 最后,可以运行make clean命令来清理编译生成的临时文件,以节省磁盘空间。


#### 3.3、编译安装Nginx


**第一步:获取源代码包:**


* 下载源代码安装包文件,以 Nginx 服务为例,我们需要进入https://nginx.org/download//找到nginx的软件包。
* 我们可以下载到物理机上 ctrl+c 复制,然后在到虚拟机上 ctrl+v 粘贴
* 也可以复制链接到虚拟机上使用wget来下载
* 还可以安装组件,使用xshell(远程连接软件)进行拖拽



安装组件:lrzsz
yum install lrzsz -y


**第二步:解压源代码包**



[root@localhost ~]# tar xvf nginx-1.22.1.tar.gz

会得到一个压缩吧同名目录 nginx-1.22.1


**第三步:配置编译参数:**  
 1)进入解压目录



[root@localhost ~]# cd nginx-1.22.1


2)安装依赖


* nginx的依赖:gcc gcc-c++ ncurses ncurses-devel pcre pcre-devel zlib-devel openssldevel



[root@localhost ~]# yum install gcc gcc-c++ pcre-devel zlib-devel openssl-devel
ncurses-devel -y


3)执行./configure



[root@localhost nginx-1.22.1]# ./configure --prefix=/usr/local/nginx


* 注意:
	+ ./configure 是检查环境是否满足
	+ –prefix=/usr/local/nginx 指定软件的安装位置是 /usr/local/nginx


备注:日常生产环境使用nginx,编译模块按照nginx官方yum安装的模块,基本能满足95%以上的生产需求。yum安装模块如下,可自行参考:



生产环境使用

./configure --prefix=/opt/xxx/xxx --user=zdsoft --group=zdsoft --with-compat --with-debug --with-file-aio --with-google_perftools_module --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_degradation_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_mp4_module --with-http_perl_module=dynamic --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-http_xslt_module=dynamic --with-mail=dynamic --with-mail_ssl_module --with-pcre --with-pcre-jit --with-stream=dynamic --with-stream_ssl_module --with-stream_ssl_preread_module --with-threads --with-cc-opt=‘-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC’ --with-ld-opt=‘-Wl,-z,relro -Wl,-z,now -pie’


**第四步: 编译**



需要在解压目录去执行,否则就会报错。



[root@localhost nginx-1.22.1]# make
#没有报错代表安装完成。


make执行完成后生成的中间件文件,都会放在objs/src目录下面

![](https://img-blog.csdnimg.cn/img_convert/9a8cb5f8c0ec69e6499adead0da6e95b.png)



最全的Linux教程,Linux从入门到精通

======================

1.  **linux从入门到精通(第2版)**

2.  **Linux系统移植**

3.  **Linux驱动开发入门与实战**

4.  **LINUX 系统移植 第2版**

5.  **Linux开源网络全栈详解 从DPDK到OpenFlow**



![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/59742364bb1338737fe2d315a9e2ec54.png)



第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。



![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/9d4aefb6a92edea27b825e59aa1f2c54.png)



**本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。**

> 需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)**
![img](https://img-blog.csdnimg.cn/img_convert/58963622f641534b567de03cc38e9b5f.jpeg)

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
ntu安装镜像文件,供读者免费下载。



![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/9d4aefb6a92edea27b825e59aa1f2c54.png)



**本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。**

> 需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)**
[外链图片转存中...(img-xiVEJlC7-1713356106997)]

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
  • 25
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值