Yum-plugin-priorities

From SME Server
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Yum-plugin-priorities

PythonIcon.png Skill level: Advanced
The instructions on this page may require deviations from standard procedures. A good understanding of linux and Koozali SME Server is recommended.


This page is intended to explore the possible use of yum-plugin-priorities in order to help prevent the installation of unwanted rpms from 3rd-party repositories such as dag, dries, etc.

Installation

yum --enablerepo=extras install yum-plugin-priorities

On SME Server 8.x use (untested!)

yum --enablerepo=extras install yum-priorities

Configuration

The installation of yum-plugin-priorities will create /etc/yum/pluginconf.d/priorities.conf with the following settings

[main]
enabled = 1
check_obsoletes = 1

These settings tell yum to pay attention to the 'priority' setting for each repo, and to make sure the 'obsoletes' flag in a low priority repo will not result in the removal of a package from a higher-priority repo.

If you are not running SME Server 7.4, update smeserver-yum

yum update smeserver-yum

modify yum template

cp the original and add the following to the bottom of the fragment

nano -w  /etc/e-smith/templates-custom/etc/yum.smerepos.d/sme-base.repo/20repositories 

      if (exists $props{priority})
       {
           $OUT .= "priority" . '=' . $props{priority} . "\n";
       }

DB values

Use this script to create DB priority values

#!/bin/bash

for REPO in smeaddons smecontribs smedev smeextras smeos smetest smeupdates smeupdates-testing addons base  centosplus contrib extras updates
do
 db yum_repositories setprop $REPO priority 10
 #set to 99 for testing when you want to remove priority
done

signal-event yum-modify

Usage

  • If you install any contribs or non-sme packages using any form of --enablerepo=<xxx>, update with the following to make sure you get any available updates for your extra packages
yum update --enablerepo=<xxx> --enablerepo=<xxx2>
  • If you get a missing dependency error from yum
    • re-run yum manually using --exclude <pkgname> on the command line, replacing <pkgname> with the package that is preventing your update
    • If you suspect that the blocked update resolves a security issue, you must decide for yourself whether to compromise the original SME Server/CentOS package and force the update of the non-SME Server/CentOS package by running
yum update --enablerepo=<xxx>  --enablerepo=<xxx2> --noplugins <pkgname>

References

bugzilla:4757

Centos Wiki page at http://wiki.centos.org/PackageManagement/Yum/Priorities