CentOS软件包管理rpm、yum

一、软件包概述

        Linux常见软件包分为两种,分别是源代码包、二进制文件包。源代码包是没有经过编译的包,需要经过GCC、C++编译器编译才能运行,文件内容包含源代码文件,通常以.tar.gz、.zip、.rar结尾;二进制包无需编译,可以直接安装使用,文件内容包含.bin可执行文件,通常以.rpm结尾。

        源码包:name-Version.tar.gz

        version:major-minor-release

        二进制应用程序的组成部分:二进制文件、库文件、配置文件、帮助文件

        rpm包命名格式:

                name-Version-ARCH.rpm

                常见的ARCH:

                        x86:i386,i486,i586,i686

                        x86_64:x64,x86_64,amd64

                        powerpc:ppc

                        跟平台无关:noarch

        例如:

        389-ds-base-libs-1.3.4.0-19.el7.x86_64.rpm

        abattis-cantarell-fonts-0.0.16-3.el7.noarch.rpm

                0.0.16:表示版本号,通用格式,“主版本.次版本.修正号”

                -3:表示发布版本,该RPM包是第几次编译生成的;

                el* :软件包发行版本,el7表示该软件包适用于RHEL 7.x/CentOS 7.x

        CentOS管理软件包的方式:1、使用包管理器RPM;2、使用前端工具yum。

二、RPM软件包管理器

        RPM(RedHat Package Manager)类似Windows里面的“添加、删除程序”。RPM软件包以rpm为扩展名,RPM也是一种软件包管理器,可以让用户方便的进行软件的安装、更新、卸载、查询等,操作命令为rpm。

        rpm命令使用:安装、卸载、更新、查询:

        1、安装

                rpm {-i|--install} [install-options] PACKAGE_FILE ...

                        -v:verbose

                        -vv:更详细的信息

                        -h:以#号显示程序安装执行进度

                例:rpm -ivh PACKAGE_FILE...

                [install-options]

                        --test:测试安装,不实际安装

                        --nodeps:忽略依赖关系

                        --replacepkgs:重新安装

                        --nosignature:不检查来源合法性

                        --nodigest:不检查包完整性

                        --force:如果软件已安装,想重新安装,可以使用强制安装的方式

[root@Master Packages]# rpm -i lrzsz*
warning: lrzsz-0.12.20-36.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEYpackage lrzsz-0.12.20-36.el7.x86_64 is already installed
[root@Master Packages]# ll lrzsz-0.12.20-36.el7.x86_64.rpm 
-r--r--r-- 3 root root 79376 Jul  3  2014 lrzsz-0.12.20-36.el7.x86_64.rpm
[root@Master Packages]# rpm -ihv --force lrzsz-0.12.20-36.el7.x86_64.rpm 
warning: lrzsz-0.12.20-36.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...1:lrzsz-0.12.20-36.el7             ################################# [100%]

        2、更新

                rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...

                rpm {-F|--freshen} [install-options] PACKAGE_FILE ...

                        upgrade:如果存在旧包,则升级,否则进行“安装”操作;

                        freshen:如果存在旧包,则升级,否则不做任何操作

                        rpm -Uvh PACKAGE_FILE...

                                --oldpacage:降级;

                                --force:强制升级;

        注意:

                1、不要对内核做升级操作,Linux支持多内核版本并存,因此对新版内核直接安装;

                2、如果源程序包的配置文件安装后修改过,升级后,新版本提供的同名配置文件不会直接覆盖掉老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)后保留

        3、查询

        rpm {-q|--query} [select-options] [query-options]

                [select-options]

                        -a:显示所有安装包

                        -f:查看指定文件由那个程序包安装生成

                        -p:/PATH/PACKAGE_FILE,针对未安装的程序包进行查询;

                        --whatprovides CAPABILITY:查询指定的CAPABILITY有哪个包所提供:

                        --whatrequires CAPABILITY:查询指定CAPABILITY被哪个包所提供;

                [query-options]

                        --changelog:查询rpm包的changelog

                        -c:查询程序包的配置文件

                        -d:查询程序生成的文档

                        -i:显示包信息information

                        -l:查看程序包安装后所有文件

                        --scripts:程序包自带的脚本片段

                        -R:查看指定程序包所依赖的CAPABILITY:

                        --provides:列出指定程序包所提供的CAPABILITY;

                        --requires

                用法:

                -qi PACKAGE,-qf FILE,-qc PACKAGE,-ql PACKAGE, -qd PACKAGE

                -qpi PACKAGE_FILE

        4、卸载

                rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]

                        [--notriggers] [--test] PACKAGE_NAME ...

                rpm -e --nodeps 忽略依赖卸载

三、Yum软件包管理

        RPM包管理器可以让用户不必经过编译就使用软件,但也存在不方便。当遇到软件包依赖问题时,RPM包管理器会中断当前安装,提示用户依赖的软件包。这种方法使用起来非常不方便,特别是一些依赖非常复杂的软件包。为解决软件包依赖问题,Red Hat公司开发一个新工具Yum(Yellow dog Update,Modified)。也称rpm前端软件包管理工具,它需要基于RPM工作,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令。

        使用yum工具,前提需要有yum仓库(yum repository)即yum源,yum源中存储了众多rpm包,以及包的相关元数据文件(放在目录特定目录下:repodata)。当用户通过yum工具安装软件包时,yum在仓库中通过元数据搜索软件包的依赖关系,并从仓库中下载并安装软件包。

        yum仓库是文件服务器:

                ftp://

                http://

                nfs://

                file:/// --本地

        yum相关配置文件:

                主配置文件:/etc/yum.conf 为所有仓库提供公共配置,一般不用修改

                分配置文件:/etc/yum.repos.d/*.repo 为仓库指定具体路径

1、本地yum源配置

(1)将系统iso安装包配置到虚拟机光驱中。

(2)挂载光驱文件

        查看光驱文件名:lsblk

        创建挂载文件夹:mkdir /mnt/cdrom

        挂载光驱:mount /dev/sr0 /mnt/cdrom

(3)创建yum源文件

                cd /etc/yum.repos.d

                mkdir /bak_repo

                mv C* /bak_repo 备份原来的yum源

                vi centos7.yum

[centos7]                 #[repositoryID]
name=centos7              #name='xxx' 
baseurl=file:///mnt/CentOS7.0        #baseurl='仓库访问路径' --可指定多个url
gpgcheck=0               #gpgcheck=[1|0],是否检验合法性
enabled=1                #enable=[1|0],是否启用,默认启用

                yum clean all 清除缓存目录下的软件包及索引信息

                yum makecache 建立缓存及索引信息

                yum repolist 验证yum源目录

-------------------------------------配置本地yum源完成------------------------------------------------

2、yum命令使用

        yum的命令形式一般是如下:yum [options] [command] [package ...]

        其中的[options]是可选的,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。

                [command]为所要进行的操作,包括install、update、remove、list等

                [package ...]是操作的对象。

(1)安装程序包:

                yum install PACKAGE...

                yum reinstall package1 [package2] [...]

(2)升级程序包:

                yum upgrade [package1] [package2] [...]

                yum downgrade package1 [package2] [...] 降级

(3)检查可用升级

                yum check-update

(4)卸载程序包

                yum remove | erase package1 [package2] [...]

(5)显示程序包:

                yum list

                #yum list [all | glob_exp1] [glob_exp2] [...]

                yum list available|installed|updates [glob_exp1] [...]

(6)查看程序包的简要信息:

                yum info package1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/58557.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TDengine + Telegraf + Grafana 实现图形化服务器状态监控

TDengine Telegraf Grafana 实现图形化服务器状态监控 技术栈环境搭建安装tdenginue下载安装包解压文件运行安装文件启动td运行 taosAdapter 安装Telegraf添加yum源安装生成配置文件修改配置文件启动telegraf 安装Grafana直接yum安装安装td数据源配置启动Grafana配置数据源导…

std::string 的append方法 存放文本和非文本数据

今天在用std::string来拼接数据 有文本数据 也有 非文本数据 如果是文本数据那么append方法参数为 ( char *data, int len) 将data的前len个字节附加到 string中 如果是非文本数据 则参数为(int size, char data); 重复size个data 附加…

森海塞尔为 CUPRA 首款纯电轿跑 SUV – CUPRA Tavascan 注入音频魅力

森海塞尔为 CUPRA 首款纯电轿跑 SUV – CUPRA Tavascan 注入音频魅力 音频专家森海塞尔携手富有挑战精神的 CUPRA,雕琢时代新贵车型,打造畅快尽兴的驾驶体验 全球知名音频专家森海塞尔与以颠覆传统、充满激情、不甘现状而闻名的汽车品牌 CUPRA 展开合作…

Vscode-工具使用

Vscode ,这玩意儿是开源的,以前用收费的破解版,过段时间就高版本不匹配,这次搞个不要钱的玩玩,记录使用心得 下载 下载地址:官网 点击下载,但是这里有个问题下载比较慢,解决办法&a…

构建Docker容器监控系统(Cadvisor +InfluxDB+Grafana)

目录 案例概述 Cadvisor InfluxDBGrafana 1.1、 Cadvisor 1.2、InfluxDB 1.3、Grafana 1.4、监控组件架构 1.5、开始部署 安装docker-ce 阿里云镜像加速器 创建自定义网络 创建influxdb容器 案例概述 Docker作为目前十分出色的容器管理技术,得到大量企业…

RabbitMQ在CentOS下的安装

RabbitMQ的版本是3.8.2 1.环境配置:CentOs 7.6以上版本,我的版本是7.9,不要对yum换源,否则可能会安装失败。 echo "export LC_ALLen_US.UTF-8" >> /etc/profile source /etc/profile 以上命令,是…

使用 PowerShell 将 Excel 中的每个工作表单独另存为独立的文件

导语:在日常工作中,我们经常需要处理 Excel 文件。本文介绍了如何使用 PowerShell 脚本将一个 Excel 文件中的每个工作表单独另存为独立的 Excel 文件,以提高工作效率。 1. 准备工作 在开始之前,请确保已经安装了 Microsoft Exc…

AI:01-基于机器学习的深度学习的玫瑰花种类的识别

深度学习技术在图像识别领域有着广泛的应用,其中一种应用就是玫瑰花种类的识别。在本文中,我们将介绍如何使用机器学习和深度学习技术来实现玫瑰花种类的识别,并提供相应的代码实现。 一、数据集介绍 在进行机器学习和深度学习模型的训练之前,我们需要先准备好相应的数据集…

scipy求解约束无导数优化问题:SHGO算法

文章目录 SHGO算法参数说明测试 SHGO算法 SHGO,即simplicial homology global optimize,来自2018年的文章,是一种基于组合拓扑学的优化方法,是一个非常新的算法。 这种算法适用于CDFO(constrained deriviate free optimisation)…

day0808

1.单链表实现约瑟夫环 #include "joseph.h" LoopLink list_create(int m) {LoopLink L (LoopLink)malloc(sizeof(Node));if(NULLL){printf("内存创建失败\n");return 0;}LoopLink qL;for(int i1; i<m; i){LoopLink p (LoopLink)malloc(sizeof(Node));…

DevOps最佳实践和工具在本地环境中的概述

引言 最近&#xff0c;我进行了一次网上搜索&#xff0c;以寻找DevOps的概述&#xff0c;尽管有大量的DevOps工具和实践&#xff0c;但我无法找到一个综合的概述。因此&#xff0c;我开始了对DevOps生态系统和最佳实践的梳理&#xff0c;以创建一个整体视图,方便后续研究实践 C…

基于 eclipse-temurin 镜像部署spring boot 应用

基于 eclipse-temurin 镜像部署spring boot 应用 使用场景示例项目 使用场景 在CI流程中&#xff0c;一般都会集成 打包&#xff0c;构建镜像&#xff0c;分发&#xff0c;启动容器之类的流程&#xff1b; 这里提供一个示例&#xff0c;进攻参考 示例项目 项目结构如下 run…