23yum软件管理及创建方式
基于YUM的软件管理方式或方案
rpm软件包形式管理软件虽然方便,但是需要手动解决软件包的依赖关系,很多时候安装一个软件首先需要安装1个或多个(有时多至上百个)其它软件,手工解决时很复杂。使用YUM可以解决这些问题。 YUM(Yellowdog Updater, Modified)是一个RPM的前端程序,主要目的是设计用来自动解决RPM的依赖关系问题。其特点如下:
-自动解决依赖关系 (可以自动分局依赖关系进行递归的安装依赖关系的软件,前提是仓库里面有的) -可以对RPM进行分组,并基于组进行安装操作 (可以把RPM软件进行分析组,一次安装一组多个RPM软件)
-引入仓库概念,支持多个仓库(YUM引入了仓库(repo)的概念,仓库用来存放所有现有的rpm软件包,当使用yum安装一个rpm软件时,如果存在依赖关系,会自动在仓库中查找依赖软件并安装。仓库可以是本地的,也可以通过http、ftp或NFS形式使用集中的、统一的网络仓库。) -配置简单 Yum仓库的配置
yum使用仓库保存管理rpm软件包,仓库的配置文件保存在/etc/yum.repos.d/目录下,格式如下: [LinuxCast](仓库的简写名字,用大括号括起来)
name=This is LinuxCast.net rpm soft repo(名字,也是基本描述,主要是管理员自己去看) baseurl=http://www.linuxcast.net/yum/centos/6/i386/rpms(基本路径,可以使互联网上的仓库,也可以是本地的路径)本地的协议是file
enabled=1(是否启用,1代表启动,0代表不可用)
gpgcheck=1(是否打开校验,出于安全方面考虑,主流的操作系统都会对rpm包进行签名校验,生产环境下这个选项基本上或者说是绝对上都是打开的,1带包启动) 仓库可以使用file、http、ftp、nfs方式
yum配置文件必须以.repo结尾 (名字可以随便起,如果扩展名不对yum是不会读的) 一个配置文件内可以保存多个仓库的配置信息 /etc/yum.repos.d/目录下可以存在多个配置文件 yum软件管理的常用命令:
yum install software-name 安装指定软件 (虽然是使用yum进行安装,但是实际上仍然是使用的rpm的软件包进行封装安装的,yum仅仅是一个rpm的封装前台和环境。所以一切rpm的命令仍然可以对使用yum方法安装的软件进行操作。) yum remove software-name 卸载指定软件 yum update software-name 升级指定软件 通过以下命令使用yum进行查询操作:
21
yum search keyword 搜索
yum list (all | installed | recent |updates) 列出全部、已安装、最近、软件更新 yum info packagename 显示软件信息
yum whatprovides filename 查询哪个rpm软件包含目标文件
如何创建一个yum
首先收集到大量的rpm程序包,将他们统一放置在同一个新建的目录里面,比如我们的CentOS系统光盘里面的repodatap文件夹里面就放了大量的rpm包,一般的正常的程序基本上都能够找到,然后把这些程序包拷贝到之前创建的目录里面,之后这个步骤很关键也很烦人,就是之前提到的手动安装createrepo软件,注意要解决一大堆神烦人的依赖环境问题(我再安装的过程中还遇到了warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID*****什么的问题,解决方案是百度了个rpm --import /etc/pki/rpm-gpg/RPM*的代码解决的说是由于yum安装了旧版本的GPG keys造成的,之后就需要解决神烦的各种依赖环境的问题error: Failed dependencies(依赖环境错
误):python-deltarpm(需要解决的依赖环境)is needed by createrepo-0.9.9-18.el6.noarch,挨个装吧,烦的要死,一直到统统安装完成),然后运行createrepo(createrepo –v显示详细信息 yum仓库的路径)命令进行编译,在编译之后生成一个叫做repodata的文件目录在这个文件夹里面,这里面的东西不要动,是索引文件。然后到/etc/yum.repos.d的文件夹里面建立一个文件(注意这个文件的结尾扩展名必须是.repo,不然不好使)按照指定的格式建完,然后运行yum list命令(我也不知道为什么,据我猜测应该是仓库的索引信息,然后问题出来了,识别不出来,据我分析应该是之前的yum是基于网络上的,而我的Linux上不了网,所以弄不出来,我又把原来的那些.repo的文件剪切出来放置在桌面上了,然后再次运行就OK了)
yum为了提高速度会缓存很多信息,但是有时候缓存会造成一些故障,可以通过以下命令来清除缓存: yum clean all
每次运行安装或或查询类命令会重建yum缓存 check Check for problems in the rpmdb check-update 检查是否有软件包更新 clean 删除缓存的数据 deplist 列出软件包的依赖关系
distribution-synchronization Synchronize installed packages to the latest available versions
downgrade downgrade a package
erase 从系统中移除一个或多个软件包 groupinfo 显示组的详细信息 groupinstall 向系统中安装一组软件包 grouplist 列出可安装的组 groupremove 从系统中移除一组软件包
22
help 显示用法信息
history Display, or use, the transaction history info 显示关于软件包或组的详细信息 install 向系统中安装一个或多个软件包 list 列出一个或一组软件包
load-transaction load a saved transaction from filename makecache 创建元数据缓存
provides 查找提供指定内容的软件包 reinstall 覆盖安装一个包 repolist 显示已配置的仓库
resolvedep 判断哪个包提供了指定的依赖 search 在软件包详细信息中搜索指定字符串 shell 运行交互式的 yum 外壳 update 更新系统中的一个或多个软件包
update-minimal Works like update, but goes to the 'newest' package match which fixes a problem that affects your system
updateinfo Acts on repository update information upgrade 更新软件包同时考虑软件包取代关系
version Display a version for the machine and/or available repos.
23
百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库Linux学习笔记 -(5)在线全文阅读。
相关推荐: