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