RPM
RPM(Red-hat Package Manager),是一个由红帽最早开发出来的包管理器,目前已经是大多数Linux发行的默认包管理器。RPM管理的包都是以.rpm结尾,其中存储了该软件的安装压缩包,以及一些额外信息,例如所依赖的其余的包还有安装,升级,卸载时候执行的一些脚本。RPM的一大缺点,就是它可以检测这些被依赖的包有没有被安装,但是假如有包没有安装它不会自动去进行安装。

Yum
Yum(Yellowdog Updater Modified),也是包管理工具,只适用于红帽和Centos发行版本。比起RPM来,Yum的优势在于可以自动检测依赖,并且对于不存在的依赖会自动去进行安装。所以通常是用Yum来进行包的操作,例如查看,安装,更新,删除等等。但是又有了另一个问题,RPM包里面只是写了依赖包的名字,Yum怎么知道去哪下载这些包呢?如果能有一个仓库,里面放着成千上万的包给Yum去选择,这个问题也就迎刃而解了。很多的公司和团体都维护着这样的仓库,这些仓库就叫做repository,简称repo。

Repo
Repo就像是一个大仓库,每个repo里面包含着很多的.rpm文件,但是一个repo不可能把这个世界所有的.rpm包都包括进去,往往是某个特定目的的包集合放在一个repo里面,例如centos需要的基础包做一个repo,额外特性的包再放一个repo,mysql维护自己的repo,docker维护自己的repo,往往一台机器上要配置好几个repo的地址供yum去查询和选择,而且安装新软件的时候可能还需要新安装他们自己维护的repo来使用。

# 使用阿里的yum源 和 epel源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo  加载阿里centos7 base源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo  加载阿里centos7 epel  源
 # 或者curl -o命令
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
网易镜像 centos5,6,7
http://mirrors.163.com/.help/CentOS5-Base-163.repo
http://mirrors.163.com/.help/CentOS6-Base-163.repo
http://mirrors.163.com/.help/CentOS7-Base-163.repo  #这个是网易base源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo  下载网易centos7 base源
rpm安装
rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-6.noarch.rpm
rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm  #rpm直接安装阿里源centos7
https://mirrors.tuna.tsinghua.edu.cn/epel/epel-release-latest-7.noarch.rpm  #rpm直接安装清华源centos7
yum clean
yum makecache fast

国内有三大基本yum仓库
第一个是阿里源 https://developer.aliyun.com/mirror/第二是网易源http://mirrors.163.com/第三个是清华源 https://mirrors.tuna.tsinghua.edu.cn/

YUM客户端配置

1.yum配置文件路径
/etc/yum.conf  #为所有yum仓库提供公共配置
/etc/yum.repos.d/*.repo  #为仓库的指向提供配置

2./etc/yum.conf主配置定义
[main]            #通用主配置段
cachedir=/var/cache/yum/$basearch/$releasever          # 缓存文件路径
keepcache=0                     # 缓存到本地的文件是否保存
debuglevel=2                   # 调试级别
logfile=/var/log/yum.log                 # 安装的日志文件
exactarch=1                                              # 精确严格的平台release匹配
obsoletes=1
gpgcheck=1                      #检测来源合法性和完整性
plugins=1                         #支持插件机制
installonly_limit=5                    #同时安装多少程序包
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bu        # 追踪bug路径
distroverpkg=centos-release               # 当前发行版版本号从哪儿获取

3.仓库(*.repo)配置文件定义:
[repositoryID]        #仓库ID,唯一标识别,不能重复
name=Some name for this repository       #  完整的仓库名称
baseurl=url://path/to/repository/          # yum仓库指明的访问路径
enabled={1|0}           #是否启用此yum仓库,默认启用
gpgcheck={1|0}              #是否检查完整性和来源合法性
gpgkey=URL                     #秘钥文件位置,可能是对方仓库提供
enablegroups={1|0}              #是否基于组来批量管理程序包
failovermethod={roundrobin|priority}    #故障转移方法:轮询、根据优先级选择; 默认roundrobin随机
cost=#                    #设置开销,默认为1000

说明:
1)*.repo可以将多个[repositoryID]的配置信息放在一个文件内,也可以切成多个方便管理
2)baseurl可以使用:ftp:// 、http:// 、nfs:// 、file:///  指明URL路径
3)baseurl等号两边不能有空格,其后可以填写多个镜像访问路径,每行一个,不能顶行写。多个访问路径间联系是镜像相同,目的是为了做备用访问。
4)更多选项使用man  5  yum.conf查看,基本配置只需前三行就可以        
5)发行版光盘镜像安装可能会自动配置网络镜像URL地址

加载yum命令

yum clean all
yum makecache

常见yum命令
yum repolist  #显示本机可使用的所有repo


yum list  #显示本机所有repo可安装的软件,这些列表里面的包的来源就是/etc/yum.repo.d。 base  docker-ce-stable  epel/x86_64/metalink   epel  extras   rpmforge  updates 
yum list installed  #显示本机已安装的软件,显示installed ,这里是包名,版本和仓库名
yum list rpm  #显示安装包信息rpm


yum search  #查询某关键字相关的包
yum install  #安装包
yum remove  #删除包
yum info 安装包名  #显示包的详细信息  如:yum info rpm  yum info httpd


yum check-update  #检查更新
yum update  #更新包


yum -y update   #升级所有软件包的同时也升级软件和系统内核;
yum -y upgrade   #只是升级所有软件包,但是不升级软件和系统内核。

rmp常用命令

rpm --initdb

rpm --rebuilddb 
注:这个要花好长时间

%注:有时rpm 系统出了问题,不能安装和查询,大多是这里出了问题。

RPM软件包管理的查询功能:
rpm -q [select-options] [query-options]

对系统中已安装软件的查询

1)查询系统已安装的软件 语法:
rpm -q 软件名

例:rpm -q gaim
% -q就是 --query  此选项表示询问系统是不是安装了gaim软件包; 如果已安装会有信息输出;如果没有安装,会输出gaim 没有安装的信息;
查看系统中所有已经安装的包,要加 -a 参数
rpm -qa

2)安装和升级一个rpm 包

语法:

rpm -ivh file.rpm  这个是用来安装一个新的rpm 包

rpm -Uvh file.rpm  这是用来升级一个rpm 包,如果有依赖关系的,需解决依赖关系。如果找不到依赖关系的包,可以用下面的命令强制安装:


rpm -ivh --nodeps --force file.rpm

rpm -Uvh --nodeps --force file.rpm


例:
rpm -ivh --test mplayer-1.0pre7try2-2.i386.rpm
% --test  表示测试,并不真正安装。


rpm -ivh --relocate /=/usr/local/mplayer mplayer-1.0pre7try2-2.i386.rpm   为软件包指定安装目录:要加 --relocate 参数  

3)删除一个rpm 包

首先查出需要删除的rpm包,然后用下面的命令来卸载:


rpm -e 软件包名

例:rpm -e mplayer 
卸载mplayer 如果有其它的rpm依赖于该rpm包,系统会出现警告。如果一定要卸载,可以用选项 --nodeps 忽略依赖关系。但最好不要这么做。

 

yum repo和rpm,添加阿里repos的更多相关文章

  1. CentOS 7的yum更换为国内的阿里云yum源

    Yellow dog Updater(Yum)是CentOS所有版本的默认包管理器,yum主要功能是更方便的添加/删除/更新RPM包,自动解决包的依赖性问题,便于管理大量系统的更新问题,其理念是使用一 ...

  2. CentOS7系统更换YUM Repo源

    CentOS7系统更换YUM Repo源 备份原镜像 sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.re ...

  3. CentOS7使用yum安装ceph rpm包

    1. 安装centos7对扩展repo的支持yum install yum-plugin-priorities保证下面的选项是开启的[main]enabled = 1 2. 安装 release.ke ...

  4. CentOS yum repo

    CentOS yum repo   阿里云的 一个是Centos-6的 一个是Centos-7  # CentOS 5 wget -O /etc/yum.repos.d/CentOS-Base.rep ...

  5. 修改CentOS的yum源,改为阿里云的镜像

    修改CentOS的yum源,改为阿里云的镜像 1.备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.b ...

  6. suse 11.4添加阿里源

    感谢SilenMark 作者,让我找到了一个可用的suse 国内源. 大家直接使用root 用户执行以下命令,添加阿里源 zypper addrepo -f http://mirrors.aliyun ...

  7. centos7运行yum报如下提示:Run "yum repolist all" to see the repos you have

    centos7运行yum报如下提示: There are no enabled repos. Run "yum repolist all" to see the repos you ...

  8. Centos7最小化安装报错There are no enabled repos. Run "yum repolist all" to see the repos you have.解决办法

    原因是缺少CentOS-Base.repo文件,因为我这台机器wget也不能用,所以我是下载到本地sftp上去的,传输的时候一定要在root用户下,否则会无法启动传输 这是报错的完整信息:Loadin ...

  9. 如何使用yum来下载RPM包而不进行安装

    如何使用yum来下载RPM包而不进行安装 2015-03-23 13:15 theo-l译 linux.cn 字号:T | T yum是基于Red Hat的系统(如CentOS.Fedora.RHEl ...

  10. 【转】用yum只下载rpm包而不安装

    转自:http://liucheng.name/1950/ CentOS用yum安装软件是非常方便的,有时,我们只需要下载其中的rpm包,而不直接安装时咋办呢? 一般情况下,yum是不提供只下载的功能 ...

随机推荐

  1. 简述GoLang优势与生态

    开门见山,一睹golang的风采 性能优势 部署运维成本低 编码格式统一:测试简单 1. 性能优势 Go 语言被称为是:"21世纪的C语言",虽然这个帽子戴的有点高,不妨这里给大家 ...

  2. Mybatis【3】-- Mybatis使用工具类读取配置文件以及从属性读取DB信息

    代码直接放在Github仓库[https://github.com/Damaer/Mybatis-Learning ],可直接运行,就不占篇幅了. 1.使用工具类获取sqlSession实例对象 在上 ...

  3. PythonDay6Advance

    PythonDay6Advance 模块.类与对象 模块 内置模块 time, random, os, json 第三方模块 requests, pandas, numpy,.... 自定义模块 xx ...

  4. 【集成-Jedis】SpringBoot集成Jedis

    将jedis的依赖放进Maven <dependency> <groupId>redis.clients</groupId> <artifactId>j ...

  5. 使用nginx 压缩

    现在的程序使用单页面应用,因此程序会在一开始就会加载页面JS.如果带宽不够,那么会影响页面下载速度. 我们可以使用NGINX 进行压缩,加快文件下载. gzip on; gzip_min_length ...

  6. uni-app 坑

    1.fixed定位 在H5中,tabbar,顶部导航栏,系统状态栏(手机信号,电量显示等)包含在内容区,H5在定位时,需要算上这些高度(如果页面中存在这个元素的话) 解决办法:使用条件编译,针对不同的 ...

  7. Ant Design Pro项目Popover位置微调

    前情 公司有经常需要做一些后台管理页面,我们选择了Ant Design Pro,它是基于 Ant Design 和 umi 的封装的一整套企业级中后台前端/设计解决方案. 产品效果图 最新接到的一个后 ...

  8. Esxi缩小硬盘大小的办法

    ​进虚拟机,把要缩减硬盘的那个系统,磁盘管理,收缩卷收缩了.然后关机. 本例:调整800G到350G. Esxi打开ssh,进去. cd /vmfs/volumes// datastorename,完 ...

  9. 拥抱云原生,数据湖加速器 GooseFS 助力 Fluid 数据缓存实现

    01 ​前言 数据湖加速器 GooseFS 是由腾讯云推出的高性能.高可用.弹性的分布式缓存方案.依靠对象存储(Cloud Object Storage,COS)作为数据湖存储底座的成本优势,为数据湖 ...

  10. PDFSharp - Graphics 绘制接口

    PDFSharp - Graphics Graphics - PDFsharp and MigraDoc Wiki 所有的 Graphics 类型都设计成模仿来自 System.Drawing 命名空 ...