章节目录
CentOSPlus存储库
1. 什么是CentOSPlus存储库
该 CentOSPlus 存储库包含的包是对CentOS base+CentOS updates存储库中的包的升级。这些软件包不是上游发行版的一部分,并以牺牲上游兼容性为代价扩展了CentOS的功能。启用此存储库会使CentOS与上游有所不同。在启用CentOSPlus之前,您应该了解此含义。您可以在我们的镜像上浏览CentOSPlus目录中的CentOS 6,CentOS 7 或CentOS 8,以了解要使用的体系结构。
该CentOSPlus库包含组包,所有这些都更新。您可能不希望整体启用CentOSPlus,而是希望选择要使用的确切软件包。
在启用 CentOSPlus 存储库之前,您应该阅读有关yum中的includepkgs=
和/或exclude=
选项的信息。要了解这些选项,请在命令行中使用以下命令:
man yum.conf
2. 启用CentOSPlus储存库
要启用 CentOSPlus 存储库,请编辑文件/etc/yum.repos.d/CentOS-Base.repo
并查找[centosplus]
部分。默认情况下如下所示:
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 <== -CentOS-6 in CentOS-6
-
例1: 我们想要带有mysql_pgsql支持的新CentOSPlus后缀。这是设置
/etc/yum.repos.d/CentOS-Base.repo
的方法:#additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5 includepkgs=postfix-* exclude=postfix-*plus*
您还希望将其添加到
/etc/yum.repos.d/CentOS-Base.repo
的[base]
和[update]
部分,以便不再从那里获取postfix软件包:exclude=postfix-*
-
例2:我们要使用CentOSPlus内核来使用jfs或reiserfs文件系统以及创建工具。我们将编辑
/etc/yum.repos.d/CentOS-Base.repo
并在[centosplus]
部分中修改以下内容:enabled=1 includepkgs=kernel* jfsutils reiserfs-utils
在
[base]
和[update]
部分中,您将执行以下操作:exclude=kernel kernel-devel kernel-PAE-*
3. yum-plugin-priorities
保护系统免受CentOSPlus存储库更新的另一种方法是使用yum-plugin-priorities插件。这是推荐的方法。按照链接中显示的说明进行操作,并设置yum-plugin-priorites
。编辑/etc/yum.conf
并添加以下行:
plugins=1
您将在/etc/yum.repos.d/CentOS-Base.repo
中设置优先级,如下所示:
[base]
exclude=foo bar
priority=1
[update]
exclude=foo bar
priority=1
[centosplus]
enable=1
priority=2
这将使[base]
和[update]
存储库比[centosplus]
存储库具有更高的优先级,因此CentOSPlus中唯一将更新[base]
或[update]
的项目是那些使用exclude=
设置从这些存储库中排除的项目。
因此,使用yum plugin priorities
可以跳过在CentOS-Base.repo
的[centosplus]设置的includepkgs=
部分,但它仍然只允许更新从[base]和[update]存储库中exclude=
的包。
4. CentOSPlus内核差异
通常,关于CentOSPlus内核与默认(基本)内核到底有什么不同的问题?随着新内核的发布,这可能会有所不同,但是(下文)是一种获取配置差异的详细列表的方法。您将需要同时安装默认版本和Plus版本的内核源。然后,在shell提示符下运行:
diff -y --width=80 --suppress-common-lines -b -B -d \
/<path/to/default/kernel source>/.config \
/<path/to/Plus/kernel/source>/.config
如下所示,针对本文撰写的版本(2015年8月)的上述命令的输出应使您对CentOSPlus内核中包含的更改(主要是其他驱动程序和扩展驱动程序选项)有一个清晰的了解,但是您需要运行上面的命令查看当前列表。(Key: > = insert, < = deletion, | = change)从内核源代码树的顶层目录,make menuconfig将解释每个选项的含义。
# diff -y --suppress-common-lines -b -B -d 2.6.32-573.3.1.el6.x86_64/.config 2.6.32-573.3.1.el6-centos-plus/.config
# awk '{
# gsub(/\t/," ");
# i=split($0,myarray,/[<|>]/);
# match($0,/([>|<])/,separray);
# gsub(/[ ]*$/,"",myarray[1]);
# printf("%-40s%2s%-40s\n",myarray[1],separray[0],myarray[2]);
# }' config-diff.txt > config-diff.txt.edit
#
# Linux kernel version: 2.6.32-573.3.1.el6.x86_64 | # Linux kernel version: 2.6.32-573.3.1.el6.centos.plus.x86_64
# Thu Aug 13 22:49:26 2015 | # Fri Aug 14 00:54:22 2015
# CONFIG_ARPD is not set | CONFIG_ARPD=y
# CONFIG_IPX is not set | CONFIG_IPX=m
# CONFIG_ATALK is not set | CONFIG_IPX_INTERN=y
> CONFIG_ATALK=m
> CONFIG_DEV_APPLETALK=m
> CONFIG_IPDDP=m
> CONFIG_IPDDP_ENCAP=y
> CONFIG_IPDDP_DECAP=y
# CONFIG_IRDA is not set | CONFIG_IRDA=m
> # IrDA protocols
> CONFIG_IRLAN=m
> CONFIG_IRNET=m
> CONFIG_IRCOMM=m
> CONFIG_IRDA_ULTRA=y
> # IrDA options
> CONFIG_IRDA_CACHE_LAST_LSAP=y
> CONFIG_IRDA_FAST_RR=y
> # CONFIG_IRDA_DEBUG is not set
> # Infrared-port device drivers
> # SIR device drivers
> CONFIG_IRTTY_SIR=m
> # Dongle support
> CONFIG_DONGLE=y
> CONFIG_ESI_DONGLE=m
> CONFIG_ACTISYS_DONGLE=m
> CONFIG_TEKRAM_DONGLE=m
> CONFIG_TOIM3232_DONGLE=m
> CONFIG_LITELINK_DONGLE=m
> CONFIG_MA600_DONGLE=m
> CONFIG_GIRBIL_DONGLE=m
> CONFIG_MCP2120_DONGLE=m
> CONFIG_OLD_BELKIN_DONGLE=m
> CONFIG_ACT200L_DONGLE=m
> CONFIG_KINGSUN_DONGLE=m
> CONFIG_KSDAZZLE_DONGLE=m
> CONFIG_KS959_DONGLE=m
> # FIR device drivers
> CONFIG_USB_IRDA=m
> CONFIG_SIGMATEL_FIR=m
> CONFIG_NSC_FIR=m
> CONFIG_WINBOND_FIR=m
> CONFIG_SMC_IRCC_FIR=m
> CONFIG_ALI_FIR=m
> CONFIG_VLSI_FIR=m
> CONFIG_VIA_FIR=m
> CONFIG_MCS_FIR=m
# CONFIG_SCSI_DPT_I2O is not set | CONFIG_SCSI_DPT_I2O=m
# CONFIG_SCSI_BUSLOGIC is not set | CONFIG_SCSI_BUSLOGIC=m
# CONFIG_PATA_CMD640_PCI is not set | CONFIG_PATA_CMD640_PCI=m
# CONFIG_PATA_CS5520 is not set | CONFIG_PATA_CS5520=m
# CONFIG_PATA_CS5530 is not set | CONFIG_PATA_CS5530=m
# CONFIG_PATA_CYPRESS is not set | CONFIG_PATA_CYPRESS=m
# CONFIG_PATA_EFAR is not set | CONFIG_PATA_EFAR=m
# CONFIG_PATA_HPT3X3_DMA is not set | CONFIG_PATA_HPT3X3_DMA=y
# CONFIG_PATA_TRIFLEX is not set | CONFIG_PATA_TRIFLEX=m
# CONFIG_PATA_MPIIX is not set | CONFIG_PATA_MPIIX=m
# CONFIG_PATA_NS87410 is not set | CONFIG_PATA_NS87410=m
# CONFIG_PATA_NS87415 is not set | CONFIG_PATA_NS87415=m
# CONFIG_PATA_OPTI is not set | CONFIG_PATA_OPTI=m
# CONFIG_PATA_OPTIDMA is not set | CONFIG_PATA_OPTIDMA=m
# CONFIG_PATA_RADISYS is not set | CONFIG_PATA_RADISYS=m
# CONFIG_PATA_RZ1000 is not set | CONFIG_PATA_RZ1000=m
# CONFIG_PATA_SC1200 is not set | CONFIG_PATA_SC1200=m
# CONFIG_PATA_WINBOND is not set | CONFIG_PATA_WINBOND=m
# CONFIG_I2O is not set | CONFIG_I2O=m
> CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
> CONFIG_I2O_EXT_ADAPTEC=y
> CONFIG_I2O_EXT_ADAPTEC_DMA64=y
> # CONFIG_I2O_CONFIG is not set
> # CONFIG_I2O_BUS is not set
> # CONFIG_I2O_BLOCK is not set
> # CONFIG_I2O_SCSI is not set
> # CONFIG_I2O_PROC is not set
# CONFIG_NET_SB1000 is not set | CONFIG_NET_SB1000=m
# CONFIG_HP100 is not set | CONFIG_HP100=m
# CONFIG_ATP is not set | CONFIG_ATP=m
# CONFIG_DE600 is not set | CONFIG_DE600=m
# CONFIG_DE620 is not set | CONFIG_DE620=m
# CONFIG_HAMACHI is not set | CONFIG_HAMACHI=m
# CONFIG_YELLOWFIN is not set | CONFIG_YELLOWFIN=m
# CONFIG_ATM_LANAI is not set | CONFIG_ATM_LANAI=m
# CONFIG_ATM_ENI is not set | CONFIG_ATM_ENI=m
# CONFIG_ATM_FIRESTREAM is not set | # CONFIG_ATM_ENI_DEBUG is not set
# CONFIG_ATM_ZATM is not set | CONFIG_ATM_ENI_TUNE_BURST=y
# CONFIG_ATM_IDT77252 is not set | # CONFIG_ATM_ENI_BURST_TX_16W is not set
# CONFIG_ATM_AMBASSADOR is not set | CONFIG_ATM_ENI_BURST_TX_8W=y
# CONFIG_ATM_HORIZON is not set | CONFIG_ATM_ENI_BURST_TX_4W=y
# CONFIG_ATM_IA is not set | CONFIG_ATM_ENI_BURST_TX_2W=y
# CONFIG_ATM_FORE200E is not set | CONFIG_ATM_ENI_BURST_RX_16W=y
# CONFIG_ATM_HE is not set | CONFIG_ATM_ENI_BURST_RX_8W=y
# CONFIG_ATM_SOLOS is not set | CONFIG_ATM_ENI_BURST_RX_4W=y
> CONFIG_ATM_ENI_BURST_RX_2W=y
> CONFIG_ATM_FIRESTREAM=m
> CONFIG_ATM_ZATM=m
> # CONFIG_ATM_ZATM_DEBUG is not set
> CONFIG_ATM_IDT77252=m
> # CONFIG_ATM_IDT77252_DEBUG is not set
> CONFIG_ATM_IDT77252_RCV_ALL=y
> CONFIG_ATM_IDT77252_USE_SUNI=y
> CONFIG_ATM_AMBASSADOR=m
> # CONFIG_ATM_AMBASSADOR_DEBUG is not set
> CONFIG_ATM_HORIZON=m
> # CONFIG_ATM_HORIZON_DEBUG is not set
> CONFIG_ATM_IA=m
> # CONFIG_ATM_IA_DEBUG is not set
> CONFIG_ATM_FORE200E=m
> CONFIG_ATM_FORE200E_USE_TASKLET=y
> CONFIG_ATM_FORE200E_TX_RETRY=16
> CONFIG_ATM_FORE200E_DEBUG=0
> CONFIG_ATM_HE=m
> CONFIG_ATM_HE_USE_SUNI=y
> CONFIG_ATM_SOLOS=m
# CONFIG_DEFXX is not set | CONFIG_DEFXX=m
# CONFIG_SKFP is not set | CONFIG_DEFXX_MMIO=y
> CONFIG_SKFP=m
# CONFIG_LOGITECH_FF is not set | CONFIG_LOGITECH_FF=y
# CONFIG_REISERFS_FS is not set | CONFIG_REISERFS_FS=m
# CONFIG_JFS_FS is not set | # CONFIG_REISERFS_CHECK is not set
> # CONFIG_REISERFS_PROC_INFO is not set
> CONFIG_REISERFS_FS_XATTR=y
> CONFIG_REISERFS_FS_POSIX_ACL=y
> CONFIG_REISERFS_FS_SECURITY=y
> CONFIG_JFS_FS=m
> CONFIG_JFS_POSIX_ACL=y
> CONFIG_JFS_SECURITY=y
> # CONFIG_JFS_DEBUG is not set
> # CONFIG_JFS_STATISTICS is not set
# CONFIG_SECURITY_PATH is not set | CONFIG_SECURITY_PATH=y
# CONFIG_SECURITY_TOMOYO is not set | CONFIG_SECURITY_TOMOYO=y
此命令仅显示与内核配置的差异。其他差异还包括修复某些问题的补丁程序(在CentOS错误跟踪器中找到),直到这些补丁程序被集成到上游为止(这时它们在plus内核中变得毫无意义并被删除)。要查看已修复的错误以及已启用的功能,最简单的方法是查看变更日志。请注意,您可以使用源rpm或二进制rpm。
$ rpm -qp --changelog内核-2.6.32-573.3.1.el6.centos.plus.src.rpm | 更多
* 2015年8月13日,星期四Akemi Yagi <[email protected]> [2.6.32-573.3.1.el6.centos.plus]
-参与CentOS品牌推广
-为i686和x86_64添加了新的配置文件,并启用了其他功能
包括一些网络适配器,一些ATM,所有串行ATA,Adaptec I2O,
ARPD,BusLogic,IPX,Appletalk,ReiserFS,JFS,TOMOYO
-添加了用于编译jfs模块的修复程序[bug#5453]
-在TOMOYO中添加了针对种族的修复程序[bug#5378]
-为usermodehelper添加了一个修复程序[bug#5588]
-添加了一个补丁程序,该补丁程序使非LogiTech遥控器可以工作[bug#5780]
-添加了sysfs-fix-printk-warnings-bug6157.patch [bug#6157]
-添加了fs-tmpfs-add-xattrs-support.patch [bug#4586.18700]
-添加了fix-fadvise-for-tmpfs.patch [bug#6938]
-在配置[bug#7055]中启用了DEBUG_KMEMLEAK-添加了对控创的支持[bug#7270]
-禁用BRIDGE_IGMP_SNOOPING [bug#7796],然后从504.23.4 [bug#8862]开始启用
-启用IRDA(回归)[bug#8070]
-添加了补丁以修复reiserfs中的重新定义错误
5. 总结
使用 CentOSPlus 存储库比使用其他CentOS存储库更加危险,因为它被设计为具有多个更新的软件包,并且实际上并没有被完全启用。
您可以使用CentOSPlus中的所有程序包,但是通常只有一个人会选择他们要查找的程序包,并使用exclude=
和includepkgs=
(或exclude=
和yum-plugin-priorities
)仅从 CentOSPlus 存储库中加载那些程序包。
在使用 CentOSPlus 存储库之前,请确保您了解所有这些概念。