Yum命令格式:
yum <options> <command> <package...>
参数说明:
options: 常用的有:
-y : 如果在工作过程中如要使用者响应,这个参数可以直接回答yes
command:
list : 列出在yum server 上面有的RPM套件;若执行yum list installed则表示只列出系统中已安装的软件包,yum list available则表示只列出软件仓库中可用(尚未安装)的软件包,yum list update则表示列出可以升级版本的软件包。
install: 安装某个套件
update : 升级某个套件,如果update后面没有接套件名称,即更新目前主机所有已安装的套件.
info : 列出某个套件的详细信息,相当于rpm -qi package内容
clean : 将已下载到本机的packages或headers移除
remove : 移除已经安装在系统中的某个套件
yum update 全部更新
yum update package 更新指定程序包package
yum check-update 检查可更新的程序
yum info <package> 显示安装包信息
yum list 显示所有已经安装和可以安装的程序包
yum list <package> 显示指定程序包安装情况
yum search <keyword>查找软件包,当需要根据某个关键词来查找相关的软件包时,可以执行yum search 关键词,默认仅根据软件包名称和描述信息进行搜索。若执行yum search all 关键词,可以扩大搜索范围,例如,以下将搜索软件仓库并列出与httpd相关的软件包。Yum search all httpd
yum clean headers 清除header
yum clean packages 清除下载的rpm包
yum clean all 清除header与rpm包
yum grouplist ,列出所有组
yum groupinstall 安装某个软件组如:yum groupinstall Virtualization 安装虚拟化
问题解决:
1、如果首次安装软件包之后,再次安装别的软件包的时候,很可能会发现报错了,错误信息如下:
Error: Cannot retrieve repository metadata (repomd.xml) for repository:
InstallMedia. Please verify its path and try again
其实,rhel6在首次读取改软件仓库之后,会把原本光盘根目录下,也就是一同被你拷贝到软件仓库目录的media.repo复制一份到/etc/yum.repos.d/,而该文件也就是导致本地yum源失效的罪魁祸首。
解决方法:
删除软件仓库中的media.repo
# rm -f /etc/yum.repo.d/media.repo
出现public key for …….rpm is not install
解决方法:导入完整性验证的公钥
#mount /dev/sr0 /mnt
#rpm –-import /mnt/RPM-GPG-KEY-redhat-release
对于本地yum,配置为完成后最好把光盘卸载,就不会再出现此类情况了!!
本地YUM(光盘源)
直接将rhel6的光盘放入光驱中,并挂载到一个目录上,例如挂载到/media目录下
在/etc/yum.repos.d目录下创建一个以.repo结尾的文件:
配置内容参照硬盘源的YUM,此处略过
清理YUM缓存
yum clean all
验证本地YUM安装包
B):网络YUM(通过FTP或HTTP协议方式实现网络YUM安装RPM包)
在Linux主机中使用YUM客户端工具在线升级、安装软件时,由于受到网络连接速度、网络带宽的限制,往往给用户安装带来不必要的麻烦。但是如果在局域网中构建一个基于本地的YUM源服务器,则可以大大解决用户安装软件速度较慢的问题
通过FTP方式:(方式1:硬盘源)
实现步骤:
YUM服务器端配置:
推荐步骤:
(1)安装vsftpd服务软件包
或者使用rpm方式
Rpm -ivh /media/ Packages/vsftpd…………………..
(2)将RHEL6光盘中的所有内容复制到本地硬盘相关目录下,如/var/ftp/rhel6(/var/ftp目录为vsfftp软件的默认访问点)
#mkdir /var/ftp/rhel6
#mount /dev/cdrom media
#cp /media/* var/ftp/rhel6
(3)启动vsftpd服务:
service vsftpd start
chkconfig vsftpd on
注意:防火墙规则和模块的加载
Iptables -I INPUT -p tcp --dport 21 -j ACCEPT //建立允许21端口通信规则
Vim /etc/sysconfig/iptables-config //添加被动访问模块
Service iptables save //保存规则
Service iptables restart //重启防火墙
(4)在另一台客户端测试,首先创建repo文件指定YUM源位置,我直接用scp工具将(sshd服务要启动)服务器的repo文件复制到了客户端的yum.repo.d/目录下了,然后做修改
安装ftp工具
Rpm -ivh ftp-。。。。。(tab键补齐)
将之前服务器端的yum.repo文件使用scp工具复制过来一份
vi /etc/yum.repos.d/server.repo,注意文件的扩展名要以repo结尾,因为使用的是ftp的方式所以repo文件内容要做如下修改。
[Server]
name=Red Hat Enterprise Linux base
baseurl=ftp://192.168.1.1/rhel6/Server//因为ftp默认的访问点就是/var/ftp目录,192.168.1.1为yum服务器地址
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[HighAvailability]
name=Red Hat Enterprise Linux base
baseurl=ftp://192.168.1.1rhel6/HighAvailability
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[LoadBalancer]
name=Red Hat Enterprise Linux base
baseurl=ftp://192.168. 1.1/rhel6/LoadBalancer
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[ResilientStorage]
name=Red Hat Enterprise Linux base
baseurl=ftp://192.168. 1.1/rhel6/ResilientStorage
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
(5)在客户端上安装RPM包,如samba
注意:若YUM服务器开启了selinux功能,客户端通过YUM安装会失败
解决方法1:关闭selinux功能,执行setenforce 0命令 //临时关闭
/usr/bin/setenforce 修改SELinux的实时运行模式
setenforce 1 设置SELinux 成为enforcing模式
setenforce 0 设置SELinux 成为permissive模式
如果要彻底禁用SELinux 需要在/etc/sysconfig/selinux中设置参数selinux=0
方法2:setsebool allow_ftpd_full_access on
若YUM服务器开启了防火墙,客户端通过YUM安装会失败
解决方法1:关闭iptables
方法2:在INPUT规则链上创建允许FTP访问的规则。
最后在客户端用yum安装软件
通过FTP方式:(方式2:光盘源)
YUM服务器端配置:(IP:192.168.0.2)
先将RHEL6系统光盘挂载到/var/ftp/rhel6目录下
确保vsftpd服务启动
YUM客户端配置:(IP:192.168.1.1)
在/etc/yum.repos/目录下创建一个以.repo为后缀的文件,内容如下:
[Server]
name=Red Hat Enterprise Linux base
baseurl=ftp://192.168. 1.1/rhel6/Server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[HighAvailability]
name=Red Hat Enterprise Linux base
baseurl=ftp://192.168. 1.1/ rhel6/HighAvailability
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[LoadBalancer]
name=Red Hat Enterprise Linux base
baseurl=ftp://192.168. 1.1/ rhel6/LoadBalancer
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[ResilientStorage]
name=Red Hat Enterprise Linux base
baseurl=ftp://192.168.1.1/ rhel6/ResilientStorage
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
在客户端上测试
2、通过HTTPD方式:与ftp方式类似
(1)安装Apache服务器软件,并开启服务;
(2)防火墙创建允许80的规则;
(3)将光盘中的软件包复制到/var/www/html/目录下
(4)修改客户机yum.repo文件;根据上述实验的结果,在客户端可以直接修改,
(:% s/ftp/http/)将ftp替换为http
(5)安装软件测试结果
若使用上述的实验环境,因为之前安装过samba软件,需要yum -y remove samba命令先卸载掉。
非RHEL6光盘的更多其他软件包
对于用户搜集的非RHEL6光盘的更多其他软件包(必须包括存在依赖关系的所有安装文件)除了应准备相应的目录以外,还需要手动创建repodata数据文件,这就要用到createrepo工具(RHEL6光盘中有)
以RHEL6安装光盘中Packages/目录的RPM包为例:
安装createrepo工具:
createrepoa主要用于收集目录中的rpm包文件的头信息,以创建repodata软件仓库数据(经gzip压缩的xml文件)。
mount /dev/cdrom /var/www/html/rhel6 //挂载光盘
yum –y install /var/www/html/rhel6/Packages/createrepo-0.9.8-4.el6.noarch.rpm
注意:安装createrepo包时要依赖以下两个包:deltarpm和python-deltarpm,不能忽略这两个包
安装FTP服务器:
rpm -ivh /mnt/Packages/vsftpd-2……..(按TAB键自动补齐)
配置软件仓库目录:
可参考安装光盘的Server目录
mkdir /var/ftp/rhel6/Packages
mkdir /var/ftp/rhel6/repodata
从光盘把所有的RPM包复制到/var/ftp/pub/Packages目录下(要确保硬盘有足够的磁盘空间)
cp - a /mnt/Packages/* /var/ftp/pub/Packages/
创建软件仓库信息文件:
cd /var/ftp/pub/
createrepo --database ./
[root@server pub]# ls repodata/
filelists.sqlite.bz2 other.sqlite.bz2 primary.sqlite.bz2 repomd.xml
filelists.xml.gz other.xml.gz primary.xml.gz
可以看到已经创建好了相应的软件仓库信息文件
在客户端上创建扩展名为.repo的文件,内容参考上面的有产设置。
|