yum在线管理
rpm包的管理分为 rpm命令管理和yum在线管理,rpm命令管理由于可能需要解决各种依赖问题,在安装软件的时候可能显得比较麻烦,然而,yum在线管理正好和它相反。Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。SO,SO,SO它用起来是相当的方便,特别适合初学者使用。 不过yum的安装源可以是网上的,也可以是光盘上的呢,要是我们使用网络上的yum源,那么,这些yum源来自于哪里呢?在我们的/etc/yum.repo.d/目录下,我们可以看到我们可以使用的yum源,如果/etc/yum.repos.d/里的所有文件不改动,默认启用网络yum源,如果把除CentOS-Media.repo以外的yum源暂时修改,并将CentOS-Media.repo里面的内容做下修改,就能启用本地光盘yum源
一般,只要我们的网络连通, 上面的yum源都是合法的yum源。一般在有网络的情况下,默认会从“Base”yum源中下载我们需要的rpm包以及各种依赖包进行自动安装,在没有网络的情况下,则会选择“Media”yum源——本地光盘yum源.
/etc/yum.repos.d/
CentOS-Base.repo
CentOS-Debuginfo.repo
CentOS-Media.repo
CentOS-Vault.repo
其中CentOS-Base.repo用于网络yum源的配置
CentOS-Media.repo 用于光盘yum源的配置
除了上面的方法外,我们还可以自己手动写一个yum源配置,方法十分的简单,首先我们要在 创建一个后缀为repo的文件,至于这个文件的名字,我们可以自己随意起名,比如我起的名字是:
[root@CT71 ~]#vim locate.repo
接下来我们需要知道在这个文件里面都写什么东西:
[base] 容器名称,一定要放在[]里(必须写,一般第一个我们默认写成base)
name 容器说明,可以自己写(可以不写)
mirrorlist 镜像站点,可以注释掉(可以不写)
baseurl 我们yum源的地址。默认是centOS官方的yum源服务器,是可以使用的(必须写)
enabled 如果enabled=1或者不写,此容器都是生效的,enabled=0容器无效(默认是1)
gpgcheck 如果是1 则RPM数字证书生效,如果是0不生效
gpgkey 数字证书的公钥文件保存位置,不用管
enablegroups={1|0}开启组
failovermethod={roundrobin|priority}
roundrobin: 意为随机挑选,默认值
priority:按顺序访问 cost= 默认为1000
在上面的说明中,baseurl的值就是我们的yum源的路径,它不能识别空格,所以路径中有空格的要用“\”进行转译,我们所要获取的软件包都是从这个路径里面来的,由于yum的最大作用就是为了解决我们的依赖问题,所以在我们的路径打开后我们需要能够看到一个名字为repodata的目录,这里面记录的就是我们安装文件需要的依赖,要想repo可以使用,其实很简单,我们以一个简单的例子试下就知道了:
挂载光驱:
[root@CT71 yum.repos.d]#df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda2 52403200 4811976 47591224 10% / /dev/sda3 52403200 339132 52064068 1% /app /dev/sda1 1038336 172128 866208 17% /boot /dev/sr0 8086368 8086368 0 100% /mnt/cdrom [root@CT71 yum.repos.d]#
[root@CT71 yum.repos.d]#ll /mnt/cdrom/ total 1550 -rw-r--r--. 1 root root 14 Dec 5 2016 CentOS_BuildTag drwxr-xr-x. 3 root root 2048 Dec 5 2016 EFI -rw-r--r--. 1 root root 215 Dec 10 2015 EULA -rw-r--r--. 1 root root 18009 Dec 10 2015 GPL drwxr-xr-x. 3 root root 2048 Dec 5 2016 images drwxr-xr-x. 2 root root 2048 Dec 5 2016 isolinux drwxr-xr-x. 2 root root 2048 Dec 5 2016 LiveOS drwxrwxr-x. 2 root root 1548288 Dec 5 2016 Packages drwxrwxr-x. 2 root root 4096 Dec 5 2016 repodata -rw-r--r--. 1 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-7 ------------------------------------校验码 -rw-r--r--. 1 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-Testing-7 -r--r--r--. 1 root root 2883 Dec 5 2016 TRANS.TBL
1 [base] 2 name=my own yum 3 baseurl=file:///mnt/cdrom/
[root@CT71 yum.repos.d]#yum repolist Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile repo id repo name status base my own yum 9,363 repolist: 9,363
是不是感觉很简单,但是这样是有一个问题的,那就是我们无法对安装包进行各种验证,无法保证我们的安装包是安全的,也是是说我们需要对我们安装的包进行校验,校验,就是要验证包来源的合法性和完整性。这很重要,能够保证我们安装的软件没有被人修改过,我们上面做的那个小示例是没有进行校验的,是存在安全性问题的。
rpm包的校验是基于非对称加密方式的,通过秘钥对我们的软件包进行校验,如果人为的修改软件包,就无法针对秘钥验证成功手动验证方式我们参考rpm包管理。这里我们就说一下如何在域名配置中添加校验:
我们在上面的代码中有一个校验码,一般的yum仓库都会有这个校验码,用于我们在安装软件的时候进行校验。我们以一个小例子说明如何写这个repo:
1 [base] 2 name=my own yum 3 baseurl=file:///mnt/cdrom/ 4 enable=1