Linux软件包管理详述

一 在Linux系统中,软件包分为两类,源码包和二进制包(我的环境是CentOS,所以二进制包是RPM包)
源码包的优点:
1 开源,如果有足够的能力,可以修改源代码
2 可以自由选择所需的功能
3 软件是编译安装,根据经验,服务效率会比RPM包高一些
4 卸载方便,直接删除安装路径即可。
源码包的缺点:
1 安装过程步骤较多,尤其是安装较大的软件集合时(LAMP),容易出错
2 编译过程较长,源码包安装时间比RPM包要长很多
3 因为是编译安装,一旦安装过程中报错,新手很难解决

二进制包的有点:
1 包管理系统简单,只需要几个简单明了就可以实现RPM包安装,升级,查询,卸载
2 安装速度比源码包快很多
二进制包的缺点:
1 经过编译,不能再看到源代码
2 功能选择不如源码包灵活
3 依赖性(这个很头大,后面会举例子说明)

二 RPM包管理-rpm命令管理
1 先来看看包命名规则,我们首先看ISO镜像里的,先创建一个挂载目录,然后挂载镜像

Linux软件包管理


然后进入/temp/cdrom目录,就可以看到ISO镜像里的文件了,其中Packages全都是RPM包

Linux软件包管理


我们拿Apache的rpm做例子来看一下
httpd-2.2.15-15.e16.centos.1.i686.rpm
httpd 软件包名
2.2.15 软件版本
15 软件发布的次数
e16.centos 适合的linux平台
i686 适合的硬件平台
rpm rpm包扩展名
如果在安装的时候遇到了rpm包依赖,就需要先安装依赖包,如果遇到了模块依赖,也就是这个依赖是其他rpm包的一部分,那么就需要到网站进行查询,根据模块名查rpm包名

2 RPM包安装
rpm -ivh 包全名
选项:
-i(install) 代表安装
-v(verbose)代表显示详细信息
-h(hash) 显示进度
下面我们来安装Apache的rpm包

Linux软件包管理


我们看到报错了,表示需要先安装这些依赖包,那我们先安装apr-util-ldap

Linux软件包管理


又需要apr-util,这些依赖非常多,我在这里就不一一演示了,大家肯定觉得很烦了,那么有没有更简单的方法呢,yum在线管理就可以很好的解决这个问题,不需要我们去操心这些依赖包,而是一次性帮我们装好,后面再说

3 RPM包升级
rpm -Uvh 包全名
-U(upgrade) 升级,由于我们直接拿到的是ISO镜像里的包,这里就不演示升级了,跟安装是类似的

4 RPM包卸载
rpm -e 包名,注意,这里不需要加包的全名了,只需要加包名即可,Linux用数据库来维护这些包名

5 查询是否安装
rpm -q 包名

Linux软件包管理


我们发现刚刚的httpd是没有安装成功的
rpm -qa
查询所有已经安装的RPM包

Linux软件包管理

6 查询软件包的详细信息
rpm -qi 包名
-i查询软件信息
-p查询未安装包信息
7 查询包中文件安装位置
rpm -ql 包名
-l列表
-p 查询未安装包信息
8 查询系统文件属于哪个rpm包
rpm -qf 包名
-f查询文件属于哪个rpm包
9 查询软件包的依赖
rpm -qR 包名

三 RPM包管理-yum在线管理
1 网络yum源

Linux软件包管理


我们进入到/etc/yum.repos.d/中,其实CentOS-Base.repo就是网络yum源的内容
我们打开看一下

Linux软件包管理


【base】 容器名称
name 容器说明
mirrorlist 镜像站点,这个可以注释掉
baseurl 我们yun源服务器的地址,默认是CentOS官网的yum源地址,是可以使用的,如果觉得慢,可以改成国内yum源地址
enabled 此容器是否生效,如果不写或者=1生效,=0 不生效

2 yum list 查询所有软件包列表

3 yum search 关键字
搜索服务器上所有和关键字相关的包

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/14750.html