侧边栏壁纸
  • 累计撰写 90 篇文章
  • 累计创建 17 个标签
  • 累计收到 23 条评论

目 录CONTENT

文章目录

Yum的使用及详解

Administrator
2024-03-19 / 1 评论 / 0 点赞 / 115 阅读 / 0 字

常见的软件封包类型

封包类型

说明

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的默认安装位置

rpm命令

linux rpm 命令用于管理套件

  1. rpm(英文全拼:redhat package manager) 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。

  2. linux rpm 的常用参数说明

rpm [-参数]  [包名]   #命令格式
  1. 使用rpm安装软件

安装httpd
rpm -ivh httpd-2.4.6-80.el7.centos.x86_64.rpm  

显示软件的安装信息 
rpm -qi httpd-2.4.6-80.el7.centos.x86_64.rpm

2. 安装软件是出现错误,描述是依赖包检测失败

3.解决依赖关系

<1>先安装/卸载要求的包,如果RPM包齐全但是比较多时,可以用通配符*
<2>忽略依赖关系(不建议使用)使用--nodeps可以忽略依赖关系

Yum 命令

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

Yum原理

YUM工作原理及使用_Galaxy的博客-CSDN博客blog.csdn.net/guohaosun/article/details/81481848

Yum本地仓库

  1. 软件仓库的提供方式

  • 本地目录:file://

  • FTP或HTTP服务:ftp:// 、 http://

2.RPM软件包的来源

  • Red Hat发布的RPM包集合

  • 第三方、用户自定义的rpm包集合

yum常用命令

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源

使用方式

centos镜像-centos下载地址-centos安装教程-阿里巴巴开源镜像站developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11oWqegF

前提:虚拟机/服务器与外网互通 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 将被 安装
--> 解决依赖关系完成

依赖关系解决

0

评论区