Line 1: |
Line 1: |
− | yum-plugin-priorities
| + | ==Yum-plugin-priorities== |
− | {{Warning box|Currently under development. '''DOES NOT WORK'''}} | + | {{Level|Advanced}} |
| | | |
| 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. | | 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. |
| | | |
− | Inspired by [[Bugzilla:4757]]
| + | === Installation === |
− | | |
− | == Installation == | |
− | === SME 7.x (Centos 4.x ===
| |
| yum --enablerepo=extras install yum-plugin-priorities | | yum --enablerepo=extras install yum-plugin-priorities |
| | | |
− | === SME 8.x (Centos 5.x) ===
| + | On SME Server 8.x use (untested!) |
− | (untested!) | |
| yum --enablerepo=extras install yum-priorities | | yum --enablerepo=extras install yum-priorities |
| | | |
| === Configuration === | | === Configuration === |
− | ==== New config files ====
| + | The installation of yum-plugin-priorities will create '''/etc/yum/pluginconf.d/priorities.conf''' with the following settings |
− | (SME 7.x): The installation of yum-plugin-priorities will create '''/etc/yum/pluginconf.d/priorities.conf''' with the following settings
| |
| [main] | | [main] |
| enabled = 1 | | enabled = 1 |
| check_obsoletes = 1 | | check_obsoletes = 1 |
− | These settings tell yum to pay attention to the 'priority' setting for each repo, and to make sure the an 'obsoletes' flag in a low priority repo will not result in the removal of a package from a higher-priority repo. | + | 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. |
| | | |
− | ==== Either Modify /etc/yum.conf ====
| + | If you are not running SME Server 7.4, update smeserver-yum |
− | Now add '''priority=10''' to the repos in /etc/yum.conf that are enabled by default.
| + | yum update smeserver-yum |
| | | |
− | cd /etc
| + | ==== modify yum template ==== |
− | mv yum.conf yum.conf.sav | + | cp the original and add the following to the bottom of the fragment |
− | sed s/enabled=1/enabled=1\\npriority=10/ /etc/yum.conf.sav > yum.conf | + | nano -w /etc/e-smith/templates-custom/etc/yum.smerepos.d/sme-base.repo/20repositories |
− | | + | |
− | ==== Or Modify /etc/yum.conf/* in sme 7.4 ==== | + | if (exists $props{priority}) |
| + | { |
| + | $OUT .= "priority" . '=' . $props{priority} . "\n"; |
| + | } |
| | | |
− | create priority db | + | ==== DB values ==== |
| + | Use this script to create DB priority values |
| #!/bin/bash | | #!/bin/bash |
| | | |
Line 37: |
Line 36: |
| do | | do |
| db yum_repositories setprop $REPO priority 10 | | db yum_repositories setprop $REPO priority 10 |
− | #set to 99 for testing when you want to remove priority, or use delprop $REPO | + | #set to 99 for testing when you want to remove priority |
| done | | done |
| | | |
− | echo "now run" | + | signal-event yum-modify |
− | echo "expand-template /etc/yum.smerepos.d/sme-base.repo"
| |
− |
| |
− | add the following, to the bottom of the fragment, use templates-custom if you prefer
| |
− | nano -w /etc/e-smith/templates-custom/etc/yum.smerepos.d/sme-base.repo/20repositories
| |
− |
| |
− | if (exists $props{priority})
| |
− | {
| |
− | $OUT .= "priority" . '=' . $props{priority} . "\n";
| |
− | }
| |
− | | |
− | == Testing 7.3==
| |
− | === Original Configuration ===
| |
− | yum update
| |
− | | |
− | ...
| |
− | Transaction Summary
| |
− | =============================================================================
| |
− | Install 0 Package(s)
| |
− | Update 8 Package(s)
| |
− | Remove 0 Package(s)
| |
− | | |
− | yum --enablerepo=dag update
| |
− | | |
− | ...
| |
− | Transaction Summary
| |
− | =============================================================================
| |
− | Install 22 Package(s)
| |
− | Update 80 Package(s)
| |
− | Remove 0 Package(s)
| |
− | | |
− | === After modifying /etc/yum.conf ===
| |
− | yum update
| |
− | | |
− | ...
| |
− | Transaction Summary
| |
− | =============================================================================
| |
− | Install 0 Package(s)
| |
− | Update 8 Package(s)
| |
− | Remove 0 Package(s)
| |
− | | |
− | yum --enablerepo=dag update
| |
− | | |
− | ...
| |
− | Error: Missing Dependency: perl(DBD::Pg) >= 1.32 is needed by package perl-DBIx-DBSchema
| |
− | ...
| |
− | | |
− | === To Do ===
| |
− | Figure out why setting priorities results in missing dependcies.
| |
− | | |
− | I tried giving all 'sme' repos higher priority (priority=5) than the centos repos (priority=10) - same result.
| |
− | | |
− | == Testing 7.4==
| |
− | actually 7.4rc1
| |
− | | |
− | yum update (priority=99)
| |
− | Install 1 Package(s)
| |
− | Update 26 Package(s)
| |
− | | |
− | yum update enablerepo=dag (priority=99)
| |
− | 0 packages excluded due to repository priority protections
| |
− | Install 11 Package(s)
| |
− | Update 42 Package(s)
| |
| | | |
| + | === 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> |
| | | |
− | yum update enablerepo=dag (priority=10)
| + | ===References=== |
− | 496 packages excluded due to repository priority protections
| |
− | Install 1 Package(s)
| |
− | Update 28 Package(s)
| |
| | | |
− | the two extra packages I installed from dag, they should be updated
| + | [[bugzilla:4757]] |
| | | |
− | all OK
| + | Centos Wiki page at http://wiki.centos.org/PackageManagement/Yum/Priorities |
| | | |
− | === To Do ===
| + | ---- |
− | try other priorities, ie give sme repos higher priority then centos and see what happens
| + | [[Category:Howto]] |
| + | [[Category:Administration]] |