yum的理解与使用

yum工作原理

yum是一个RPM包的前端管理工具,在rpm包的依赖关系已经被建成数据库的前提下它能够实现自动查找相互依赖的人rpm包,并从repository中下载互相依赖的rpm包到本地。

1. yum server 提供软件包,供client下载.

2. yum client 从server端下载软件包

以下就是以安装net-tools为例,client调用yum install或者search的时候,都会去解析/etc/yum.repos.d下面所有以.repo结尾的配置文件,这些配置文件指定了yum服务器的地址。从yum服务器上解析出net-tools所依赖的安装环境。从而将依赖软件包与net-tools软件包下载到client进行安装。

image.png

yum常用操作

[root@openstack ~]# yum install vim可自动安装依赖包(rpm不行)
[root@openstack ~]# yum -y install vim 无下载提示安装
[root@openstack ~]# yum list installed 列出已经安装的包
[root@openstack ~]# yum list all 列出已经安装的和可以安装的包
[root@openstack ~]# yum list installed | grep php 查询是否安装php包
[root@openstack ~]# yum remove net-tools 卸载net-tools包
[root@openstack ~]# yum info net-tools 显示已经安装包的详细信息
[root@openstack ~]# yum deplist net-tools 查询net-tools包的依赖信息
[root@openstack local_server]# yum clean all 清除缓存目录(/var/cache/yum)下的软件包及旧的headers

yum实验

实验目的

理解与使用本地源的建立过程,使用本地源安装net-tools工具。

操作步骤

一.挂载光盘文件&&将所有rpm包复制到/local_server

1.检查虚拟机光驱中是否有虚拟光盘,如果没有,先选择虚拟盘。

image.png

2.右击选择虚拟盘,图标亮起则成功

image.png

(虚拟盘相当于是充当一个虚拟的linux服务器)

3.创建新目录,用于挂载光盘镜像文件

#mkdir /media/cdrom

4.然后使用mount命令挂载光盘镜像文件到/media/cdrom/

#mount -t auto /dev/cdrom /media/cdrom/
mount: /dev/sr0 is write-protected, mounting read-only

挂载成功,以只读方式挂载

5.创建本地仓库目录(用来存放从虚拟服务器上获取到的软件包)

#mkdir /local_server

6查看虚拟光盘中有哪些文件和目录

#ls /media/cdrom
CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
EULA             isolinux  repodata  TRANS.TBL

7.将光盘中的所有RPM软件包复制到本地仓库目录中

#cp /media/cdrom/Packages/* -rv /local_server/

二.备份所有repo文件

1.进入yum配置文件目录&&查看

#cd /etc/yum.repos.d/
#ls        //下列是所有的yum配置文件
CentOS-Base.repo       CentOS-fasttrack.repo  CentOS-Vault.repo
CentOS-CR.repo         CentOS-Media.repo
CentOS-Debuginfo.repo  CentOS-Sources.repo

2.在/etc/yum.repo.d/目录下新建脚本文件并执行

#vi BackupRepoFile.sh
for file in *
do
          if [  "$file"  !="$0"  ]         //"$0"代表的是该文件本身
          then
                      mv $file{,.bak}        //文件备份
          fi
done 
//然后保存
#sh BackupRepoFile.sh

3.验证执行是否成功(以.bak结尾的是备份文件)

#ls
BackupRepoFile.sh     CentOS-Debuginfo.repo.bak  CentOS-Sources.repo.bak
CentOS-Base.repo.bak  CentOS-fasttrack.repo.bak  CentOS-Vault.repo.bak
CentOS-CR.repo.bak    CentOS-Media.repo.bak

三.创建本地源仓库(用来存放所有所有包,使之不需要再从服务器获取)

#vi local_server.repo
[local_server]
name=This is a local repo
baseurl=file:///local_server
enable=1
gpgcheck=0

四.创建yum仓库,用createrepo命令

1.进入仓库所在目录&&createrepo工具

#cd /local_server/
#rpm -ivh createrepo-0.9.9-23.el7.noarch.rpm
error: Failed dependencies:
        deltarpm is needed by createrepo-0.9.9-23.el7.noarch
        libxml2-python is needed by createrepo-0.9.9-23.el7.noarch
        python-deltarpm is needed by createrepo-0.9.9-23.el7.noarch

返回的信息是指,有依赖的包没有安装,这里缺少三个包
读者可根据自己的环境安装缺少的rpm包。下一步即为安装所缺少的软件包。

2所需要的三个软件包都在该目录下面

#rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm python-deltarpm-3.6-3.el7.x86_64.rpm libxml2-python-2.9.1-5.el7_1.2.x86_64.rpm
#rpm -ivh createrepo-0.9.9-23.el7.noarch.rpm 
#createrepo -v /local_server/       //这里是所有的依赖包

3.我们可以用ls repodata/命令查看到所有包之间的依赖关系

#cd /local_server/
ls repodata/
40bac61f2a462557e757c2183511f57d07fba2c0dd63f99b48f0b466b7f2b8d2-other.xml.gz
92384ea8958855cd44d8cd6bd999548d15879afe740b604ef5ff806435777dcd-primary.xml.gz
9710c85f1049b4c60c74ae5fd51d3e98e4ecd50a43ab53ff641690fb164a6d63-other.sqlite.bz2
cfa741341d5d270d5b42d6220e2908d053c39a2d8346986bf48cee360e6f7ce8-filelists.xml.gz
d863fcc08a4e8d47382001c3f22693ed77e03815a76cedf34d8256d4c12f6f0d-filelists.sqlite.bz2
e63b5b60a4a37c6d50bc855c950f5f2b23adab400d1c2b868c6a6965803eb422-primary.sqlite.bz2
repomd.xml

五.清除缓存

#yum clean all

六.使用本地源安装net-tools

首先检查是否已安装net-tools工具。
若返回信息如下所示,表示已安装。需要先使用yum remove net-tools进行卸载。

#yum list installed | grep net-tools
net-tools.x86_64       1.60-110.el6_2   @anaconda-CentOS-201605220104.x86_64/6.8     //代表已经安装

若无返回信息,表示未安装net-tools。进行下一步

#yum install net-tools
image.png

拓展

1.使用ll /etc/yum.repos.d/命令可以看到所有的yum仓库

#ll /etc/yum.repos.d/
total 36
-rw-r--r--. 1 root root  109 Sep 29 09:15 BackupRepoFile.sh
-rw-r--r--. 1 root root 1664 Dec  9  2015 CentOS-Base.repo.bak
-rw-r--r--. 1 root root 1309 Dec  9  2015 CentOS-CR.repo.bak
-rw-r--r--. 1 root root  649 Dec  9  2015 CentOS-Debuginfo.repo.bak
-rw-r--r--. 1 root root  290 Dec  9  2015 CentOS-fasttrack.repo.bak
-rw-r--r--. 1 root root  630 Dec  9  2015 CentOS-Media.repo.bak
-rw-r--r--. 1 root root 1331 Dec  9  2015 CentOS-Sources.repo.bak
-rw-r--r--. 1 root root 1952 Dec  9  2015 CentOS-Vault.repo.bak
-rw-r--r--. 1 root root   92 Sep 29 09:27 local_server.repo

从中我们可以看到前面的仓库都已经关闭,只剩下最后一个,这个仓库就是我们当前正在使用的。

2.在/etc/yum.repos.d/目录下使用 cat CentOS-Base.repo.bak 命令可以查看到linux的四个基本仓库其中前单个是开启的,最后一个是默认关闭的

cd /etc/yum.repos.d/
cat CentOS-Base.repo.bak
CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#

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

#released updates 
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0     //关闭状态
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

3.如果只需要查看当前启用了哪些仓库,可以使用yum repolist

#yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id                       repo name                             status
local_server                  This is a local repo                  3,723
repolist: 3,723
#cat /local_server.repo
[local_server]
name=This is a local repo
baseurl=file:///local_server
enableed=1
gpgcheck=0
 

相关知识

1.使用"yum repolist"可以列出你当前的yum 资源库.

#yum repolist

2.从不可用的资源库安装, 可用使用yum -enablerepo

#yum -enablerepo
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • http://blog.csdn.net/mathewsking/article/details/8211273 ...
    liuboxx1阅读 6,040评论 1 1
  • 各大Linux发行版软件包管理参考(http://www.freeoa.net/osuport/botinstal...
    IRONYT阅读 7,255评论 0 12
  • 《鸟哥的Linux私房菜》笔记 软件管理器简介 不是每个人都会进行源码安装的! 厂商先在他们的系统上面编译好了我们...
    Zhang21阅读 1,437评论 0 6
  • 梦想总是遥不可及 你是否 想过放弃 梦想总是遥不可及 你是否 留下过泪滴 请不要放弃 要相信你的潜力 要相信那深海...
    三惑阅读 381评论 0 1
  • 本文主要想谈一谈前端关于渐变圆环的制作,效果图如下: 注意:部分iphone 不支持css3旋转大于等于90度,故...
    花伊侬阅读 5,847评论 0 2