rpm
rpm是Redhat Package Manager的缩写,是Linux的特有的软件包的管理工具,可以很大程度上方便我们安装软件包。当然现在的大部分包都可以使用yum来方便的安装,但rpm在此之前,确实是一种非常方便的工具,基本上所有使用Redhat Linux的人都对它相当熟悉。
首先我们来回顾一下软件包包含的内容
- 二进制文件 安装路径:/bin,/sbin,(启动必须) /usr/bin ,/usr/sbin(运行必须) /usr/local/bin ,/usr/local/sbin (第三方软件)
- 配置文件(纯文本) 安装路径:/etc ,/usr/local/etc
- 库文件 安装路径: /lib ,/usr/lib ,/usr/local/lib , /usr/X11/lib
- 帮助文件 安装路径: /usr/share/doc ,/usr/share/man ,/usr/share/man
软件包的specs,记录了软件包作者对文件安装路径的指定
rpm的数据数据库:记录了每个文件安装的指纹信息,软件的重要性,软件安装后的改动信息.位于/var/lib/rpm 下
rpm的选项
-q 查询 -i安装 -e 卸载 -V 校验 -U/-F 更新
--force 忽略冲突 --nodeps 忽略依赖关系 --oldpackage 降级
-ivh 以每个#号2%的显示安装 --test 测试(不安装)
--nosignature 指定不需签名
-Uvh升级时,老版本安装过则更新,否则安装老版本在更新
-Fvh升级时,若老版本没安装则停止更新
-qa显示安装的全部软件包 -qf filename 查询文件属于哪个软件包
-ql packagename 查询软件包安装的文件(安装过后)
-qpl packagename 查询软件包安装的文件(未安装前,p指定全路径)
-qi packagename 软件包的信息(安装过后)
-qpl packagename 软件包的信息(未安装前,p指定全路径)
内核更新时必须使用-ivh命令安装,不能使用-Uvh或者-Fvh,否则会产生内核与软件部匹配的问题。
yum
yum是yellow dog update manager 的缩写,由于我们在安装包是会出现许多依赖关系,所以当我们安装某个软件包时,系统会提示我们应该安装哪一个包,而当我们去安装那个软件包时有可能会需要安装另外的包,所以这是一个非常让人头痛的问题。而yum就很好的解决了这个问题,它是由客户端和yum源库组成的。我们需要在客户端安装yum客户端包,并且需要配置一下客户端配置文件,对于yum源来说,它一般存放了所有可能需要的软件包,并且库中建立了个软件包的依赖关系,并将相同类别的服务分组。
首先我们看一下本地客户端的配置文件
我在这里给定的是一个基于ftp获取软件包的yum源,
yum获取软件包的方式 一般为ftp://,http://,nfs及本地file:///.
客户端配置文件格式都是一样的, 只是在baseurl选项中要更改获取的方式.
每个[],就是一个yum源.配置文件在/etc/yum.repo.d/下,可以有多个repo文件,但必须以repo结尾.
gpgcheck=0表示不检查签名信息.enabled=1表示可以的yum源,一般可以省略不写,当值为0时,表示指定某个yum源停用.
当我们设置好客户端配置文件时,我们就可以进行下一步了.首先我们得清除一下原yum客户端的缓存(第一次安装时可能没有),使用yum clean all选项可以一劳多逸,然后我们需要更新一下软件包的信息,使用yum list all
然后我们会显示yum源中的软件包.完成后我们就可以安装软件包了.
yum的参数
install (非全名) 安装软件包 info 查看软件包的摘要信息
remove/erase 删除包 (使用remove时注意,它会删除所有有依赖关系的包)
groupinstall 安装软件包组 groupinfo groupremove
grouplist 查看软件包组
localinstall 安装本地软件包(yum可解决依赖关系)
reinstall重新安装 serach 软件包的简要信息(不精确)
check-update 检查可更新的包 repolist 已安装好yum库
-y 不询问安装 -q 静默模式安装 -d调试级别
-t忽略已安装的包(安装多个包时,否则后面的包都不安装)]
--nogpgcheck指定不需要验证签名信息
yum两个常用的参数
list all 显示所有软件包(可使用通配符搜索) list "na*"
available 所有可安装的包
update 可升级的包
installed 已安装的包
exeras 额外的包(不属于yum库的包)
obletes 已过时的包
recent 刚加入yum库的包
clean all 清空所有信息
package 清空软件包信息
headers 首部 ,包的依赖关系
dbcahe 软件包的元数据信息(数据库)
创建本地yum源
我使用的是5.4的光盘,使用光盘内的软件包.
首先我们建立/media/cdrom用于挂在光驱
建立/var/yum/作为yum源的目录
挂载光盘 mount /dev/cdrom /media/cdrom
拷贝光盘文件cp -r /media/cdrom/* /var/yum
修改文件的权限chmod -R u+w /var/yum
安装createrepo包 (本地已安装时可省略此步)
rpm -ivh /media/cdrom/Server/createrepo…
建立yum源元数据信息
createrepo -g /var/yum/Server/repodata/comps......
/VT/
/Cluster/
/ClusterServer/
修改yum客户端配置文件
[Server]
name= Instructor Server Repository
baseurl=file:///var/yum/Server
gpgcheck=0
[VT]
name=Instructor VT Repository
baseurl=file:///var/yum/VT
gpgcheck=0
[Cluster]
name= Instructor Cluster Repository
baseurl=file:///var/yum/Cluster
gpgcheck=0
[ClusterStorag]
name=Instructor ClusterStorag Repository
baseurl=file:///var/yum/ClusterServer
gpgcheck=0
清除yum源信息并更新 yum clean all yum list all
测试安装httpd服务 yum install httpd
结束