最近在用Centos安装一些软件,由于上网时间有限,所以就准备将Centos安装的两张DVD作为本地源(这两张DVD包含了几乎所有我们能用到的包),然而事情并不简单,从网上搜了许多的教程许多都说的不是很清楚,所以我就有了系统的学习一下yum的想法。
yum(yellow dog manager),是一个给予rpm包的管理器,yum能够自动解决包的依赖关系,从而把我们从繁杂的包管理中解放出来,目前应用yum的系统主要有redhat,centos,Fedora等等,和yum相对应的另一个包管理器是apt(主要在ubuntu等发行版使用)。
0.什么是源?
说的简单一点,源就是一些软件包的集合,我们用windows下载软件都会到天空、太平洋,ZOL等网站寻找,那么这些网站就可以看做一个软件源。Linux管理的更加严谨一些,基本上会将我们寻找软件的网站都列出来(当然都是安全的网站了),然后将几乎所有的软件业做一个列表,当我们下载的时候就会根据这些文件下载,省去了我们到处寻找的麻烦,当然也安全多了。
1.怎样设置自己的源?
yum用的源仅仅是一个有一个活多个rpm包的文件夹,这个文件夹中还包含着一个必须的控制信息(比如包之间的依赖关系,文件列表等)。我们可以通过ftp/http或者直接用文件路径找到这些文件夹。下面是做自己的源的几个步骤:
(1)把自己搜集到的包放到一个文件夹中,这个文件夹可以有许多的子文件夹,但是所有的包含rpm安装包的文件都应该在这一个文件夹下
。我们要用这个文件夹创建我们的源。在这里我们假设吧搜集到的rpm包都放在了“/usr/local/repository"下面。
(2)yum通过rpm包中的信息摘要工作。这些信息可以通过“createrepo"程序搜集。如果你的机子上没有装,你可以通过
$yum install createrepo
来安装。安装完以后,我们可以通过执行:
$createrepo /usr/local/repository
执行完以后,我们就会发现里面多了几个文件,比如repodata,或则更多。
(3)现在我们的源已经做好了,但是yum还不能够用,因为yum不知道我们的源在哪里,所以我们要写一个文件告诉yum,我们的源在哪里。
yum主要通过/etc/yum.conf和/etc/yum.repos.d/里面的文件来访问源 。下面是一个”源文件“的格式:
[myrepo]
name=repository‘s name
baseusr=file:///usr/local/repository
将以上内容存为一个后缀名为repo的文件即可。
这里需要注意的是在本地可以直接访问的话用file,后面有3个”/",而不是两个,而http,ftp则是两个。
2.设置源的高级选项
(1)--database 加上这个选项后回产生一个.sqlite的数据库,这个是新版本才有的功能,如果是老版本的yum则会忽略这个数据库文件,
而读取.xml文件
(2)--unique-md-filenames 为所有的元文件起不同的名字,这尤其有用当你用的是镜像,及mirrors
(3) --changelog-limite 限制记录条目一节约下载时间。
(4)--update 当我们只更新一小部分rpm包时,往往加上这个选项节约时间。
在最后,为了大家更快的简单实用,下面列出了yum最常用的几个命令:
1.yum list [available|installed|extras|updates|obsoletes|all|recent] [pkgsspec]
列出来制定的软件包,这些软件包可以是可安装的,安装过的,附加的,升级的,废弃的,所有的,最近的等等。
$yum list installed
$yum list vim
2.yum install/remove/update/search
安装,卸载,升级,查找制定的软件包
3.yum makecache
这个命令比较有用,当我们更新“源文件”后,yum使用的仍然是保存在缓存中的源,所以我们更新一下源的缓存,一般来说
源改变以后,都要执行一下这个命令。
4.yum info
这个命令可以查看制定软件包的信息