[FrontPage] [TitleIndex] [WordIndex

This is a read-only archived version of wiki.centos.org

The CentOSPlus Repository

1. What is the CentOSPlus repository?

The CentOSPlus repository contains packages that are upgrades to the packages in the CentOS base + CentOS updates repositories. These packages are not part of the upstream distribution and extend CentOS's functionality at the expense of upstream compatibility. Enabling this repository makes CentOS different from upstream. You should understand the implications of this prior to enabling CentOSPlus. You can browse the CentOSPlus directory for CentOS 6, CentOS 7 or CentOS 8 on our mirrors for the architecture you intend to use.

ArtWork/WikiDesign/icon-admonition-info.png

The CentOSPlus repository contains a group of packages, all of which are updates. You probably do not want to enable CentOSPlus as a whole, but instead want to pick the exact packages that you want to use.

Prior to enabling the CentOSPlus repository you should read about the includepkgs= and/or exclude= options in yum. To read about these options use this command at the command line:

man yum.conf

2. Enabling the CentOSPlus repository

To enable the CentOSPlus repository, edit the file /etc/yum.repos.d/CentOS-Base.repo and look for the [centosplus] section. Here is how it looks by default:

#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 


#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* 

You would also want to add this to both the [base] and [update] sections of /etc/yum.repos.d/CentOS-Base.repo, so as not to get postfix packages from there anymore:

exclude=postfix-* 


enabled=1 
includepkgs=kernel* jfsutils reiserfs-utils 

In the [base] and [update] section you would do the following:

exclude=kernel kernel-devel kernel-PAE-* 


3. yum-plugin-priorities

Another way to protect your system from updates from the CentOSPlus repository is to use the yum-plugin-priorities plugin. This is the recommended method. Follow the instructions shown in the link and set up yum-plugin-priorites. Edit /etc/yum.conf and add this line:

plugins=1 

You would set priorities in /etc/yum.repos.d/CentOS-Base.repo like this:

[base] 
exclude=foo bar 
priority=1  

[update] 
exclude=foo bar 
priority=1  

[centosplus] 
enable=1 
priority=2 

This will make the [base] and [update] repositories have higher priority over the [centosplus] repository, so the only items in CentOSPlus that will update either [base] or [update] are items that are excluded from those repositories with an exclude= setting.

Therefore, using yum-plugin-priorities allows you to skip setting up the includepkgs= for the [centosplus] section of CentOS-Base.repo, but it still only allows updates of packages that you exclude= from the [base] and [update] repositories.


4. CentOSPlus kernel differences

Frequently, the question of exactly what is different about the CentOSPlus kernel from the default (base) kernel? This likely varies somewhat as new kernels are released, but (below) is a method for obtaining a detailed list of differences in the configuration. You will need the kernel sources installed for both default and Plus versions. Then, from a shell prompt, run:

    diff -y --width=80 --suppress-common-lines -b -B -d \
    /<path/to/default/kernel source>/.config \
    /<path/to/Plus/kernel/source>/.config

The output of the above command for the version as of this writing (Aug 2015), shown below, should give you a fair idea of what changes are included in CentOSPlus kernels (mostly additional drivers and extended driver options), but you will need to run the above command to see a current list. (Key: > = insert, < = deletion, | = change) From the top directory in the kernel source tree, make menuconfig will explain the meaning of each option.

    # 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

This command only shows the differences from the kernel configuration. Other differences also include patches to fix certain issues (found in the CentOS bug tracker), until those patches get integrated upstream (at which point they become moot in the plus kernel and get removed). The easiest way to see which bugs are fixed as well as what features are enabled will be to look at the changelog. Note that you can use either the source or the binary rpm.

$ rpm -qp --changelog kernel-2.6.32-573.3.1.el6.centos.plus.src.rpm | more
 * Thu Aug 13 2015 Akemi Yagi <toracat@centos.org> [2.6.32-573.3.1.el6.centos.plus] 
- Roll in CentOS Branding
- Added new config files for i686 and x86_64 with extra features turned on
   including some network adapters, some ATM, all serial ATA, Adaptec I2O,
   ARPD, BusLogic, IPX, Appletalk, ReiserFS, JFS, TOMOYO 
- Added a fix to compile the jfs module [bug#5453] 
- Added a fix for race in TOMOYO [bug#5378] 
- Added a fix for usermodehelper [bug#5588] 
- Added a patch that allows non-LogiTech remote to work [bug#5780] 
- Added sysfs-fix-printk-warnings-bug6157.patch [bug#6157] 
- Added fs-tmpfs-add-xattrs-support.patch [bug#4586.18700] 
- Added fix-fadvise-for-tmpfs.patch [bug#6938] 
- DEBUG_KMEMLEAK enabled in config [bug#7055] - Added support for Kontron  [bug#7270] 
- Disable BRIDGE_IGMP_SNOOPING [bug#7796] then enable it as of 504.23.4 [bug#8862] 
- Enable IRDA (regression) [bug#8070] 
- Added a patch to fix redefine error in reiserfs

5. Summary

Using the CentOSPlus repository is more dangerous than using other CentOS repositories, as it is designed to have several updated packages and it is not really designed to be completely enabled.

You can use all the packages in CentOSPlus, but normally one will pick only the packages they are looking for and use exclude= and includepkgs= (or exclude= and yum-plugin-priorities) to load only those packages from the CentOSPlus repository.

Please ensure that you understand all these concepts before you use the CentOSPlus repository.


2023-09-11 07:19