yum就是为了解决依赖关系而存在的。yum源就相当是一个目录项,当我们使用yum机制安装软件时,若需要安装依赖软件,则yum机制就会根据在yum源中定义好的路径查找依赖软件,并将依赖软件安装好。
YUM是“Yellow dog Updater,
Modified”的缩写,是一个软件包管理器,YUM从指定的地方(相关网站的rpm包地址或本地的rpm路径)自动下载RPM包并且安装,能够很好的解决依赖关系问题。YUM的基本工作机制如下:
服务器端:在服务器上面存放了所有的RPM软件包,然后以相关的功能去分析每个RPM文件的依赖性关系,将这些数据记录成文件存放在服务器的某特定目录内。
客户端:如果需要安装某个软件时,先下载服务器上面记录的依赖性关系文件(可通过WWW或FTP方式),通过对服务器端下载的纪录数据进行分析,然后取得所有相关的软件,一次全部下载下来进行安装。
ls /etc/yum.repos.d/ ##查看yum源目录下的设定文件 google-chrome.repo local-yum.repo rhel-source.repo ##在yum.repos.d 目录下存放的就是yum源的设定文件。 vim /etc/yum.repos.d/rhel-source.repo ##打开一个yum源的设定文件 [rhel-source-beta] ##yum源的名称,起到标记yum源的作用, name=Red Hat Enterprise Linux $releasever Beta - $basearch - Source ##仅仅是对yum的描述,作用是使用户可以更容易的读懂该文件。 baseurl=ftp://ftp.redhat.com/pub/redhat/linux/beta/$releasever/en/os/SRPMS/ ##我们指定的查找依赖关系软件的路径,(该路径可以是一个网址路径,也可以是本机上的一个路径。) enabled=0 ##enabled 是使能够的意思,0表示baseurl定义的路径是不可用的,1表示定义的路径是可用的。 gpgcheck=1 ##gpgcheck表示是否进行gpg检测,0表示不进行,1表示进行。gpg检查就是在使用yum安装软件是对软件输入公钥进行验证,看是否来源安全。 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release ##进行gpg检查时,使用file协议导入公钥,后面接的路径就是系统自带的公钥存放路径。 ##ftp:// 表示使用的是ftp协议连接路径,该协议一般用于非本地连接,本地yum使用的协议是:"file://"文件协议
mkdir /var/www/html/rhel7.0 mount /home/student/iso/rhel-server-7.0-x86_64-dvd.iso /var/www/html/rhel7.0 测试是否可以访问到 在浏览器中输入:http://192.168.0.35/rhel7.0 ##192.168.0.35为本机IP 可以看到镜像中的内容说明配置成功,可以作为共享为和你网络联通的设备提供yum源然后我们需要配置yum源指向(可以是本机或者与你网络联通的任意一台主机)
rm -fr /etc/yum.repos.d/* vim /etc/yum.repos.d/yum.repo [Server] name=rhel7.0 baseurl=http://192.168.0.35/rhel7.0 ##客户端只能这么写,并且必须保证能够通过浏览器正常访问 ##本机也可以这样写baseurl=file:///var/www/html/rhel7.0 gpgcheck=0如果我们需要镜像开机自动挂载到共享目录上则可以修改文件
vim /etc/rc.d/rc.local mount /home/student/iso/rhel-server-7.0-x86_64-dvd.iso /var/www/html/rhel7.1 :wq ##保存并退出 chmod +x /etc/rc.d/rc.local
-客户端yum源指向配置
vim /etc/yum.repos.d/rhel-source.repo ##仓库指向文件位置 [Software] ##自定义软件仓库名称 name=Software ##自定义软件仓库描述 baseurl=ftp:///home/student/rpm/ | http:///home/student/rpm/ | file:///home/student/rpm/ ##仓库位置,三种方式选一 gpgcheck=0 ##不检测gpgkey
- 首先要有rhel7.2的镜像,这里我的7.2镜像改名为rhel7.2,并放到了rhel系统的/home/student/iso/目录下
monut /home/student/iso/rhel7.2 /mnt ##挂载光盘,rhel7.2为你的iso镜像文件 rm -rf /etc/yum.repos.d/* ##清除源目录下已有文件 vim /etc/yum.repos.d/rhel7.repo ##配置你自己的yum源,整体格式和内容如下: [rhel7-yum] name=rhel7-source baseurl=file:///mnt gpgcheck=0 #第1行为yum源名称,唯一的,用来区分不同的yum源 #第2行为对yum源描述信息 #第3行为yum源的路径(repodata目录所在的目录) #第4行设置是否使用公钥检验rpm的正确性,0表示不检验,1表示检验 保存文件然后执行以下命令 yum clean all ##清空yum缓存 yum repolist ##重新生成列表
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo #从阿里云镜像网站下载yum源配置文件到yum目录中 sed -i 's/$releasever/7/g' /etc/yum.repos.d/CentOS-Base.repo #修改版本号为redhat7 yum clean all #清空yum缓存 yum list #生成列表
monut /dev/sr0 /mnt ##挂载光盘 rm -rf /etc/yum.repos.d/* vim /etc/yum.repos.d/rhel6.repo [rhel6-yum] ##yum源名称,唯一的,用来区分不同的yum源 name=rhel6-source ##对yum源描述信息 baseurl=file:///mnt ##yum源的路径(repodata目录所在的目录) enabled=1 ##为1,表示启用yum源 gpgcheck=0 ##设置不使用公钥检验rpm的正确性
配置redhat6 *的源其实也一样
只需要进入到http://mirrors.aliyun.com/repo/的目录,然后寻找Centos-6.repo
第二步:sed -i ‘s/$releasever/6/g’ /etc/yum.repos.d/CentOS-Base.repo 把7换成6,其他都一样。
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo sed -i 's/$releasever/6.7/g' /etc/yum.repos.d/CentOS-Base.repo yum clean all yum list
rpmforge
Centos/RHEL默认的yum软件仓库非常有限,仅仅限于发行版本那几张盘里面的常规包和一些软件包的更新,利用RpmForge,可以增加非常多的第三方rpm软件包。
获取
http://dag.wieers.com/rpm/packages/rpmforge-release/
找到与系统平台架构匹配的rpmforge包安装之即可。安装完后.默认会在系统的/etc/yum.repos.d/下新增两个文件,mirrors-rpmforge和rpmforge.repo
安装
# rpm -ivh rpmforge-release-0.3.6-1.el4.rf.i386.rpm # rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt加速yum更新速度
centos5 #yum -y install yum-fastestmirror centos4 yum -y install yum-plugin-fastestmirror
install softwarename ##安装softwarename repolist ##列出设定yum源信息 remove softwarename ##卸载softwarename list softwarename ##查看软件源中是否有次软件 list all ##列出所有软件名称 list installd ##列出已经安装的软件名称 list available ##列出可以用yum安装的软件名称 clean all ##清空yum缓存 search softwareinfo ##根据软件信息搜索软件名字 whatprovides filename ##在yum源中查找包含filename文件的软件包 update ##更新软件 history ##查看系统软件改变历史 reinstall softwarename ##重新安装 info softwarename ##查看软件信息 groups list ##查看软件组信息 groups info softwaregroup ##查看软件组内包含的软件 groups install softwaregroup ##安装组件 groups remove softwaregroup ##卸载组件在配置了新的yum源之后执行命令yum clean all来清除yum缓存,然后使用yum repolist列出设定yum源信息 注:当第一次使用yum或yum资源库有更新时,yum会自动下载所有所需的headers放置于/var/cache/yum目录下,所需时间可能较长.
yum remove ##进行软件卸载
yum history ##查看系统软件改变历史
yum list gcc ##查看软件源中是否有此软件
列出已经安装的软件、所有软件、可以通过配置的源进行安装的软件
yum list installed | head -n 10 yum list installed | head -n 10 yum list all | head -n 10 yum list available | head -n 10系统更新(更新所有可以升级的rpm包,包括kernel) #yum -y update 每天定期执行系统更新 #chkconfig yum on #service yum start rpm包的更新,检查可更新的rpm包 #yum check-update 更新所有的rpm包 #yum update 更新指定的rpm包,如更新kernel和kernel source #yum update kernel kernel-source 大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级 #yum upgrade rpm包的安装和删除 安装rpm包,如xmms-mp3 #yum install xmms-mp3 删除rpm包,包括与该包有倚赖性的包 #yum remove licq 注:同时会提示删除licq-gnome,licq-qt,licq-text yum暂存(/var/cache/yum/)的相关参数 清除暂存中rpm包文件 #yum clean packages 清除暂存中rpm头文件 #yum clean headers 清除暂存中旧的rpm头文件 #yum clean oldheaders 清除暂存中旧的rpm头文件和包文件 #yum clean 或#yum clean all 注:相当于yum clean packages + yum clean oldheaders rpm包列表 列出资源库中所有可以安装或更新的rpm包 #yum list 列出资源库中特定的可以安装或更新以及已经安装的rpm包 #yum list mozilla #yum list mozilla* 注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包 列出资源库中所有可以更新的rpm包 #yum list updates 列出已经安装的所有的rpm包 #yum list installed 列出已经安装的但是不包含在资源库中的rpm包 #yum list extras 注:通过其它网站下载安装的rpm包 *rpm包信息显示(info参数同list) 列出资源库中所有可以安装或更新的rpm包的信息 #yum info 列出资源库中特定的可以安装或更新以及已经安装的rpm包的信息 #yum info mozilla #yum info mozilla* 注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包的信息 列出资源库中所有可以更新的rpm包的信息 #yum info updates 列出已经安装的所有的rpm包的信息 #yum info installed 列出已经安装的但是不包含在资源库中的rpm包的信息 #yum info extras 注:通过其它网站下载安装的rpm包的信息 搜索rpm包 搜索匹配特定字符的rpm包 #yum search mozilla 注:在rpm包名,包描述等中搜索 搜索有包含特定文件名的rpm包 #yum provides realplay
#vi /etc/yum.conf #加上超时时间,时间长度可随意 timeout=120yum Existing lock错误的解决办法
方法一 etc/init.d/yum-updatesd stop 方法二 #rm -f /var/run/yum.pid主要原因就是yum在自动更新,只要关掉它就可以了。