用yum管理软件包
Yum是优秀的软件包管理工具,Yum是Fedora推荐的软件包管理工具。本文是基于Fedora的文档 “Managing Software with yum”翻译整理的,和原文一样,主要针对的是Fedora Core 4的用户,对于使用之前版本的用户,也会在相关地方提到。最直接的yum资源就是它的联机手册,man yum和man yum.conf。
关于Yum本地软件仓库建立和维护见前面的文章:
Yum仓库远程同步及本地库维护
基本概念
这里假定读者已稍具Linux基础,已成功安杂Fedora系统。
Fedora等发行版系统使用称之为RPM的软件包格式和工具管理系统中的众多各式各样的软件,通过RPM我们不仅可以查询,定位,升级和删除已安装的软件等最基本的操作,还可以进行很多高级的软件管理,例如验证软件包的合法性和完整性。yum是基于RPM系统的,它引入了一个软件 库(Repository)的概念,通过使用软件库,yum可以列出库中的可用软件包,更新本机的软件包以及其他的关于软件包管理的相关操作,最重要的是yum可以使用多个库,多个来源,省去了上网一个一个查找软件的麻烦。
对于Fedora发行版来说,默认已经为yum配置了三个可用的软件库,
*Fedora Core的正式发布库,包含Fedora正式发布版的软件;
*Fedora发布版升级库,包含相应发行版的升级软件包;
*Fedora发布版之外的额外库,包含众多没有纳入Fedora官方发行版的软件包;
%Fedora Core 4默认支持额外库,这之前的版本需要专门的设置;
%第三方软件库通过相应的设置也可以被支持;
%软件库支持分组特性,yum支持对分组的操作,通过yum grouplist查询分组情况;
软件包依赖关系
软件包之间存在的依赖关系是以为有些软件的正常运行需要一些系统库或其他软件相关软件的 支持,yum会帮我们很好的处理软件包的依赖关心,使用yum不必太在意这个问题。yum会在需要的时候提示我们安装需要的包,只要回答y/N就好了。
软件包的命名方式
一个RPM软件包的命名方式是这样规定的,
packagename-ver-buildrel.arch.rpm
分成几个部分,packagename就是他的包名字,ver是软件包的版本,而buildrel是该包的release号,同一个版本可以有多次build和release号,这比较多的出现在Update的库中,arch是该 包针对的硬件平台,常见的有i386等,如果这里是src,说明该包是源代码包,包含的是软件软代码,需要重编译才能使用,最后是后缀名rpm。
Fedora Core的默认安装有是个方式来操作RPM包;
yum是全能的前端软件包管理工具。
up2date是方便安装升级软件的工具,保证系统保持最新,这个工具更多是配置RedHat企业版Linux的RHN(RedHat Network)的用户使用,不建议Fedora用户使用。
system-config-packages(redhat-config-packages)这是推行界面的包管理工具,只要安装光 盘支持,界面很像系统安装时的软件包选择者界面。
rpm命令行,直接用rpm命令操作和管理RPM软件包当然是最直接最有效的方式,只要你清楚自己在干什么!!?
Yum可以为我们做得四件事情:
1、从软件仓库下载安装新软件;
2、安装单个的软件包;
3、更新软件包(从仓库中);
4、删除不需要的软件包;
Yum基本用法是
yum cmd [packagename|packagegroup]
有些命令必须要有操作包的名字,有些不需要;
具体的一些例子,
yum list openssh
该命令列出openssh包的情况,输出情况如下(具体视配置),
头几行是关于各个软件库的情况,像这里出了Fedora的基础库,update和extras库外,还有dag和livna两个第三方库,然后是openssh的情况,这个软件包已经安装了。yum
list 不参数运行会列出所有库中的所有可用包,这个列表肯定会很惊人。
yum install package
安装新的软件包,这之前可以list一下这个软件包和info命令看一下软件包具体的情况。yum
update package就是更新某个软件包,前提是更新包存在。yum remove
package是删除(卸载)软件包。
出了从list列表中查看所有的软件包外,yum提供了search命令,通过关键字从可用软件库中检索相关的软件包,yum同时也提供了更加精确的检索方法,yum
provides filename用来检索哪个包提供了名为filename的文件,还有一种方法就是yum
list 正则表达式,用这种方法查找名字符合正则表达式的包。
用yum一个一个升级安装包会很繁琐,更简单的方法是使用update命令不加任何参数的升级系统。通过设置自动任务可以让系统自动的更新系统,
#/sbin/chkconfig --level 345 yum on
#/sbin/service yum start
这个任务怎么运行的呢?问题还在于/etc/cron.daily/yum.cron,这个文件说明yum会一天被自动运行一次。
正如上面例子中提到的第三方仓库dag和livna,使用yum加入第三方仓库可以获取更多的工具和软件,扩展系统的能力。很多第三方软件库提供了于设置好的repo(仓库配置文件)或者是发 布了实用的rpm包,安装这些rpm包或把相关配置文件拷贝到/etc/yum.repos.d/下就可以使用该第三方库了。另外,如果手工拷贝repo文件的话,需要使用rpm命令导入该软件库的证书,以支持rpm验证。
rpm --import GPG-PUB-KEY.asc
rpm --import http://www.therepository.com/GPG-PUB-KEY.asc
第三方库的另外一个问题是与Fedora的兼容性,比较具体的情况还没怎么碰到过,不过问题肯 定存在。
维护yum本身
主要是yum clean
[headers|packages|all]清理cache和维护/etc/yum.repos.d/下的库配置文件。
关于Yum本地软件仓库建立和维护见前面的文章:
Yum仓库远程同步及本地库维护
基本概念
这里假定读者已稍具Linux基础,已成功安杂Fedora系统。
Fedora等发行版系统使用称之为RPM的软件包格式和工具管理系统中的众多各式各样的软件,通过RPM我们不仅可以查询,定位,升级和删除已安装的软件等最基本的操作,还可以进行很多高级的软件管理,例如验证软件包的合法性和完整性。yum是基于RPM系统的,它引入了一个软件 库(Repository)的概念,通过使用软件库,yum可以列出库中的可用软件包,更新本机的软件包以及其他的关于软件包管理的相关操作,最重要的是yum可以使用多个库,多个来源,省去了上网一个一个查找软件的麻烦。
对于Fedora发行版来说,默认已经为yum配置了三个可用的软件库,
*Fedora Core的正式发布库,包含Fedora正式发布版的软件;
*Fedora发布版升级库,包含相应发行版的升级软件包;
*Fedora发布版之外的额外库,包含众多没有纳入Fedora官方发行版的软件包;
%Fedora Core 4默认支持额外库,这之前的版本需要专门的设置;
%第三方软件库通过相应的设置也可以被支持;
%软件库支持分组特性,yum支持对分组的操作,通过yum grouplist查询分组情况;
软件包依赖关系
软件包之间存在的依赖关系是以为有些软件的正常运行需要一些系统库或其他软件相关软件的 支持,yum会帮我们很好的处理软件包的依赖关心,使用yum不必太在意这个问题。yum会在需要的时候提示我们安装需要的包,只要回答y/N就好了。
软件包的命名方式
一个RPM软件包的命名方式是这样规定的,
packagename-ver-buildrel.arch.rpm
分成几个部分,packagename就是他的包名字,ver是软件包的版本,而buildrel是该包的release号,同一个版本可以有多次build和release号,这比较多的出现在Update的库中,arch是该 包针对的硬件平台,常见的有i386等,如果这里是src,说明该包是源代码包,包含的是软件软代码,需要重编译才能使用,最后是后缀名rpm。
Fedora Core的默认安装有是个方式来操作RPM包;
yum是全能的前端软件包管理工具。
up2date是方便安装升级软件的工具,保证系统保持最新,这个工具更多是配置RedHat企业版Linux的RHN(RedHat Network)的用户使用,不建议Fedora用户使用。
system-config-packages(redhat-config-packages)这是推行界面的包管理工具,只要安装光 盘支持,界面很像系统安装时的软件包选择者界面。
rpm命令行,直接用rpm命令操作和管理RPM软件包当然是最直接最有效的方式,只要你清楚自己在干什么!!?
Yum可以为我们做得四件事情:
1、从软件仓库下载安装新软件;
2、安装单个的软件包;
3、更新软件包(从仓库中);
4、删除不需要的软件包;
Yum基本用法是
yum cmd [packagename|packagegroup]
有些命令必须要有操作包的名字,有些不需要;
具体的一些例子,
yum list openssh
该命令列出openssh包的情况,输出情况如下(具体视配置),
Setting up repositories
dag 100% |=========================| 1.1 kB 00:00
livna 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
updates-released 100% |=========================| 951 B 00:00
base 100% |=========================| 1.1 kB 00:00
Reading repository metadata in from local files
Installed Packages
openssh.i386 4.1p1-3.1 installed
dag 100% |=========================| 1.1 kB 00:00
livna 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
updates-released 100% |=========================| 951 B 00:00
base 100% |=========================| 1.1 kB 00:00
Reading repository metadata in from local files
Installed Packages
openssh.i386 4.1p1-3.1 installed
头几行是关于各个软件库的情况,像这里出了Fedora的基础库,update和extras库外,还有dag和livna两个第三方库,然后是openssh的情况,这个软件包已经安装了。yum
list 不参数运行会列出所有库中的所有可用包,这个列表肯定会很惊人。
yum install package
安装新的软件包,这之前可以list一下这个软件包和info命令看一下软件包具体的情况。yum
update package就是更新某个软件包,前提是更新包存在。yum remove
package是删除(卸载)软件包。
出了从list列表中查看所有的软件包外,yum提供了search命令,通过关键字从可用软件库中检索相关的软件包,yum同时也提供了更加精确的检索方法,yum
provides filename用来检索哪个包提供了名为filename的文件,还有一种方法就是yum
list 正则表达式,用这种方法查找名字符合正则表达式的包。
用yum一个一个升级安装包会很繁琐,更简单的方法是使用update命令不加任何参数的升级系统。通过设置自动任务可以让系统自动的更新系统,
#/sbin/chkconfig --level 345 yum on
#/sbin/service yum start
这个任务怎么运行的呢?问题还在于/etc/cron.daily/yum.cron,这个文件说明yum会一天被自动运行一次。
正如上面例子中提到的第三方仓库dag和livna,使用yum加入第三方仓库可以获取更多的工具和软件,扩展系统的能力。很多第三方软件库提供了于设置好的repo(仓库配置文件)或者是发 布了实用的rpm包,安装这些rpm包或把相关配置文件拷贝到/etc/yum.repos.d/下就可以使用该第三方库了。另外,如果手工拷贝repo文件的话,需要使用rpm命令导入该软件库的证书,以支持rpm验证。
rpm --import GPG-PUB-KEY.asc
rpm --import http://www.therepository.com/GPG-PUB-KEY.asc
第三方库的另外一个问题是与Fedora的兼容性,比较具体的情况还没怎么碰到过,不过问题肯 定存在。
维护yum本身
主要是yum clean
[headers|packages|all]清理cache和维护/etc/yum.repos.d/下的库配置文件。
Comments