当前位置:   article > 正文

Linux 软件管理(rpm、yum、编译安装)_rpm安装软件

rpm安装软件


学习目标:

- [ ] 了解什么是rpm安装和yum安装和编译安装

- [ ] 掌握rpm安装和yum安装和编译安装流程

- [ ] 使用各个安装方式为centos系统安装软件


一、rpm 安装

1.1、什么是RPM?

  • RPM全名 RedHat Package Managerment,最初由 Red Hat 公司开发,并成为了许多基于 RPM 的 Linux 发行版的标准软件包格式。,是一种数据库记录的方式来将所需要的软件安装到到Linux系统的一套软件管理机制。
  • RPM 文件通常包含了一个或多个软件包的二进制文件、配置文件、文档以及其他相关的信息。
  • 在使用 RPM 进行软件管理时,用户可以通过命令行或图形界面进行软件的安装、升级、查询和删除等操作。
  • rpm类似于windows的注册表,用于记录软件的安装过程中生成的文件的位置,因此借助于rpm可以实现软件的卸载
  • 总的来说,RPM 是一种功能强大、灵活可靠的软件包管理工具,为 Linux 系统的软件管理提供了便利和效率,并成为了许多 Linux 发行版的标准软件包格式之一。

1.2、rpm包的来源

  • 本地rpm包:安装系统的光盘镜像中
  • 线上rpm:
    • 阿里:https://mirrors.aliyun.com/
    • 华为:https://mirrors.huaweicloud.com/
    • 网易:https://mirrors.163.com/
    • 清华:https://mirrors.tuna.tsinghua.edu.cn/
    • 中科大:https://mirrors.ustc.edu.cn/

1.3、rpm软件包解析

metis-5.1.0-12.el7.x86_64.rpm
  • 1

软件名:metis
软件版本:5.1.0-12
适用的系统类型:el7,这个表示在centos7可用
适用的cpu架构:x86_64
后缀:rpm

1.4、RPM的语法格式

rpm [选项] [操作] [软件包]
  • 1

选项:

选项作用
-i, --install安装软件包
-U, --upgrade升级软件包
-e,–erase卸载软件包
-q,–qurey查询已安装的软件包
-V,–verbose验证软件包
-h,–hash显示安装进度
-ivh最常用的安装选项
–force强制安装
–nodeps:忽略依赖关系安装成功,但未必能够成功运行,
–replacepkgs:覆盖安装如果要安装软件包,但是包中的部分文件已经存在,那么在正常安装时会报"某个文件已经存在"的错误,从而导致软件无法安装。使用replacefiles选项可以忽略这个报错而覆盖安装。
–prefix:指定安装路径–prefix 安装路径 包名.rpm

1.5、使用rpm安装软件

安装软件的时候可以先检查一下是否安装
[root@localhost ~]# rpm -q 软件名
  • 1
  • 2

第一步:将光盘挂载到虚拟机

在这里插入图片描述
第二步:挂载光盘

  • linux中使用外部设备,必须进行挂载
  • linux中 /dev/cdrom 就是光盘,也就是我们加载到虚拟机中的系统镜像文件,也就是哪个iso文件
  • 设备文件无法直接使用,必须将设备文关联到一个目录才能使用【关联就是挂载】
1)找一个空目录【一般找/mnt 或者 /media】
ls /mnt
此时这个目录是空的


2)将/dev/cdrom 挂载到 /mnt
mount /dev/cdrom /mnt
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述

第三步:查看rpm包

ls /mnt/Packages/
  • 1

这里面都是软件包这里只展示了十条
在这里插入图片描述

第四步:安装软件(tree)

[root@localhost ~]# cd /mnt/Packages/   	#必须要到这里来否则就会提示找不到文件
[root@localhost Packages]# rpm -ivh tree-1.6.0-10.el7.x86_64.rpm
  • 1
  • 2

第五步:检查是否安装成功

[root@localhost Packages]# rpm -q zsh
tree-1.6.0-10.el7.x86_64
  • 1
  • 2

补充:

  • 查看安装后生成了哪些文件
[root@localhost ~]# rpm -ql tree
/usr/bin/tree
/usr/share/doc/tree-1.6.0
/usr/share/doc/tree-1.6.0/LICENSE
/usr/share/doc/tree-1.6.0/README
/usr/share/man/man1/tree.1.gz
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 查看/etc/passwd这个文件是哪个软件生成的
[root@localhost Packages]# rpm -qf /etc/passwd
setup-2.8.71-11.el7.noarch
  • 1
  • 2

1.6、使用rpm卸载软件

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

1.7、软件的依赖关系

例如:安装gcc

在这里插入图片描述

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

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

二、yum安装

2.1、什么是yum?

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

2.2、yum安装的原理

在这里插入图片描述

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/
  • 1
  • 2
  • 3
  • 4
  • 5

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

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

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

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仓库的位置
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

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

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

第四步:安装软件

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

补充:

  • 无论用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/
  • 1
  • 2
  • 3
  • 4
  • 5

2.8、配置清华的centos源

清华centos7网络源地址:

https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/os/x86_64/
  • 1
因为使用网络源下软件本质上是访问这个网页之后再下载,所以必须保证虚拟接可以访问外网
  • 1

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

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

2)重启网络

systemctl restart network
  • 1

3)检查新网卡是否有IP

ip addr
  • 1

4)检查网络是否正常

ping www.qq.com
  • 1

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

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# vim qinghua-centos.repo
  • 1
  • 2
[qh01centos]
name=qh centos
enabled=1
gpgcheck=0
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/os/x86_64/
  • 1
  • 2
  • 3
  • 4
  • 5

2)检查是否成功

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

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
  • 1
  • 2
[qinghuaepel]
name=qinghua epel
enabled=1
gpgcheck=0
baseurl=https://mirrors.tuna.tsinghua.edu.cn/epel/7Server/x86_64/
  • 1
  • 2
  • 3
  • 4
  • 5

第二步:检查是否成功

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

2.10、使用yum

安装软件
卸载软件
清除缓存
生成缓存
  • 1
  • 2
  • 3
  • 4

清除缓存

  • 元数据
  • rpm包
yum clean all
  • 1

生成缓存

yum repoilist
  • 1

安装软件

yum install 软件名1 软件名2 软件名3 ....
  • 1

卸载软件

yum remove 软件名1 软件名2 软件名3 ....
  • 1

三、源码编译安装

3.1、什么是编译安装?

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

3.2、编译安装的过程

  • 第一步:获取源代码包: 首先需要从软件的官方网站或代码仓库获取软件的源代码。通常这些源代码会以压缩包的形式提供,如.tar.gz或.tar.bz2。
  • 第二步:解压源代码包: 下载后,需要将源代码解压到合适的目录中。通常可以使用tar命令解压,例如:
tar -zxvf software.tar.gz
  • 1
  • 第三步:配置编译参数: 接下来,需要进入解压后的源代码目录,并根据需求配置编译参数。这包括选择安装路径、启用或禁用特定功能等。通常可以通过运行./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
  • 1
  • 2

第二步:解压源代码包

[root@localhost ~]# tar xvf nginx-1.22.1.tar.gz
 # 会得到一个压缩吧同名目录 nginx-1.22.1
  • 1
  • 2

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

[root@localhost ~]# cd nginx-1.22.1
  • 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
  • 1
  • 2

3)执行./configure

[root@localhost nginx-1.22.1]# ./configure --prefix=/usr/local/nginx
  • 1
  • 注意:
    • ./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'
  • 1
  • 2

第四步: 编译

需要在解压目录去执行,否则就会报错。
  • 1
[root@localhost nginx-1.22.1]# make
#没有报错代表安装完成。
  • 1
  • 2

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
drwxr-xr-x 2 root root    6 10月 18 16:37 stream
[root@localhost src]# pwd
/opt/nginx-1.22.1/objs/src
[root@localhost src]# 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

第五步:安装

[root@localhost nginx-1.22.1]# make install
#执行安装命令,第一次安装可以执行,如果是升级,谨慎执行。
  • 1
  • 2

安装完成,安装目录为:/usr/local/nginx

nginx -v  #查看nginx版本
nginx -V  #查看nginx编译参数,如果没有额外的参数,只会显示configure arguments: --prefix=/home/zdsoft/nginx
#这情况下,代表是默认安装,可以查看源码目录auto/options 文件。默认安装了哪些模块,哪些没有安装。
  • 1
  • 2
  • 3

第六步:nginx进程启动

这时候/usr/local/nginx/sbin里面有个可执行程序 nginx
  • 1
[root@localhost nginx-1.22.1]# /usr/local/nginx/sbin/nginx
  • 1

第七步:测试nginx

来到物理机的浏览器输入虚拟机的IP地址来看看是否成功启动
在这里插入图片描述
思考:

  • 编译的安装的软件,用rpm是否可以查看
  • 编译的安装的软件,用yum是否可以卸载
 否
rpm或者yum,只能查看/控制rpm包安装的软件
  • 1
  • 2

3.4、编译安装的卸载

如果使用了–prefix这个命令,那就把你指定的文件给删除了就行了。

小结

今天我们聊了linux软件管理这个话题,分别是三个不同的命名不同的方法,各个都有其独特的特点,我们需要熟记并掌握这三种安装的过程,并保证出错之后可以有效的解决。以上就是今天的内容了,希望小伙伴们有什么不懂的点留在评论区,或者博主有什么写错了的东西都欢迎来各个学霸大佬来指出。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/948120
推荐阅读
相关标签