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

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

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

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

  2. Linux系统移植

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

  4. LINUX 系统移植 第2版

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

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

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

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

内容简介

====

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

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

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

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

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

需要这份系统化的资料的朋友,可以点击这里获取!

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


#### 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目录下面



[root@localhost src]# ll
总用量 8
drwxr-xr-x 2 root root 4096 10月 18 17:15 core
drwxr-xr-x 3 root root 191 10月 18 17:15 event
drwxr-xr-x 4 root root 4096 10月 18 17:15 http
drwxr-xr-x 2 root root 6 10月 18 16:37 mail
drwxr-xr-x 2 root root 6 10月 18 16:37 misc
drwxr-xr-x 4 root root 31 10月 18 16:37 os

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper

总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

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

需要这份系统化的资料的朋友,可以点击这里获取!

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

xy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

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

需要这份系统化的资料的朋友,可以点击这里获取!

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值