Linux ---yum源详解
yum是一个工具,可以用来查询、安装、升级、卸载软件 YUM(Yellow dog Updater,Modified)yum是一个RPM的前端程序,其主要目的是为了自动解决RPM的自动依赖关系。他不像RPM一样, YUM不是一种新的软件封装形式,它是专门用来管理RPM的;在Linux上安装软件可以用RPM方式安装简单依赖关系少的软件,但对于安装某些时,总是需要自己动手去解决软件件的依赖关系,即就是安装一个软件之前要安装好一个或多个其他软件。手工解决非常困难,可以用yum方式去很快的解决。
yum的特点:
-自动解决依赖关系
-可以对RPM进行分组,并基于组进行安装操作
-引进了仓库的概念,支持多个仓库(后边会说)
-配置简单
安装一个软件时候如果依赖另一个软件,YUM会自动寻找这个软件,但是怎么去找呢? 于是就需要yum 的“仓库”了。
yum的仓库:
仓库用来存放所有现有的rpm软件包, 当yum安装一个rpm软件包的时候,如果存在依赖关系,它会在仓库中查找软件并自动去安装, 如果yum仓库中没有要找的rpm软件包那么yum也就不能把软件完全安装好!
yum仓库可以是本地的(自己配置的), 也可以通过HTTP,FTP或者NFS等形式集中的、统一的网络仓库(网上会提供很多YUM仓库的服务器)。
yum使用仓库保存管理rpm软件包,将配置文件存放在 /etc/yum.repos.d/ 下格式如下:
[local] #(yum块区域)
name=aaa # (名字可以随便起)
baseurl=file:///var/yum/Server #(搜索路径,必须指向你本机的yum源路径)
gpgcheck=0 #(gpgcheck是gpg验证是否开启的选项,1是开启,0是不开启,一般情况可以关掉)
enabled=1 #(是否启用,0为不启用,1为启用,过没这一项,就是启用)
该配置文件的文件名字是随便起的,但是最后必须得以.repo 后缀名结尾
并且在/etc/yum.repos.d/ 目录下可以有多个配置文件
一个配置文间内可以存放多个仓库信息(也就是上边的5行)。
YUM源的本地搭建(手工搭建):
1.将所有的rpm文件拷到一个文件加下
2.yum不可能每次安装都扫描整个文件夹,太慢了, 必须创建一个索引文件, 通过rpm -ivh安装createrepo
3.通过createrepo -v yum仓库的目录 创建索引文件, 这时候会在当前目录下出现repodata的一个文件夹
4.这时候就按如上所说的,在 /etc/yum.repos.d/ 目录下新建一个文件(或者使用原来的/etc/yum.repos.d/目录下以。repo结尾的文件进行修改),假设其名为 modify.repo 其中的内容可以如下
[local_yum]
name=local
baseurl=file:///lifeng-yum
enabled=1
gpgcheck=0 #不检查gpg签名
如果使用镜像光盘作为YUM源,搭建本地yum源的步骤:
1.确定iso镜像文件的位置[root@teacher ~]# find / -name rhel*.iso -exec du -sh {} \; 2.9G /var/ftp/software/iso/rhel6.3.x86.iso [root@teacher ~]# 确认镜像文件的大小和位置,防止是个损坏的镜像文件 2.新建一个仓库目录mkdir /lifeng-yum 3.挂载镜像文件到/media目录(不一定非要到/media),主要是获得软件 [root@teacher ~]# mount -o loop /var/ftp/software/iso/rhel6.3.x86.iso /media/ 如果你有光驱也有光盘,可以使用 mount /dev/cdrom /media4.查看挂载[root@teacher ~]# df -Th Filesystem Type Size Used Avail Use% Mounted on /dev/sda3 ext4 321G 142G 163G 47% / tmpfs tmpfs 1.9G 336K 1.9G 1% /dev/shm /dev/sda1 ext4 92G 233M 87G 1% /boot /var/ftp/software/iso/rhel6.3.x86.iso iso9660 2.9G 2.9G 0 100% /media [root@teacher ~]#5.将挂载点目录/media目录下的所有文件复制到/lifeng-yum目录下[root@teacher ~]# cp /media/* /lifeng-yum/ -r 6.进入yum仓库配置文件存放目录[root@teacher ~]# cd /etc/yum.repos.d/ [root@teacher yum.repos.d]# [root@teacher yum.repos.d]# vim local.repo [local_yum] #yum源的名字 name=local #yum源的描述 baseurl=file:///lifeng-yum enabled=1 #启用yum源 为0说明yum源不可用 gpgcheck=0 #不进行gpg检测,0代表不检测,1代表检测 :目的是为了安全性考虑 gpgkey=file:////etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 存放公钥文件 ====== http://www.baidu.com ftp://10.0.2.253/note/2ban-linux/system2/ ====== url 统一资源定位符(URL,英语UniformResourceLocator的缩写)也被称为网页地址,是因特网上标准的资源的地址。 file:// 协议 http:// ftp:// /lifeng-yum 目录的路径 ======本地YUM源测试 为了避免其他repo文件干扰,保证/etc/yum.repos.d目录下只有一个repo文件 ====== 上述工作做完后,如果系统重启后那么YUM源就需要开机自动挂载镜像光盘才会生效:(具体操如下)[root@teacher localyum]# echo "mount -o loop /var/ftp/software/iso/rhel6.4-x86_64.iso /xiepeng-yum" >>/etc/rc.local [root@teacher localyum]# /etc/rc.local文件里的命令,开机后系统会自动执行。 ======
YUM源互联网搭建:
步骤和方法和上面本地搭建的相同只是“baseurl=file:///lifeng-yum”改为“baseurl=(ftp,http)://+下载软件的网址”
好吧!搭建好了yum源之后,就是使用yum安装软件的时候了,以下yum的命令比较常用:
YUM基本命令
yum install softwarename 安装指定软件
yum remove softwarename 卸载指定软件
yum update softwarename 升级指定软件
YUM查询命令
yum search hehe 查询关键字里变含有hehe的所有rpm软件包的描述
yum list(all/installed/recent/updates) 列出全部,安装过的,最近的,
yum info softwarename 查询软件的信息和rpm -qi 的功能是一样的
yum whatprovides filename 查询那个rpm软件包含目标文件
1.使用YUM查找软件包
命令:yum search <keyword>
2.列出所有可安装的软件包
命令:yum list
3.列出所有可更新的软件包
命令:yum list updates
4.列出所有已安装的软件包
命令:yum list installed
5.列出所有已安装但不在 Yum Repository 內的软件包
命令:yum list extras
6.列出所指定的软件包
命令:yum list <package_name>
7.使用YUM获取软件包信息
命令:yum info <package_name>
8.列出所有软件包的信息
命令:yum info
9.列出所有可更新的软件包信息
命令:yum info updates
10.列出所有已安裝的软件包信息
命令:yum info installed
11.列出所有已安裝但不在 Yum Repository 內的软件包信息
命令:yum info extras
12.列出软件包提供哪些文件
命令:yum provides <package_name>
清除YUM缓存
yum 会把下载的软件包和header存储在cache中,而不会自动删除。如果我们觉得它们占用了磁盘空间,可以使用yum clean指令进行清除,更精确 的用法是yum clean headers清除header,yum clean pack ages清除下载的rpm包,yum clean all一 股脑儿端
1.清除缓存目录(/var/cache/yum)下的软件包
命令:yum clean packages
2.清除缓存目录(/var/cache/yum)下的 headers
命令:yum clean headers
3.清除缓存目录(/var/cache/yum)下旧的 headers
命令:yum clean oldheaders
命令:yum clean, yum clean all (= yum clean packages; yum clean oldheaders)
======================================================================================================================================================================================= 注意:!!!不要在32位的系统里强制安装64位的软件,或者64位的系统不要强制安装32位的软件,不然会导致系统某些程序启动不起来。主要是破坏了系统里很多的库。
=======================================================================================================================================================================================
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。