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. Java开发

    总结java开发中知识点和问题点 基础: 常用加解密算法: [md5] import java.security.MessageDigest; public static final String e ...

  2. docker启动所有容器命令

    启动所有容器 docker start $(docker ps -a | awk '{ print $1}' | tail -n +2) 关闭所有容器 docker stop $(docker ps ...

  3. docker直接运行vue3源代码npm run dev

    ​有套代码,需要在服务器直接run dev,docker build玩起来. 步骤: 将自己的代码上传到服务器,本例:/home/flow/ruoyi-ui cd到项目根目录 ruoyi-ui,新建D ...

  4. XLST 的坑

    微软真的挖了很多坑,可能就像任正非说的,在90年代进入了无人区,差不多十年多时间有精力没有地方撒,无法判断前进方向,推出了很多错误的路线.现在遇到的 XLST 就是一个大坑. XLM 在 00 年后开 ...

  5. iOS app 自动化测试 - 环境搭建

    1. 基本前提 安装好了 mac 上自动化测试的基本环境 如果没有,可以参考这一个: 2. iOS appium python自动化测试环境搭建 2.1 真机环境 2.1.1 前提:安装了 appiu ...

  6. undefined method `license' when mac brew install

    https://github.com/Homebrew/discussions/discussions/297 brew update-reset brew config brew doctor

  7. 在 .NET Core 中使用 ActionBlock 实现高效率的多步骤数据处理

    目录 一.引言 二.ActionBlock介绍 什么是 ActionBlock? ActionBlock 的特点 ActionBlock 的使用场景 ActionBlock 的基本用法 三.假设场景 ...

  8. Qt/C++音视频开发49-推流到各种流媒体服务程序

    一.前言 最近将推流程序完善了很多功能,尤其是增加了对多种流媒体服务程序的支持,目前支持mediamtx.LiveQing.EasyDarwin.nginx-rtmp.ZLMediaKit.srs.A ...

  9. Qt可视化大屏电子看板系统全平台效果图

  10. Windows下用CMake构建和编译第三方依赖库并向C:\Program Files\或C:\Program Files (x86)\目录下安装编译好的静态库(.lib)和动态链接库(.dll)时的步骤和注意事项

    从CMake构建和编译第三方依赖库的步骤: 1.下载第三方依赖库的源码,并解压到指定的目录中. 2.在第三方依赖库的的源码所在的目录下(一般是src/目录下)创建一个文件夹build. 3.打开CMa ...