LINUX安装 RPM与YUM

1 Linux软件安装概述

安装程序的方式:

  • 通用二进制格式:直接解压压缩文件,就可以使用。但一定要注意安装平台。
  • 软件包管理器:如RPM。
  • 软件包管理器的前端工具:如YUM。
  • 源代码编译。

1 1.1 软件包概述

软件包的组成部分:

  • 二进制程序,位于 /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin 等目录中。
  • 库文件,位于 /lib, /usr/lib, /usr/local/lib 等目录中。Linux中库文件以 .so(动态链接库)或 .a(静态链接库)作为文件后缀名。
  • 配置文件,位于 /etc 目录中。
  • 帮助文件:手册, README, INSTALL (/usr/share/doc/)

在没有软件包管理器之前,安装程序,卸载程序是非常繁杂的。 

软件包管理工具的特性:

  • 文件清单
  • 文件放置路径
  • 提供的功能说明
  • 依赖关系

软件包管理器内部有一个数据库,其中记载着程序的基本信息,校验信息,程序路径信息等。 

2 RPM

RPM早期被称为RedHat Package Manager,但由于目前RPM非常流行,且已经成为Linux工业标准。所以RPM现在又被称为RPM is Package Manager。

RPM管理支持事务机制。增强了程序安装卸载的管理。

RPM的功能:打包、安装、查询、升级、卸载、校验、数据库管理。 

2 2.1 RPM的缺点

由于Linux中的程序大多是小程序。程序与程序之间存在非常复杂的依赖关系。RPM无法解决软件包的依赖关系。 

3 2.2 RPM包

用RPM工具可以将二进制程序进行打包,包被称为RPM包。RPM包并不是跨平台的。RedHat的RPM包与SUSE的RPM包不能混用。实际上RedHat的安装,初始软件也都是使用RPM包进行安装的。

源程序的命名规范name-version.tar.{gz|bz2|xz}

版本号:major.minor.release

例:bash-4.3.1.tar.xz

RPM包的命名规范name-version-release.os.arch.rpm

name:程序名称。

version:程序版本号。

release(发行号):用于标识RPM包本身的发行号,与源程序的release号无关。

os:即说明RPM包支持的操作系统版本。如el6(即rhel6)、centos6、el5、suse11。

arch:主机平台。如i686、x86_64、amd64、ppc(power-pc)、noarch(即不依赖平台)

例:bash-4.3.2-5.el6.x86_64.rpm

3.1 RPM分包

在把二进制文件打包时,将主要功能打入主包。将辅助功能打入分包。分包在需要的情况下安装,若不需要就可以不安装。

  • 主包:核心包。
  • 分包:又称为支包。

3.2 获取需要的RPM包

互联网中RPM常用站点:

http://mirrors.sohu.com

http://rpmfind.net

http://rpm.pbone.net/

3.3 epel

epel是为RedHat提供扩展的RPM包。这些包是Linux安装盘中没有的。该项目目前由Fedora维护。

例:使用网易镜像站查看epel。

注意:优先使用Linux光盘中的包。其次考虑epel中的包。尽量不要使用来路不明的RPM包。

3.4 RPM包的验正机制

RPM可以验证来源的合法性、软件包的完整性。

4 2.3 RPM命令的使用

RPM常用选项:

-i:表示安装。

-v, -vv, -vvv:表示详细信息。

-h:以"#"号显示安装进度。

-q:查询指定包名。

-e:卸载指定包名。

-U:升级软件,若未软件尚未安装,则安装软件。

-F:升级软件。

-V:对RPM包进行验证。

--nodeps:忽略依赖关系。

--query:查询指定包名。同-q选项。

--hash:同-h。

--install:表示安装,同-i选项。

--test:仅作测试,不真正执行,可用于测试安装,测试卸载。

--replacepkgs:重新安装。替换原有的安装。

--force:忽略软件包及文件的冲突。

--initdb:新建RPM的数据库。

--rebuilddb:重建RPM的数据库。

--percent:以百分比的形式输出安装的进度。

RPM包的查询:

rpm -q:查询某一个RPM包是否已安装

rpm -qi:查询某一个RPM包的详细信息

rpm -ql:列出某RPM包中所包含的文件。

rpm -qf:查询某文件是哪个RPM包生成的。

rpm -qa:列出当前系统所有已安装的包

安装或卸载时,可能出现如下类似警告信息:warning:/etc/sysconfig/named created as /etc/sysconfig/named.rpmnew

该警告信息表示:rpm的配置文件被另存为了一份文件。

4.1 安装RPM包

命令格式:rpm -i /PATH/TO/RPM_FILE

一般组合起来使用:-ivh

命令格式:rpm -ivh PATH/TO/RPM_FILE

4.2 卸载RPM包

命令格式:rpm -e 包名

4.3 查询RPM相关信息

结合-q选项,RPM提供了许多种查询信息的方式。

命令格式:rpm -q 包名

命令格式:rpm --query 包名

查询所有已经安装包:rpm -qa

1、rpm包安装的,可以用rpm -qa看到,如果要查找某软件包是否安装,用 rpm -qa | grep "软件或者包的名字"。

2、以deb包安装的,可以用dpkg -l能看到。如果是查找指定软件包,用dpkg -l | grep "软件或者包的名字";

3、yum方法安装的,可以用yum list installed查找,如果是查找指定包,命令后加 | grep "软件名或者包名";

4、如果是以源码包自己编译安装的,例如.tar.gz或者tar.bz2形式的,这个只能看可执行文件是否存在了,

查询所有已安装的软件包: rpm -qa 或者 rpm -qa | more (分屏显示)

查询文件隶属的软件包: rpm -qf

查询软件包信息: rpm -qi , rpm -qip

查询软件包安装文件: rpm -ql

查询软件包帮助文档: rpm -qd

查询软件包配置文件: rpm -qc



作者:夜郎西
链接:https://www.zhihu.com/question/382649994/answer/1107285200
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

yum针对centos软件包操作常用命令

1、$yum list installed //列出所有已安装的软件包
1.使用YUM查找软件包 
命令:yum search 
2.列出所有可安装的软件包 
命令:yum list 
3.列出所有可更新的软件包 
命令:yum list updates 
4.列出所有已安装的软件包 
命令:yum list installed 
5.列出所有已安装但不在 Yum Repository 内的软件包 
命令:yum list extras 
6.列出所指定的软件包 
命令:yum list 
7.使用YUM获取软件包信息 
命令:yum info 
8.列出所有软件包的信息 
命令:yum info 
9.列出所有可更新的软件包信息 
命令:yum info updates 
10.列出所有已安装的软件包信息 
命令:yum info installed 
11.列出所有已安装但不在 Yum Repository 内的软件包信息 
命令:yum info extras 
12.列出软件包提供哪些文件 
命令:yum provides

检查升级 yum check-update

卸载 yum remove

帮助 yum -help/man yum

 

显示所有仓库

命令:yum repo list all 

显示禁用的仓库

命令:yum repo list enabled 

显示启用的仓库

命令:yum repo list disabled 

显示软件包的摘要信息

命令格式:yum info 包名

类似于rpm -qi 包名 ,yum info没有rpm -qi显示的详细全。但可以显示出安装状态(Installed,Available)

参考来源:https://www.cnblogs.com/shijiaqi1066/p/3843955.html

原文地址:https://www.cnblogs.com/niewd/p/15631734.html