Yum、RPM命令详解

Yum的使用及详解

常见的软件封包类型
封包类型说明
rpm软件包扩展名以.rpm结尾,使用户redhat系列
deb软件包扩展名以.deb结尾,适用于Debian系列
源代码软件包以.tar.gz/.tar.bz2格式结尾的压缩包提供包含程序的原始代码文件
RPM的含义

1.RPM 是 Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理;在Fedora
、Redhat、Mandriva、SuSE、YellowDog等主流发行版本,以及在这些版本基础上二次开发出来的发行版采用。

2.RPM里面都包含可执行的二进制程序,这个程序和Windows的软件包中的.exe文件类似是可执行的;RPM包中还包括程序运行时所需要的文件,这也和Windows的软件包类似,Windows的程序的运行,除了.exe文件以外,也有其它的文件。

3.一个RPM 包中的应用程序,有时除了自身所带的附加文件保证其正常以外,还需要其它特定版本文件,这就是软件包的依赖关系;依赖关系并不是Linux特有的,Windows操作系统中也是同样存在的;比如我们在Windows系统中运行3D游戏,在安装的时候,他可能会提示,要安装Direct
9 ;Linux和Windows原理是差不多的
RPM包文件名特征-软件名-版本信息.操作系统.硬件架构.rpm

RPM的默认安装位置
默认安装位置文件类别
/etc 、 /etc/软件名配置文件
/usr/bin /sbin/一些可执行文件、管理工具
/usr/lib一些程序使用的动态函数库
/var/log 、 /var/log/软件名日志文件
/usr/share/doc一些基本的软件使用手册与帮助文档
/usr/share/man一些man page文件
rpm命令
  1. linux rpm 命令用于管理套件
    rpm(英文全拼:redhat package manager) 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。
  2. linux rpm 的常用参数说明
参数说明
-a查询所有软件包
-e卸载RPM软件包
-f查询拥有指定文件的软件包
-i显示软件的详细信息
-q使用查询模式,当遇到问题时,rpm指令会先询问用户
-v显示指令执行的过程
–force强制安装、覆盖安装
-h或–hash软件包安装时列出的标记
–test仅作测试,并不真的安装软件包
–version显示版本信息
–help在线帮助
  1. RPM命令的通用格式
 rpm [-参数]  [包名]
  1. 使用rpm安装软件
rpm -ivh httpd-2.4.6-80.el7.centos.x86_64.rpm 
  1. 显示软件的安装信息
rpm -qi httpd-2.4.6-80.el7.centos.x86_64.rpm 
  1. 安装软件是出现错误,描述是依赖包检测失败
    在这里插入图片描述
  2. 解决依赖关系
    <1>先安装/卸载要求的包,如果RPM包齐全但是比较多时,可以用通配符*
    <2>忽略依赖关系(不建议使用)使用–nodeps可以忽略依赖关系
Yum 命令

1.yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的Shell 前端软件包管理器。

2.基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
3.yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

Yum原理(详情参考(Galaxy_hao)
Yum本地仓库
  1. 软件仓库的提供方式
    • 本地目录:file://
    • FTP或HTTP服务:ftp:// 、 http://
  2. RPM软件包的来源
    • Red Hat发布的RPM包集合
    • 第三方、用户自定义的rpm包集合
yum常用命令
命令含义
yum check-update列出所有可更新的软件清单
yum update更新所有软件
yum install 软件包名仅安装指定的软件包
yum update仅更新指定的软件包
yum list列出所有可安装的软件清单
yum remove 软件包名仅删除指定的软件包
yum serch 关键字查找软件包
yum clean all清除缓存目录下的软件包及旧的 headers
yum makecache缓存软件包的信息
yum repolist列出所有软件包
yum配置解析
  1. 影响yum使用的主要文件
    - 基本设置: /etc/yum.conf
    - 仓库配置: /etc/yum.repo.d/*.repo
    - 日志文件: /var/log/yum.log
  2. *.repo的基本配置项
    • [base]:代表容器名称,名称可以随意取
    • name:描述容器含义
    • baseurl:后面接容器地址,是指定一个固定容器地址
    • enabled:是否启用此频道(1为启动,0为不启用)
    • gpgcheck:是否需要查阅RPM文件内数字证书
    • gpgkey:数字证书公钥文件所在位置,使用默认值
仓库文件*.repo文件的简单书写
  1. 准备本地镜像仓库
    • mkdir /yum #创建目录
    • lsblk #查看镜像磁盘是否存在
      在这里插入图片描述
    • mount /dev/sr0 /yum
      mount: /dev/sr0 写保护,将以只读方式挂载
  2. *.repo文件的简单书写
[development]  #代表容器名称,名称可以随意取
name=nsd01     #描述容器含义
baseurl=file:///yum   #后面接容器地址,是指定一个固定容器地址
enabled=1      #是否启用此频道(1为启动,0为不启用)
gpgcheck=0     #是否需要查阅RPM文件内数字证书
yum命令工具
  • 查看软件列表
    • 格式: yum list [软件名] ==>配合管道可查询软件包全称
    eg: yum list | grep python-u
       python-urlgrabber.noarch                  3.10-8.el7                 @anaconda  
       python-urllib3.noarch                     1.10.2-5.el7               development
       python-urwid.x86_64                       1.1.1-3.el7                development
  • 检索软件及相关信息

    - yum search 关键字
          -  yum search httpd
    - yum info [软件名]
          - yum info httpd    # 显示相关信息
    - yum provides 文件路径/软件**提供的命令** 
    
    • yum provides */syslinux #文件路径
      在这里插入图片描述
    • yum provides semanage #软件包提供的命令
      在这里插入图片描述
  • 安装/卸载软件包
    - 命令格式: yum [-y] 指令 [软件名]

 - yum -y install httpd   #安装软件 
  已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 httpd.x86_64.0.2.4.6-80.el7.centos 将被 安装
--> 正在处理依赖关系 httpd-tools = 2.4.6-80.el7.centos,它被软件包 httpd-2.4.6-80.el7.centos.x86_64 需要
--> 正在处理依赖关系 /etc/mime.types,它被软件包 httpd-2.4.6-80.el7.centos.x86_64 需要
--> 正在处理依赖关系 libaprutil-1.so.0()(64bit),它被软件包 httpd-2.4.6-80.el7.centos.x86_64 需要
--> 正在处理依赖关系 libapr-1.so.0()(64bit),它被软件包 httpd-2.4.6-80.el7.centos.x86_64 需要
--> 正在检查事务
---> 软件包 apr.x86_64.0.1.4.8-3.el7_4.1 将被 安装
---> 软件包 apr-util.x86_64.0.1.5.2-6.el7 将被 安装
---> 软件包 httpd-tools.x86_64.0.2.4.6-80.el7.centos 将被 安装
---> 软件包 mailcap.noarch.0.2.1.41-2.el7 将被 安装
--> 解决依赖关系完成
- yum remove httpd       #卸载软件 
移除  1 软件包

安装大小:9.4 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在删除    : httpd-2.4.6-80.el7.centos.x86_64                                                                          1/1 
  验证中      : httpd-2.4.6-80.el7.centos.x86_64                                                                          1/1 

删除:
  httpd.x86_64 0:2.4.6-80.el7.centos                                                                                          

完毕!
国内yum源

网易yum源
阿里yum源

使用方式(参考文档

前提:虚拟机/服务器与外网互通

  1. 备份/etc/yum.repos.d/CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
  1. 下载对应版本 repo 文件, 放入 /etc/yum.repos.d/ (操作前请做好相应备份)
    CentOS 7 (其他版本的请自行参考阿里yum源
 yum -y install wget 
 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
 或者
 curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
  1. 运行 yum makecache 生成缓存
  2. 其他

非阿里云ECS用户会出现 Couldn’t resolve host ‘mirrors.cloud.aliyuncs.com’
信息,不影响使用。用户也可自行修改相关配置: eg:

sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
自定义yum源
  1. 作为yum源的条件
    - 大量的.rpm的软件包文件
    - 针对软件包的repodata/ 仓库档案
  2. 使用自定义Yum源时,需要另外创建repodata/ 档案
    - 将收集到的rpm放到一个linux系统中的一个目录里
    - 使用createrepo工具创建repodata/ 档案
1. mkdir /mysql      #创建目录 
2. mv /root/mysql-5.7.17.tar /mysql/    #把压缩包移动到刚刚新建的目录中
3. tar -xf /mysql/mysql-5.7.17.tar -C /mysql/    #解压放到指定的路径
4.  yum -y install createrepo #安装createrepo软件包
5. createrepo ./  #生成repodata文件夹
Spawning worker 0 with 11 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
6. createrepo  --update ./  #更新自定义yum源
  1. 配置yum客户端的配置文件(本机centos7.5 1804)
1. cd /etc/yum.repos.d/  #进入仓库目录 ,书写repo文件
2. vim  mysql.repo
    [mysql]
    name=mysql5.7
    baseurl=file:///mysql
    enabled=1
    gpgcheck=0
3. yum makecache  # 缓存信息
4. yum repolist   #显示仓库列表
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
源标识                                  源名称                                状态
development                             nsd01                                 9,911
mysql                                   mysql5.7                                 11
repolist: 9,922
5.yum install mysql # 检测yum源是否可用 
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 mariadb-libs.x86_64.1.5.5.56-2.el7 将被 取代
---> 软件包 mysql-community-client.x86_64.0.5.7.17-1.el7 将被 安装
---> 软件包 mysql-community-common.x86_64.0.5.7.17-1.el7 将被 安装
---> 软件包 mysql-community-devel.x86_64.0.5.7.17-1.el7 将被 安装
---> 软件包 mysql-community-embedded.x86_64.0.5.7.17-1.el7 将被 安装
---> 软件包 mysql-community-embedded-compat.x86_64.0.5.7.17-1.el7 将被 安装
---> 软件包 mysql-community-embedded-devel.x86_64.0.5.7.17-1.el7 将被 安装
---> 软件包 mysql-community-libs.x86_64.0.5.7.17-1.el7 将被 舍弃
---> 软件包 mysql-community-libs-compat.x86_64.0.5.7.17-1.el7 将被 舍弃
---> 软件包 mysql-community-minimal-debuginfo.x86_64.0.5.7.17-1.el7 将被 安装
---> 软件包 mysql-community-server.x86_64.0.5.7.17-1.el7 将被 安装
---> 软件包 mysql-community-test.x86_64.0.5.7.17-1.el7 将被 安装
--> 正在处理依赖关系 perl(JSON),它被软件包 mysql-community-test-5.7.17-1.el7.x86_64 需要
--> 正在检查事务
---> 软件包 perl-JSON.noarch.0.2.59-2.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北城 半夏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值