CentOS软件包管理rpm、yum

news2024/11/24 20:39:10

一、软件包概述

        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: NOKEY
    package 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.coloradmin.cn/o/849891.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

尚硅谷大数据项目《在线教育之采集系统》笔记003

视频地址:尚硅谷大数据项目《在线教育之采集系统》_哔哩哔哩_bilibili 目录 P036 P037 P038 P039 P041 P042 P043 P044 P045 P046 P036 先启动zookeeper,在启动kafka,启动hadoop中的hdfs node003启动flume,node001启动f…

用户稳定增长,拆解美团立足于“吃”的刚需价值

近期,QuestMobile发布了《中国移动互联网2023年上半年大报告》。报告显示,上半年,我国移动互联网月人均单日使用时长同比增长7.7%至7.2小时,移动互联网月活用户增长至12.13亿。 尽管在几年前,互联网流量触顶就已经成为…

re学习(30)攻防世界-hackme(代码复原2)

思路: 1.输出成功,v26不为0,说明关系式:v21((unsigned __int8)v24 ^ v20) →2.在汇编代码第37行,输入v16v20,所以求的值为v20 →3.根据关系式,求的值v20v21^v24 →4.v21在第汇编代码第36行也可以提取出来…

springboot人事管理系统设计与实现

126springboot人事管理系统java web员工信息管理系统 人事管理系统,属于ERP的一个部分。它单指汇集成功企业先进的人力资源管理理念、人力资源管理实践、人力资源信息化系统建设的经验,以信息技术实现对企业人力资源信息的高度集成化管理,为…

dijkstra算法相关(使用邻接表和优先队列两种方法)力扣题:743. 网络延迟时间(有向图);1334. 阈值距离内邻居最少的城市(无向图)

具体dijkstra算法就不展开说了,因为太多帖子来解释了,并且这也只是我的个人总结/记录,我会把自己的思考过程写在代码的注释中。 743. 网络延迟时间(有向图) 有 n 个网络节点,标记为 1 到 n。 给你一个列…

ArduPilot开源飞控之MAVProxy简介

ArduPilot开源飞控之MAVProxy简介 1. 源由2. 特点3. 安装 & 更新3.1 安装Step 1: 烧录raspberryPi镜像Step 2:apt软件包更新Step 3:Raspian系统更新Step 4:安装依赖环境Step 5:安装mavproxyStep 6:配置bash环境 3.…

HttpRunner自动化测试之脚手架工具使用(一键搭建)

脚手架工具使用: 每一个成熟的系统工具,都会有对应的脚手架工具,它可以快速构建项目的必要目录,不必自己一个一个的配置与搭建,只需要执行一些命令即可。 httprunner也提供了脚手架工具,使用步骤如下&…

Python接口自动化-requests模块之post请求

一、源码解析 def post(url, dataNone, jsonNone, **kwargs):r"""Sends a POST request.:param url: URL for the new :class:Request object.:param data: (optional) Dictionary, list of tuples, bytes, or file-likeobject to send in the body of the :cla…

微服务——ES实现自动补全

效果展示 在搜索框根据拼音首字母进行提示 拼音分词器 和IK中文分词器一样的用法,按照下面的顺序执行。 # 进入容器内部 docker exec -it elasticsearch /bin/bash# 在线下载并安装 ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch…

迭代器模式-遍历聚合对象中的元素

在开发中,我们经常使用到Iterator这个接口,我们很疑惑于这个接口的作用,认为集合已经实现了数据访问的方法,增加Iterator的意义在哪。本文我们将学习迭代器模式,用以探讨Iterator的作用。 1.1 迭代器模式概述 提供一…

地图 SDK gitlab 测试代码环境配置

文章目录 1、Gradle 插件版本和 Gradle 版本2、NDK 路径3、JDK 版本4、修改变量5、重新 BuildQ&A: test 用例启动之后问题问题描述 拉下项目的 dev 分支,然后依赖的 mapsdk-base 也完成下载 ,之后就是Android Studio 配置环境 1、Gradle …

【Git】保姆级详解:Git配置SSH Key(密钥和公钥)到github

博主简介:22级计算机科学与技术本科生一枚🌸博主主页:是瑶瑶子啦每日一言🌼: “当人们做不到一些事情的时候,他们会对你说你也同样不能。”——《当幸福来敲门》 克里斯加德纳 Git配置SSH Key 一、什么是Git?二、什么…

如何给Google Chrome增加proxy

1. 先打开https://github.com/KaranGauswami/socks-to-http-proxy/releases 我的电脑是Liunx系统所以下载第一个 2. 下载完之后把这个文件变成可执行文件,可以是用这个命令 chmod x 文件名 3. 然后执行这个命令: ./sthp-linux -p 8080 -s 127.0.0.1:…

Jwt(Json web token)——使用token的权限验证方法 用户+角色+权限表设计 SpringBoot项目应用

目录 引出使用token的权限验证方法流程 用户、角色、权限表设计权限表角色表角色-权限关联表用户表查询用户的权限(四表联查)数据库的视图 项目中的应用自定义注解拦截器controller层DTO返回给前端枚举类型的json化日期json问题 实体类-DAO 总结 引出 1.…

学习pytorch

学习pytorch 1. 环境安装配置镜像源conda命令记录遇到的问题1. torch.cuda.is_available() False 1. 环境安装 B站小土堆视频 配置镜像源 conda config --show channels conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/mainhttp://www.m…

leetcode 图算法小结

文章目录 1 DFS和BFS797. 所有可能的路径200. 岛屿数量 1 DFS和BFS 深度优先遍历一般采用回溯算法进行解决。回溯算法,其实就是dfs的过程。 void dfs(参数) {处理节点dfs(图,选择的节点); // 递归回溯,撤销处理结果 }广度优先搜索理解为层次…

Java-数据类型

数据类型 数据类型基本数据类型整形浮点字符型布尔类字节 引用数据类型类型转换显式转换隐式转换注意事项 整型提升 作为学习Java的入门知识,在刚开始面试的几场,表现不太好的时候,就有几个面试官会问这个问题,估计此时此刻我在他们的心目中也就是这个问题的层次了吧…当然,当时…

Linux网络服务之自动装机(PXE+KICKSTART)详解

自动装机 一、启动操作系统的方式1.1 系统装机的三种引导方式1.2 系统安装过程1.3 三大文件1.4 如何实现自动装机? 二、PXE2.1 PXE的简介和优点2.2 实现PXE的前提条件2.3 PXE实现过程2.5 要安装的服务2.6 实现PXE2.6.1 前置准备2.6.2 安装并配置DHCP2.6.3 安装并配置…

Nginx负载均衡搭建

目录 1、准备一台装有nginx服务的主机 2、所需模块说明: 3、两台Web服务器主机 4、 修改nginx的配置文件 5、查看结果: 1、准备一台装有nginx服务的主机 LVS—DR集群的搭建_.98℃的博客-CSDN博客 2、所需模块说明: Nginx http 功能模…

【音视频】vms布署说明

目录 外场布署场景(99%) 研发实验场景(1%) 高级玩法 证书安装方法 外场布署场景(99%) 下面两种场景,为本产品主要应用场景,2023-08-08日后(统一所有证书)…