rpm、yum工具介绍

标签: yum  rpm

安装软件包的三种方法:

  • rpm工具
  • yum工具
  • 源码包

rpm工具使用

  • 设置光驱并挂载
  • rpm包格式,包名、版本号、发布版本号、平台
  • rpm -ivh rpm包文件 //安装
  • rpm -Uvh rpm包文件 //升级
  • rpm -e 包名 //卸载
  • rpm -qa //查询安装的包
  • rpm -q 包名 //查询指定包是否安装
  • rpm -qi 包名 //查询指定包信息
  • rpm -ql 包名 //列出包安装的文件
  • rpm -qf 文件绝对路径 //查看一个文件是由哪个包安装的

  1. 设置光驱并挂载 1)点击--虚拟机—设置—CD/DVD(ide)--右边设置iso映像文件路径。
    输入图片说明

    2)挂载光驱

[root@localhost ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 写保护,将以只读方式挂载

[root@localhost ~]# ls /mnt
CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
EULA             isolinux  repodata  TRANS.TBL

3/mnt/Packages目录里面是rpm包    
[[email protected]localhost ~]# ls /mnt/Packages/ |head -5
389-ds-base-1.3.5.10-11.el7.x86_64.rpm
389-ds-base-libs-1.3.5.10-11.el7.x86_64.rpm
abattis-cantarell-fonts-0.0.16-3.el7.noarch.rpm
abrt-2.1.11-45.el7.centos.x86_64.rpm
abrt-addon-ccpp-2.1.11-45.el7.centos.x86_64.rpm

小知识: 每个rpm包的名称都是由-和.分成若干部分,比如abrt-2.1.11-45.el7.centos.x86_64.rpm Abrt:包名
2.1.11-45:版本号;2为主版本号,1为次版本号,11为修正版本
45-el7.centos:发布版本号
x86_64.:运行平台,64位 cpu目前分32位和64位,i386、i586、i686是32位,X86_64是64位。
64位系统可以安装32位软件,但是32位系统不能安装64为软件。


安装rpm包

  • rpm -ivh rpm包文件 //安装
  • -i:表示安装
  • -v:表示可视化
  • -h:表示显示安装进度
  • --force:表示强制安装,即使覆盖属于其他包的文件也要安装
  • --nodeps:表示当要安装的rpm包依赖于其他包时,即使其他包没有安装,也要安装这个包
[root@localhost ~]# cd /mnt/Packages/
[root@localhost Packages]# rpm -ivh xz-5.2.2-1.el7.x86_64.rpm
准备中...                          ################################# [100%]
	软件包 xz-5.2.2-1.el7.x86_64 已经安装

升级rpm包

  • 命令:rpm -Uvh rpm 包文件
  • -U:表示升级

卸载rpm包

  • 命令:rpm –e 包名
[[email protected]localhost Packages]# rpm -e xz
错误:依赖检测失败:
	xz 被 (已安裝) dracut-033-463.el7.x86_64 需要
	/usr/bin/xz 被 (已安裝) kmod-20-9.el7.x86_64 需要

查询一个包是否已经安装

  • 命令:rpm –qa 包名
[[email protected] Packages]# rpm -qa tree
tree-1.6.0-10.el7.x86_64

查询当前系统所有已经安装的包

  • 命令:rpm –qa
[[email protected] Packages]# rpm -qa |head
trousers-0.3.13-1.el7.x86_64
filesystem-3.2-21.el7.x86_64
net-tools-2.0-0.17.20131004git.el7.x86_64
bind-license-9.9.4-37.el7.noarch
fxload-2002_04_11-16.el7.x86_64
nss-softokn-freebl-3.16.2.3-14.4.el7.x86_64
libthai-0.1.14-9.el7.x86_64
ncurses-libs-5.9-13.20130511.el7.x86_64
libX11-common-1.6.3-3.el7.noarch
libselinux-2.5-6.el7.x86_64

查询指定包的信息

  • 命令:rpm –qi 包名
[[email protected] Packages]# rpm -qi tree
Name        : tree
Version     : 1.6.0
Release     : 10.el7
Architecture: x86_64
Install Date: 20171020日 星期五 150008秒
Group       : Applications/File
Size        : 89505
License     : GPLv2+
Signature   : RSA/SHA256, 20140704日 星期五 133646秒, Key ID 24c6a8a7f4a80eb5
Source RPM  : tree-1.6.0-10.el7.src.rpm
Build Date  : 20140610日 星期二 032853秒
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://mama.indstate.edu/users/ice/tree/
Summary     : File system tree viewer
Description :
The tree utility recursively displays the contents of directories in a
tree-like format.  Tree is basically a UNIX port of the DOS tree
utility.

列出一个rpm包的安装文件

  • 命令:rpm –ql 包名
[root@localhost Packages]# rpm -ql tree
/usr/bin/tree
/usr/share/doc/tree-1.6.0
/usr/share/doc/tree-1.6.0/LICENSE
/usr/share/doc/tree-1.6.0/README
/usr/share/man/man1/tree.1.gz

根据一个文件的绝对路径,查看这个文件是由哪个包安装的

  • 命令:rpm –qf 绝对路径
[root@localhost Packages]# rpm -qf /usr/bin/cd
bash-4.2.46-20.el7_2.x86_64

[[email protected] Packages]# rpm -qf `which cd`
bash-4.2.46-20.el7_2.x86_64
注意:``里面which cd 显示只有一行,如果是which ls 显示2行,这里就不能使用这条命令。

Yum工具

Yum比rpm工具更方便,yum工具最大的优势在于可以联网去下载所需要的的rpm包,然后自动安装,安装所有相关的rpm包,解决依赖关系。

  • yum list //列出可用rpm包
  • ls /etc/yum.repos.d/
  • yum search vim //搜索包
  • yum install [-y]
  • yum grouplist
  • yum groupinstall [-y]
  • yum remove [-y]
  • yum update [-y]
  • yum provides “/*/vim”

列出所有可用的rpm包

  • 命令:yum list
[root@localhost Packages]# yum list |head -20
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.btte.net
 * extras: mirrors.btte.net
 * updates: mirrors.btte.net
已安装的软件包
GeoIP.x86_64                                1.5.0-11.el7               @anaconda
NetworkManager.x86_64                       1:1.4.0-12.el7             @anaconda
NetworkManager-libnm.x86_64                 1:1.4.0-12.el7             @anaconda
NetworkManager-team.x86_64                  1:1.4.0-12.el7             @anaconda
NetworkManager-tui.x86_64                   1:1.4.0-12.el7             @anaconda
NetworkManager-wifi.x86_64                  1:1.4.0-12.el7             @anaconda
acl.x86_64                                  2.2.51-12.el7              @anaconda
aic94xx-firmware.noarch                     30-6.el7                   @anaconda
alsa-firmware.noarch                        1.0.28-2.el7               @anaconda
alsa-lib.x86_64                             1.1.1-1.el7                @anaconda
alsa-tools-firmware.x86_64                  1.1.0-1.el7                @anaconda
atk.x86_64                                  2.14.0-1.el7               @anaconda
atkmm.x86_64                                2.22.7-3.el7               @anaconda
audit.x86_64                                2.6.5-3.el7                @anaconda

左边是包名,中间是版本信息,右边是仓库名,仓库这边显示@base、@anaconda表示已经安装。如果未安装这显示base或者anaconda,如果是updates表示已安装但是需要升级。

yum的配置文件:/etc/yum.repos.d/Centos-Base.repo 里面可以配置仓库名,yum源地址

[base] //仓库名 name=CentOS-$releasever – Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra //yum源地址。 #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

搜索rpm包

  • 命令:yum search 包名
[[email protected] Packages]# yum search vim
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.btte.net
 * extras: mirrors.btte.net
 * updates: mirrors.btte.net
=============================== N/S matched: vim ================================
protobuf-vim.x86_64 : Vim syntax highlighting for Google Protocol Buffers
                    : descriptions
vim-X11.x86_64 : The VIM version of the vi editor for the X Window System
vim-common.x86_64 : The common files needed by any version of the VIM editor
vim-enhanced.x86_64 : A version of the VIM editor which includes recent
                    : enhancements
vim-filesystem.x86_64 : VIM filesystem layout
vim-minimal.x86_64 : A minimal version of the VIM editor

  • 或者:yum list |grep vim
[[email protected] Packages]# yum list |grep vim
vim-common.x86_64                           2:7.4.160-2.el7            @base
vim-enhanced.x86_64                         2:7.4.160-2.el7            @base
vim-filesystem.x86_64                       2:7.4.160-2.el7            @base
vim-minimal.x86_64                          2:7.4.160-1.el7            @anaconda
protobuf-vim.x86_64                         2.5.0-8.el7                base
vim-X11.x86_64                              2:7.4.160-2.el7            base
vim-minimal.x86_64                          2:7.4.160-2.el7            base

安装rpm包

  • 命令:yum install –y 包名
[[email protected] Packages]# yum install -y tree
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.btte.net
 * extras: mirrors.btte.net
 * updates: mirrors.btte.net
正在解决依赖关系
--> 正在检查事务
---> 软件包 tree.x86_64.0.1.6.0-10.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

=================================================================================
 Package         架构              版本                    源               大小
=================================================================================
正在安装:
 tree            x86_64            1.6.0-10.el7            base             46 k

事务概要
=================================================================================
安装  1 软件包

总下载量:46 k
安装大小:87 k
Downloading packages:
tree-1.6.0-10.el7.x86_64.rpm                              |  46 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : tree-1.6.0-10.el7.x86_64                                     1/1
  验证中      : tree-1.6.0-10.el7.x86_64                                     1/1

已安装:
  tree.x86_64 0:1.6.0-10.el7

完毕!

卸载rpm包

命令:yum remove –y  包名
[[email protected] Packages]# yum remove -y tree
已加载插件:fastestmirror
正在解决依赖关系
--> 正在检查事务
---> 软件包 tree.x86_64.0.1.6.0-10.el7 将被 删除
--> 解决依赖关系完成

依赖关系解决

=================================================================================
 Package        架构             版本                      源               大小
=================================================================================
正在删除:
 tree           x86_64           1.6.0-10.el7              @base            87 k

事务概要
=================================================================================
移除  1 软件包

安装大小:87 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在删除    : tree-1.6.0-10.el7.x86_64                                     1/1
  验证中      : tree-1.6.0-10.el7.x86_64                                     1/1

删除:
  tree.x86_64 0:1.6.0-10.el7

完毕!

列出套件

命令:yum grouplist 
[[email protected] Packages]# yum grouplist
已加载插件:fastestmirror
没有安装组信息文件
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
 * base: mirrors.btte.net
 * extras: mirrors.btte.net
 * updates: mirrors.btte.net
可用的环境分组:
   最小安装
   基础设施服务器
   计算节点
   文件及打印服务器
   基本网页服务器
   虚拟化主机
   带 GUI 的服务器
   GNOME 桌面
   KDE Plasma Workspaces
   开发及生成工作站
可用组:
   传统 UNIX 兼容性
   兼容性程序库
   图形管理工具
   安全性工具
   开发工具
   控制台互联网工具
   智能卡支持
   科学记数法支持
   系统管理
   系统管理工具
完成

  • LANG=en 切换英文

安装套件

  • 命令:yum groupinstall –y 套件名

升级rpm包

  • 命令:yum update –y 包名 注意:如果不加包名,会把系统所有的包包括系统本身升级。

搜索一个命令是那个包安装的

  • 命令:yum provides "/*/tree"
  • 或者:rpm -qf /usr/bin/tree

使用本地光盘制作yum源

  • 挂载镜像到/mnt目录
[root@localhost ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
  • cp -r /etc/yum.repos.d /etc/yum.repos.d.bak
  • rm -f /etc/yum.repos.d/*
  • vim /etc/yum.repos.d/dvd.repo //内容如下

[dvd] //仓库名字
name=install dvd
baseurl=file:///mnt //本地源地址
enable=1 //本地是否可用,1可用,0不可以
gpgcheck=0 //是否检测,1检测,0不检测

  • yum clean all //清除缓存
  • yum list
[root@localhost ~]# yum list |tail -10
yum-plugin-aliases.noarch               1.1.31-40.el7                  dvd
yum-plugin-changelog.noarch             1.1.31-40.el7                  dvd
yum-plugin-tmprepo.noarch               1.1.31-40.el7                  dvd
yum-plugin-verify.noarch                1.1.31-40.el7                  dvd
yum-plugin-versionlock.noarch           1.1.31-40.el7                  dvd
yum-utils.noarch                        1.1.31-40.el7                  dvd
zenity.x86_64                           3.8.0-5.el7                    dvd
zlib-devel.x86_64                       1.2.7-17.el7                   dvd
zsh.x86_64                              5.0.2-25.el7                   dvd
zziplib.x86_64                          0.13.62-5.el7                  dvd
版权声明:本文为Young_Linux原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Young_Linux/article/details/79463540

智能推荐

26_Python基础_继承

面向对象三大特性: 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 继承 实现代码的重用, 相同的代码不需要重复的编写 多态 不同的对象调用相同的方法,  产生不同的执行结果,  增加代码的灵活度 1.  单继承 1.1 概念 继承的概念:&...

循环

与任何程序设计语言一样Java利用条件语句与循环结构确定流程控制,一下总结一下Java中的循环语句: while do while for switch 对于golang来说: switch非常灵活。从第一个expr为true的case开始执行,如果case带有fallthrough,程序会继续执行下一条case,不会再判断下一条case的expr,如果之后的case都有fallthrough,d...

1638 统计只差一个字符的子串数目(动态规划)

1. 问题描述: 给你两个字符串 s 和 t ,请你找出 s 中的非空子串的数目,这些子串满足替换一个不同字符以后,是 t 串的子串。换言之,请你找到 s 和 t 串中恰好只有一个字符不同的子字符串对的数目。比方说, "computer" 和 "computation"...

websocket基本原理

HTTP中一个request只能有一个response。而且这个response也是被动的,不能主动发起 因此过去的服务端推送信息是通过客户端不停的轮询实现的 websocket是双向通信协议,提供了服务端主动推送信息的能力 需要客户端(浏览器)和服务端同时支持 如果经过代理的话,还需要代理支持,否则有些代理在长时间无通信时会自动切断连接 因此WS为了保证连接不被断掉,会发心跳 WebSocket...

mybatis+ehcache二级缓存

导入jar包 mapper.xml文件开启二级缓存 pojo类实现序列化接口 配置ehcache.xml 测试...

猜你喜欢

python+opencv实现图像拼接

任务 拍摄两张图片去除相同部分,拼接在一起 原图 结果 步骤 读取两张图片 使用sift检测关键点及描述因子 匹配关键点 处理并保存关键点 得到变换矩阵 图像变换并拼接 代码实现 扩展 这里对右边图像进行变换,右边变得模糊,可以修改代码对左边图像变换 这里只有两张图片拼接,可以封装实现多张图片拼接 可以修改代码实现上下图片的拼接...

python_sklearn机器学习算法系列之AdaBoost------人脸识别(PCA,决策树)

          注:在读本文之前建议读一下之前的一片文章python_sklearn机器学习算法系列之PCA(主成分分析)------人脸识别(k-NearestNeighbor,KNN)         本文主要目的是通过一个简单的小...

memmove函数与memcpy函数的模拟实现

memmove函数和memcpy函数都是在内存复制任意类型的,但是它俩也有区别。当源区域和目标区域有重复的,memmove函数会复制缓冲区重叠的部分,而memcpy相反,会报出未知错误。 下面给出两个函数的实现 首先,memmove函数。 实现的基本原理如下图。 具体代码如下: memcpy函数的实现很简单,就直接给出源代码了...

SpringFramework核心 - IOC容器的实现 - 总结

1. 概述 把Spring技术内幕第一章和第二章过了一遍,也做了一些笔记, 对IOC容器的实现有了一定皮毛理解,现在跟着源码再过一遍总结一下IOC容器的初始化,Bean的初始化的过程,做一下总结 ① IOC容器和简单工厂模式 在开始之前,先想想我们平时是怎么使用IOC容器为我们管理Bean的,假设我们要把下面的User类交给IOC容器管理 我们不想关心如何创建一个User对象实例的,仅仅在需要他的...