转载linux
分类: Linux操作系统
2016-03-30 09:47:54
在Linux系统中如果安装rpm软件包,有时候总是需要解决相应的依赖关系,而使用YUM仓库就可以轻松完成安装、卸载、自动升级rpm软件包等任务,主要可以自动查找并解决rpm包之前的依赖关系。
YUM仓库有三种部署方式:FTP、HTTP和本地方式
一、本地yum源
1、挂载光驱并进行开机自动连接
[root@localhost ~]# echo "/dev/sr0 /mnt iso9660 defaults 0 0" >> /etc/fstab
[root@localhost ~]# mount -a
[root@localhost ~]# mout | grep "/dev/sr0"
2、配制本地yum仓库:
[root@localhost ~]# cd /etc/yum.repos.d/ //yum源配置文件放置目录
[root@localhost yum.repos.d]# rm -rf * //删除系统默认yum配制文件
[root@localhost yum.repos.d]# vim CentOS-Media.repo //编辑本地yum源文件
[CentOS 6-media]
name=CentOS-$releasever - Media //本地yum源名称(可随意修改)
baseurl=file:///mnt //本地yum源地址
gpgcheck=1
enabled=1 //使用此yum源(等于0为不启用)
gpgkey=file:///mnt/sr0/RPM-GPG-KEY-CentOS-6 //本地yum源密钥
3、清空并重建缓存
# yum clean metadata //清除以前的缓存
# yum makecache //重新建立缓存
# yum update
二、FTP方式yum源
1.首先挂载系统光盘,在YUM仓库服务器上安装ftp服务并启动
[root@localhost ~]# rpm -ivh /media/Packages/vsftpd-2.2.2-11.el6_4.1.x86_64.rpm
[root@localhost ~]# service vsftpd start && chkconfig vsftpd on
添加两条防火墙规则
[root@localhost ~]# iptables -I INPUT -p tcp --dport 21 -j ACCEPT
[root@localhost ~]# modprobe ip_contrack_ftp
2.配置YUM仓库服务器(这里的IP地址:192.168.1.63)
首先在ftp目录下创建一个YUM仓库目录,并将需要做成YUM仓库的rpm软件包复制到该目录下
[root@localhost ~]# mkdir -p /var/ftp/CentOS
[root@localhost ~]# cp -rf /mnt/* /var/ftp/Centos/
然后在该目录下手动创建repodata数据文件,在创建repodata数据文件之前,需要先将创建repodata数据文件的工具安装上。使用的工具是createrepo,注意这个包有依赖关系
[root@localhost ~]# rpm -ivh /media/Packages/createrepo-0.9.9-18.el6.noarch.rpm
安装好createrepo工具后,就可以在YUM仓库目录中创建repodata数据文件了
[root@localhost ~]# createropo --database /var/ftp/CentOS
3.配置YUM仓库客户端
第一次配置需要将/etc/yum.repos.d/目录下内容删除,并新建一个以“.repo”结尾的文件,文件内容如下:
[root@localhost ~]# rm -rf /etc/yum.repos.d/*
[root@localhost ~]# vim /etc/yum.repos.d/Centos.repo
[base] //仓库名称
name=CentOS - Base //仓库描述信息
baseurl=ftp://192.168.1.63/Centos //指定yum仓库访问路径
enabled=1 //是否开启此仓库
gpgcheck=0 //是否检查软件包的签名,0为不检查
4.安装rpm软件包测试
[root@localhost ~]# yum -y install httpd
这样以FTP方式访问的YUM仓库就建立好了
[root@localhost ~]# yum repolist //查询当前可用的yum源,也就是YUM仓库
1、163的yum源
1)、将/etc/yum.repos.d/下的所有内容清空
# rm -rf /etc/yum.repos.d/*
# cd /etc/yum.repos.d/
# wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
2)、把CentOS-Base-163.repo中$releasever改为6.7按ctl+G在vim末行模式执行
:%s/$releasever/6.7/g
:wq //保存退出
注意:需要把CentOS-Base-163.repo中的$releasever改为6.7,如果不改重建缓存时会出现以下错误:[Errno 14] PYCURL ERROR 22 "The requested URL returned error: 404"
3)、清空并重建缓存
# yum clean metadata //清除以前的缓存
# yum makecache //重新建立缓存
# yum update2、中国科大yum源:
# wget http://centos.ustc.edu.cn/CentOS-Base.repo
# mv CentOS-Base.repo CentOS-Base-ustc.repo
# cat CentOS-Base-ustc.repo
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://centos.ustc.edu.cn/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#released updates
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl=http://centos.ustc.edu.cn/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
baseurl=http://centos.ustc.edu.cn/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
baseurl=http://centos.ustc.edu.cn/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
baseurl=http://centos.ustc.edu.cn/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
3、Sohu的yum源:
# wget http://mirrors.sohu.com/help/CentOS-Base-sohu.repo
[base]
name=Red Hat Enterprise Linux $releasever -Base
baseurl=http://mirrors.sohu.com/centos/$releasever/os/$basearch/
gpgcheck=1
[update]
name=Red Hat Enterprise Linux $releasever -Updates
baseurl=http://mirrors.sohu.com/centos/$releasever/updates/$basearch/
gpgcheck=1
[extras]
name=Red Hat Enterprise Linux $releasever -Extras
baseurl=http://mirrors.sohu.com/centos/$releasever/extras/$basearch/
gpgcheck=1
[addons]
name=Red Hat Enterprise Linux $releasever -Addons
baseurl=http://mirrors.sohu.com/centos/$releasever/addons/$basearch/
gpgcheck=1
4、阿里云yum源:
阿里云是最近新出的一个镜像源。得益与阿里云的高速发展,这么大的需求,肯定会推出自己的镜像源。
阿里云Linux安装镜像源地址:http://mirrors.aliyun.com
CentOS 5
wget -O /etc/yum.repos.d/CentOS-Base-aliyun.repo http://mirrors.aliyun.com/repo/Centos-5.repo
CentOS 6
wget -O /etc/yum.repos.d/CentOS-Base-aliyun.repo http://mirrors.aliyun.com/repo/Centos-6.repo
1)、安装yum优先级插件
# yum install yum-priorities
2)、epel简介: https://fedoraproject.org/wiki/EPEL/zh-cn
# rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
以上URL按实际情况修改
3)、查看是否安装成功
# rpm -q epel-release
4)、导入key:
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
5)、修改/etc/yum.repos.d/epel.repo文件
在[epel]最后添加一条属性 priority=11
# vim /etc/yum.repos.d/epel.repo
意思是yum先去官方查源,官方没有再去epel的源找
6)、重建缓存
# yum makecache
理论上讲,以上这些yum源redhat系统以及fedora也是可以用的,但是没有经过测试,需要自己测试一下。
四、yum管理及参数
包安装与删除
yum install package_name #安装yum源中的包
yum remove package_name #卸载包
yum groupinstall group1 #安装程序组group1
yum groupremove group1 #卸载程序组group1
yum localinstall *.rpm #安装本地的rpm包
包搜索
yum search package_name #搜索特定包
yum provides name #搜索包含特定文件名的包
包列表
yum list #列出所有安装或更新的包
yum list name #列出指定包
yum list updates #列出可更新包
yum list installed #列出已安装包
yum list extras #列出已安装但不包含在资源库中的包
yum info package_name #显示安装包信息
包的更新
yum check-update #检查可更新包:
yum update #更新所有包
yum update package_name #更新指定包
yum upgrade #版本升级
清除缓存
yum clean packages #清除缓存目录下的软件包
yum clean headers #清除缓存目录下的 headers
yum clean oldheaders #清除缓存目录下旧的 headers
yum clean, yum clean all (等于yum clean packages; yum clean oldheaders) #清除缓存目录下的软件包及旧的headers
yum特殊参数
--installroot=root #指定安装软件时的根目录
--enablerepo=repoidglob #暂时启用某个下载源
--disablerepo=repoidglob #暂时停用某个下载源
--exclude=package #排除某个软件包
--noplugins #暂时停用所有插件
--disableplugin=plugin #暂时停用指定的插件