Yum
我们在使用linux的时候经常会用到的一款工具就是yum,因为yum为我们管理软件包、软件提供了很方便的使用方法。而在yum出现之前,从事linux工作的学者,很头疼的一件事就是如何安装linux软件包,我们知道使用rpm安装软件包的时候往往会有依赖关系困扰我们,这些依赖关系往往是很麻烦的,如果我们忽略(--nodeps)依赖关系来安装软件包,可能会造正软件的不可用!(我的老师曾经在没有yum的年代为处理依赖关系就要花费大量时间)。
下面我就讲解一下我对yum的理解
在讲yum时,不得不提rpm,我们知道在我们的linux系统上能够安装的软件包有3种:1基于rpm或yum命令安装包 2我们手动编译安装源代码包(如我们编译内核、c,c++,perl等程序)3就是一些绿色安装包。rpm(rpm is package manager)是redhat公司生产,最后被大多数linux发行商所采用的包管理器。后来为了解决安装过程中包依赖关系从而开发了yum.但是有一点大家一定要明白,yum不是rpm的替代品,yum是就相当于rpm的前端,就如同我们使用shell来调用系统内核一样,yum是基于rpm的,是rpm的一个外壳。
Yum(yellow dog update manager)是一种基于C/S模式的体系,也就是说要想使用yum就必须有: yum源和yum终端
yum源:yum源就是一堆包含了各种rpm软件包和定义这些软件包依赖关系的文件组成。根据经验,可以作为yum源的目录通常是有一个名叫repodata的目录,在该目录中有一些以压缩格式后缀名(这种描述不正确,linux中的文件是不分后缀名的)有xml的文件,这些文件包含了使不同平台、不同系统可以相互使用并且确定了依赖关系内容。我们的yum终端连到yum源有3中方法 1.通过http协议 (国内通常是使用,http://mirrors.sohu.com做的,这种方法网上很多,这里我就不讲了)2通过ftp协议(在局域网中做yum源,如公司内部,这里需要配置FTP服务,我这里也就不讲了) 3本地yum文件
(我主要讲讲本地yum源配置,方便大家的学习,使用)
我们系统中定义yum的有两个文件 1 /etc/yum.repos.d/*.repo 注意是任何一个以 .repo结尾的文件(一定是以.repo结尾的文件,前面名字无所谓,这个文件很重要)2 /etc/yum.conf (这个文件不常用)
在具体配置yum源前我想还是先给大家讲讲/etc/yum.repos.d/*.repo文件
Server 这是核心的
Cluster 集群的 这是做集群yum的时候用到的
ClusterStorage 集群存储的
VT 虚拟化的
这4个都是yum源,并且都是独立配置使用的,我们这里就以Server核心的来做。注意我们这4个都是可以做yum源的,虽然我们常常都写在server.repo这个文件中,但是不一定都用的着,如果要没有这个文件,我们就需要手动创建一个是没有这个文件。和server.repo在同一个目录下的是一个rhel-debuginfo-repo的文件,这个文件是是和我们系统内核有关的文件,默认是禁用的,形同虚设的。
为了演示方便我使用虚拟机给大家做一个本地的yum源 以Server为例
步骤:
1. 将我们从网上下载的iso镜像文件挂载上
]#mount /dev/cdrom /media/cdrom
2.
在我们的linux iso镜像中也有Server Cluster ClusterStorage VT
这4个目录,我们要做什么样的yum源就要将这些目录就是要
分别对应到server.repo文件中那个yum源定义
]#cp /media/cdrom/Server /tmp/Server
3.
在/etc/yum.repos.d/server.repo中写入
[base] yum源的名字,名字是随意的,只要和别人不一样
name=local Server yum yum源的名称的描述信息
baseurl=file:///tmp/Server 我们使用的是本地连接注意格式,这个
很重要 用来指定yum源的位置,这取决于我们的repodata目录的位置,如我们的Server中就包含了一个repodata的目录
enabled=0 表示这个yum源是开启的
gpgcheck=0 表示我们是使用的ftp或http做的yum源会对yum源中的rpm
包进行检查
注意:如果这个文件中还有其他的yum源指向,即使我们用不到我们也要将其格式写对,并且baseurl的指向要存在且正确,否则我们的yum还是不能用,这里我的其他yum是配置正确的,且存在。
4。只要我们的yum源配正确了,我们yum终端的使用就不会用太大问题了
yum终端:(这些都是常用的,没有用的我都不写)
1 yum list {all | installed | avaliable | update | obselete }
查看本地 所有的 已经安装的 还没有安装的 可更新
的 可废弃的 rpm软件包 ,更为有用的是支持globing
2
yum clean all 手动清空yum在本地生成的缓存,我们在使用yum install的时候 是从yum源中找到软件包并将其放到内存缓存区中使用的
3 yum install 交互式安装, 后面跟包名
eg: yum install mysqlserver
yum -y install 非交互式安装
4 yum remove mysqlserver 移除软件包
5 yum update mysqlserver 升级软件包
6 yum info mysqlserver 查询软件包的信息
7 yum grouplist 显示yun源中所有的软件包租
8 yum groupinstall "Development Tools" "Development Libraries"
将一个软件包租安装下来
9 localinstall=rpm -i 直接安装本地的软件包非yum源中的包
这样可以帮助我们解决rpm安装本地软件包的依赖关系
10 yum -nogpgcheck install mysql 忽略数字签名的安装
最后再给大家说一点,如果我们在第一次配好yum源后使用时出现
warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key
ID 37017186 Public key for nano-1.3.12-1.1.i386.rpm is not installed
错误时,我们需要将密钥导入系统中,至于这是什么机制,这就是另一个话题了,不过我们只要在/etc/pki/rpm-gpg/下,执行]#rpm --import RPM-GPG-KEY-redhat-release命令就行了。
谢谢大家的阅读,如我写的有错误,请与我留言,让我们一起进步!
转载于:https://blog.51cto.com/ichthus/714806