Linux命令--YUM
来源:互联网 发布:node.js 安装 编辑:程序博客网 时间:2024/04/25 16:46
用过rpm安装过软件的同学应该体验过“软件依赖”这个可怕的东西,一旦遇上了装一个软件可能会被逼疯!特别是遇到循环依赖的时候,压根就不知道怎么解决。还好RedHat还有YUM这个好东西,它可以帮我们自动解决软件依赖的问题,实现一键安装。前提是要联上网(或者使用光盘也行)。
YUM的原理
YUM的原理还比较复杂,重点在于理解“容器”的概念。
我们知道rpm安装有软件依赖的问题,rpm机制也会记录依赖属性(rpm -qR即可查询),那如果我们先把一个软件的依赖属性做成一张表(header),在安装软件的时候先到这个表中查找,同时与系统中已安装的软件进行比较,发现没有安装的软件就都下载安装起来,那这样依赖问题不就圆满解决了吗!【这就是YUM的原理】
CentOS发布软件的时候,将新的软件放置在YUM服务器中,然后分析软件的依赖属性并记录成列表(会放在repodata这个目录下)。 把这些列表数据和软件(packages)本身所在的路径就称作容器。即:
容器=repodata+软件+其他数据
反正容器里面一定有软件和repodata这个目录(因为存放着软件的依赖属性)。
当要安装后升级软件的时候,主机会先从指定的YUM服务器的容器下载列表(下载到/var/cache/yum),通过列表与本机RPM数据库已存在的软件进行比较,然后就可以实现一键安装了。(下载好安装包后依然是用rpm来安装)
YUM语法
yum [option] [action] option:查询: -y:自动相应yes --installroot=/path/:将软件安装在指定路径action: search:搜索某个软件 list:列出YUM服务器中所有的软件名称与版本(类似rpm -qa) info:列出详细信息(即如rpm -qai)安装、升级删除: install:后接要安装的软件名 update:接要升级的软件名(如果后面没有参数,即为整个系统升级) remove:删除软件软件组功能: grouplist:列出所有可使用的软件组,如(Desktop、Development Tools) groupinfo:查询组的详细信息 groupinstall:安装一组软件 groupremove:删除一组软件清除: clean packages:将已下载的软件包删除 clean headers:将已下载的依赖列表删除 clean all:将所有容器数据都删除容器: repolist all:列出目前YUM使用的所有容器
YUM配置文件
YUM很智能的,它会自动分析离你主机最近的镜像站点,然后使用它作为YUM源。但我们总有自己配置YUM源的时候。
我们先来看看YUM的配置文件。
[root@localhost ~]# cd /etc/yum.repos.d/[root@localhost yum.repos.d]# lsadobe-linux-x86_64.repo CentOS-Debuginfo.repo CentOS-Vault.repoCentOS-Base.repo CentOS-Media.repo
我们可以看到/etc/yum.repos.d/目录下有几个文件,这里的每个文件里都包含了一个或多个容器,存为多个文件只是为了方便标识罢了。如CentOS-Media.repo就是用来指定光盘作为YUM源的。
[base]name=CentOS-$releasever - Basemirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/enabled=1gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6#released updates [updates]name=CentOS-$releasever - Updatesmirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/#enabled=1gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6......(省略)
我们可以看到其中有多个容器,每一个都有几个重要的项目:
[base]:代表容器的名字,在一个系统里面容器名需独一无二。否则YUM会不知道使用哪个源。name=:容器的commentmirrorlist=:列出这个容器可以使用的镜像站点列表。因为可以在baseurl里直接指定镜像站点,所以这个可以不要。baseurl=:这里直接指定容器的实际地址。(即该网址目录下要有repodata这个文件夹)enabled=1:表示启用这个容器,0表示禁用。注释掉的话默认即为启用。gpgcheck=1:开启rpm数字签名机制gpgkey=:数字签名公钥路径
更换YUM源
YUM很智能的,它会自动分析离你主机最近的镜像站点,然后使用它作为YUM源。但我们总有自己配置YUM源的时候。
以鸟哥在书里举的例子来说好了,他给我们提供了一个台湾的镜像站:
http://free.nchc.org.tw/drbl-core/i386/RPMS.drbl-stable/
1、在/etc/yum/repos.d/下新建一个文件(必须以.repo结尾)
2、
[root@localhoat ~]# vim /etc/yum/repos.d/drbl.repo[drbl]name=Test sitebaseurl=http://free.nchc.org.tw/drbl-core/i386/RPMS.drbl-stable/enable=1gpgcheck=0
3、用yum repolist all查看drbl的导入情况。
......(省略)debug CentOS-6 - Debuginfo disableddrbl Test site enabled: 22extras CentOS-6 - Extras enabled: 62updates CentOS-6 - Updates enabled: 289repolist: 7,071
其中enable的表示该容器是启用的,后面跟的数字是该容器里拥有的软件个数。
使用光盘作为YUM源
我们也可以使用挂载光盘来作为YUM源,我们知道CentOS-Media.repo就是用来指定光盘作为YUM源的。只需要这样:
1、挂载光盘
2、/etc/yum.repo.d/文件下的所有文件(除CentOS-Media.repo)都更名为.bak。因为如果容器名不以.repo结尾,yum无法识别。(或者把其他文件里的enable=1都注释掉,但改个名字更方便~)
3、将CentOS-Media.repo中的enable=1注释掉即可
- [Linux] linux yum命令
- yum是什么?(linux命令)
- yum是什么?(linux命令)
- yum是什么?(linux命令)
- Linux yum 命令介绍
- linux yum命令详解
- yum Linux 命令
- linux yum命令详解
- Linux下yum命令
- Linux命令:rpm & yum!
- linux yum命令详解
- Linux yum命令详解
- linux yum命令详解
- Linux yum命令详解
- Linux yum命令详解
- linux yum命令详解
- Linux yum 命令介绍
- yum是什么?(linux命令) .
- hash的简单应用
- 定时器的使用方法
- 反转链表
- UVA - 550 Multiplying by Rotation
- HDU:1260 Tickets(动态规划DP)
- Linux命令--YUM
- Android 中dialog的使用
- Java 枚举深入分析
- Java并发编程(五)ConcurrentHashMap的实现原理和源码分析
- 打印一个数的二进制形式
- 面经学习
- 03全栈工程师--2016-08-08
- Caused by: java.lang.NoClassDefFoundError: FilterConfig
- hdu2084数塔(动态规划)