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服务软件包

linux的Yum的安装_server

或者使用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

linux的Yum的安装_linux_02

(3)启动vsftpd服务:

service vsftpd start

chkconfig vsftpd on

linux的Yum的安装_linux_03

注意:防火墙规则和模块的加载

Iptables -I INPUT -p tcp --dport 21 -j ACCEPT //建立允许21端口通信规则

Vim /etc/sysconfig/iptables-config //添加被动访问模块

linux的Yum的安装_详细信息_04

Service iptables save //保存规则

Service iptables restart //重启防火墙

(4)在另一台客户端测试,首先创建repo文件指定YUM源位置,我直接用scp工具将(sshd服务要启动)服务器的repo文件复制到了客户端的yum.repo.d/目录下了,然后做修改

安装ftp工具

Rpm -ivh ftp-。。。。。(tab键补齐)

linux的Yum的安装_server_05

将之前服务器端的yum.repo文件使用scp工具复制过来一份

linux的Yum的安装_server_06

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

linux的Yum的安装_server_07

(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

linux的Yum的安装_server_08

若YUM服务器开启了防火墙,客户端通过YUM安装会失败

解决方法1:关闭iptables

方法2:在INPUT规则链上创建允许FTP访问的规则。

最后在客户端用yum安装软件

linux的Yum的安装_available_09

通过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服务器软件,并开启服务;

linux的Yum的安装_详细信息_10

(2)防火墙创建允许80的规则;

linux的Yum的安装_server_11

(3)将光盘中的软件包复制到/var/www/html/目录下

linux的Yum的安装_server_12

(4)修改客户机yum.repo文件;根据上述实验的结果,在客户端可以直接修改,

(:% s/ftp/http/)将ftp替换为http

linux的Yum的安装_server_13

(5)安装软件测试结果

linux的Yum的安装_server_14

若使用上述的实验环境,因为之前安装过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

linux的Yum的安装_详细信息_15

注意:安装createrepo包时要依赖以下两个包:deltarpm和python-deltarpm,不能忽略这两个包

安装FTP服务器:

rpm -ivh /mnt/Packages/vsftpd-2……..(按TAB键自动补齐)

linux的Yum的安装_详细信息_16

配置软件仓库目录:

可参考安装光盘的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的文件,内容参考上面的有产设置。