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: 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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

APP外包开发的开发语言对比

在开发iOS APP时有两种语言可以选择,Swift(Swift Programming Language)和 Objective-C(Objective-C Programming Language),它们是两种不同的编程语言,都被用于iOS和macOS等苹果平台的软件开发…

pytorch学习——卷积神经网络——以LeNet为例

目录 一.什么是卷积? 二.卷积神经网络的组成 三.卷积网络基本元素介绍 3.1卷积 3.2填充和步幅 3.2.1填充(Padding) 填充是指在输入数据周围添加额外的边界值(通常是零),以扩展输入的尺寸。填充可以在卷…

Dockerfile构建Tomcat镜像

准备apache包和jdk并解压 [rootlocalhost tomcat]# ll 总用量 196728 -rw-r--r--. 1 root root 9690027 7月 17 2020 apache-tomcat-8.5.40.tar.gz -rw-r--r--. 1 root root 674 8月 2 20:19 Dockerfile -rw-r--r--. 1 root root 191753373 7月 17 2020 jdk-8u191-…

【Python基础教程】super()函数的正确使用方法

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 1.super(本身类名,self).方法名(参数)这样就可以调用父类的方法和参数了,super()内也可不加参数 2.规律是super是按调用的次序执行,super后面的语句是逆向执行的。 有2段示例代码,不同的在于value有没…

基于短信宝API零代码实现短信自动化业务

场景描述: 基于短信宝开放的API能力,实现在特定事件(如天气预警)或定时自动发送短信(本文以定时群发短信为例)。通过Aboter平台如何实现呢? 使用方法: 首先创建一个IPaaS流程&…

解决Vue3 使用Element-Plus导航刷新active高亮消失

解决Vue3 使用Element-Plus导航刷新后active高亮消失的问题 启用路由模式会在激活导航时以 index 作为 path 进行路由跳转 使用 default-active 来设置加载时的激活项。 接下来打印一下选中项index和index路径, 刷新也是没有任何问题的,active不会消失…

python+django+mysql项目实践二(前端及数据库)

python项目实践 环境说明: Pycharm 开发环境 Django 前端 MySQL 数据库 Navicat 数据库管理 前端模板 添加模板 在templates下创建 views文件中添加 创建数据库 连接数据库 在setting文件中进行配置 创建表

SDXL-Stable Diffusion改进版

文章目录 1. 摘要2. 算法:2.1 结构:2.2 微小的条件机制2.3 多宽高比训练2.4 改进自编码器2.5 所有组合放到一起2.6 主流方案比较 3. 未来工作4. 限制 论文: 《SDXL: Improving Latent Diffusion Models for High-Resolution Image Synthesis…

APP外包开发的android开发模式

开发 Android 应用有多种方法,每种方法都有其优势和适用场景。综合考虑各自的特点,你可以根据项目的需求和团队的技能选择最合适的开发方法。今天和大家分享几种常见的开发方法以及它们之间的对比,希望对大家有所帮助。北京木奇移动技术有限公…

NeRF-SLAM: Real-Time Dense Monocular SLAM with Neural Radiance Fields 论文阅读

论文信息 题目:NeRF-SLAM: Real-Time Dense Monocular SLAM with Neural Radiance Fields 作者:Antoni Rosinol, John J. Leonard, Luca Carlone 代码:https://github.com/ToniRV/NeRF-SLAM 来源:arxiv 时间&#xff…

安装element-plus报错:Conflicting peer dependency: eslint-plugin-vue@7.20.0

VSCode安装element-plus报错: D:\My Programs\app_demo>npm i element-plus npm ERR! code ERESOLVE npm ERR! ERESOLVE could not resolve npm ERR! npm ERR! While resolving: vue/eslint-config-standard6.1.0 npm ERR! Found: eslint-plugin-vue8.7.1 npm E…

机器学习实战1-kNN最近邻算法

文章目录 机器学习基础机器学习的关键术语 k-近邻算法(KNN)准备:使用python导入数据实施kNN分类算法示例:使用kNN改进约会网站的配对效果准备数据:从文本文件中解析数据分析数据准备数据:归一化数值测试算法…

Go语言并发编程(千锋教育)

Go语言并发编程(千锋教育) 视频地址:https://www.bilibili.com/video/BV1t541147Bc?p14 作者B站:https://space.bilibili.com/353694001 源代码:https://github.com/rubyhan1314/go_goroutine 1、基本概念 1.1、…

鉴源论坛·观擎丨浅谈操作系统的适航符合性(上)

作者 | 蔡喁 上海控安可信软件创新研究院副院长 版块 | 鉴源论坛 观擎 社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区” 01 源头和现状​​​​​​​ 在越来越多的国产机载系统研制中,操作系统软件的选择对后续开展研制以及适航举证活动带来…

码云 Gitee + Jenkins 配置教程

安装jdk 安装maven 安装Jenkins https://blog.csdn.net/minihuabei/article/details/132151292?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22132151292%22%2C%22source%22%3A%22minihuabei%22%7D 插件安装 前往 Manage Jen…

基于Windows手动编译openssl和直接安装openssl

零、环境 win10-64位 VS2019 一、手动编译 前言:对于一般的开发人员而言,在 openssl 上下载已经编译好的 openssl 库,然后直接拿去用即可,,不用手动编译,{见下文直接安装}。。。对于一些开发人员&#…

Jmeter录制HTTPS脚本

Jmeter录制HTTPS脚本 文章目录 添加“HTTP代理服务器”设置浏览器代理证书导入存在问题 添加“HTTP代理服务器” 设置浏览器代理 保持端口一致 证书导入 点击一下启动让jmeter自动生成证书,放在bin目录下: 打开jmeter的SSL管理器选择刚刚生成的证书&…

# 关于Linux下的parted分区工具显示起始点为1049kB的问题解释

关于Linux下的parted分区工具显示起始点为1049kB的问题解释 文章目录 关于Linux下的parted分区工具显示起始点为1049kB的问题解释1 问题展示:2 原因3 修改为KiB方式显示4 最后 1 问题展示: kevinTM1701-b38cbc23:~$ sudo parted /dev/nvme1n1 GNU Part…

SAP 开发编辑界面-关闭助手

打开关闭助手时的开发界面如下: 关闭关闭助手后的界面如下: 菜单栏: 编辑--》修改操作--》关闭助手

会这个Python的测试员,工作都不会太差!

Python语言得天独厚的优势使之在业界的火热程度有增无减,尤其是在经历了互联网,物联网,云计算,大数据,人工智能等浪潮的推动下,其关注度,普适度一路走高。 对于测试人员来说,很多人…