* Another way to use multiple repo, other than what i mentioned in previous email (different repo with different priority# ), is to: * Set all repo's base, main/default, stable, extra, etc sections/channels on priority 10, and set all repo's other channels/sections like "testing", (source, debuginfo, ) etc on priority 15: repo#1 main-sections priority 10, others 15 repo#2 main-sections priority 10, others 15 repo#3 main-sections priority 10, others 15 repo#4 main-sections priority 10, others 15 * Use only RHEL compatible channels of any repo. (Avoid fedora, generic, other-non-Rhel-distro, etc, unless you are getting source/src.rpm/SRPM for rebuilding on CentOS ). * Since they all has same priority, highest/last version will get highest preference. * run : yum groupinfo "Base" It will show Mandatory, Default, etc app list for CentOS. And run this before adding other repo, so that you get a fresh list related only to CentOS. * run : yum check-update or, run : yum list updates --disableplugin=filter-data,priorities --disableexcludes=all --enablerepo=* (First try without --enablerepo=* option ) * You will see, (or If you see,) any other 3d party repo (other than CentOS ) app/libs, is/are trying to replace base/core components from CentOS Mandatory, Default, etc category areas, then put those pkgs/apps/libs in "exclude=pkg-name ..", inside those 3rd party repo, so that those pkgs do not replace base/core CentOS components. * And, if you choose a very specific app/lib from a very specific repo, for example, postgresql from Postgresql repo, then see my previous email for "exclude" list, place those postgresql related pkgs/items in all repo in their all sections/channels other than Postgresql repo itself, including CentOS repo in all sections/channels. * Do not do actual update, unless you see or you are 100% sure, shown repo and apps/libs/pkg are coming from the repo/channel which you want and safe, if you are not sure, ask for help here but search on google, read more docs, manuals, and research little bit first. * If you search with words like these : "pkgname error problem" or "pkgname error problem centos", then you should/will see what kind of error or problem may occur with that pkg. Take steps so that no error occurs.
Please correct my mistake(s) on these simple (above ) suggestions, info. Thanks, -- Bright Star.
Received from Bry8 Star, on 2013-01-30 4:08 AM:
Sorry, mentioned [pgdg92] twice. Pls ignore/delete the [pgdg92] that has priority 15.
Received from Bry8 Star, on 2013-01-28 10:16 AM:
For PostgreSQL, i've done these (shown below) at initial/test stage: (pls DO NOT follow/copy it, try to understand pattern and do what fits for your case/need).
From a VE instance inside HN:
yum has these plugins: fastestmirror, filter-data, keys, list-data, merge-conf, presto, priorities, security, verify.
# CentOS-Base.repo [CentOS-base] #<...snip...> enabled=1 # i do not want below set from centos repo # as these exacts are released by postgre devs # but other postgre portions from others i do want exclude=postgresql.* postgresql-contrib* postgresql-debuginfo* postgresql-devel* postgresql-docs* postgresql-jdbc.* postgresql-jdbc-debuginfo* postgresql-libs* postgresql-odbc.i686 postgresql-odbc-debuginfo* postgresql-plperl* postgresql-plpython* postgresql-pltcl* postgresql-server* postgresql-tcl.i686 postgresql-tcl-debuginfo* postgresql-test* priority=1
[CentOS-updates] #<...snip...> enabled=1 exclude=postgresql.* postgresql-contrib* postgresql-debuginfo* postgresql-devel* postgresql-docs* postgresql-jdbc.* postgresql-jdbc-debuginfo* postgresql-libs* postgresql-odbc.i686 postgresql-odbc-debuginfo* postgresql-plperl* postgresql-plpython* postgresql-pltcl* postgresql-server* postgresql-tcl.i686 postgresql-tcl-debuginfo* postgresql-test* priority=1
[CentOS-extras] #<...snip...> enabled=1 exclude=postgresql.* postgresql-contrib* postgresql-debuginfo* postgresql-devel* postgresql-docs* postgresql-jdbc.* postgresql-jdbc-debuginfo* postgresql-libs* postgresql-odbc.i686 postgresql-odbc-debuginfo* postgresql-plperl* postgresql-plpython* postgresql-pltcl* postgresql-server* postgresql-tcl.i686 postgresql-tcl-debuginfo* postgresql-test* priority=1
[CentOSplus] #<...snip...> enabled=1 exclude=kernel.* kernel-firmware.* kernel-headers.* postgresql.* postgresql-contrib* postgresql-debuginfo* postgresql-devel* postgresql-docs* postgresql-jdbc.* postgresql-jdbc-debuginfo* postgresql-libs* postgresql-odbc.i686 postgresql-odbc-debuginfo* postgresql-plperl* postgresql-plpython* postgresql-pltcl* postgresql-server* postgresql-tcl.i686 postgresql-tcl-debuginfo* postgresql-test* priority=1
# pgdg92-centos.repo [pgdg92] #<...snip...> enabled=1 priority=10
[pgdg92-source] #<...snip...> enabled=1 priority=10
#scntflnx.repo [SciLnx-6x-os] #<...snip...> enabled=1 exclude=redhat-rpm-config.* postgresql.* postgresql-devel* postgresql-docs* postgresql-contrib* postgresql-jdbc.* postgresql-libs* postgresql-odbc* postgresql-plperl* postgresql-plpython* postgresql-pltcl* postgresql-server* postgresql-test* priority=13
[SciLnx-6x-updates-fastbugs] #<...snip...> enabled=1 exclude=postgresql.* postgresql-devel* postgresql-docs* postgresql-contrib* postgresql-jdbc.* postgresql-libs* postgresql-odbc* postgresql-plperl* postgresql-plpython* postgresql-pltcl* postgresql-server* postgresql-test* priority=13
[SciLnx-6x-updates-security] #<...snip...> enabled=1 exclude=postgresql.* postgresql-devel* postgresql-docs* postgresql-contrib* postgresql-jdbc.* postgresql-libs* postgresql-odbc* postgresql-plperl* postgresql-plpython* postgresql-pltcl* postgresql-server* postgresql-test* priority=13
[SciLnx-6x-debuginfo] #<...snip...> enabled=0 priority=13
[SciLnx-6x-SRPMS] #<...snip...> enabled=1 priority=13
[pgdg92] #<...snip...> enabled=1 priority=15
... other repo & distro ...
In above way, i get most from PosteGre repo, and other postgre related side packages from other repos. if i were to place exclude=postgre* then all packages would have gotten excluded, and then the extra postgre pkg which are not released by postgre, would get hidden/excluded as well, though, i could have used this approach for to get that:
includepkgs=related-extra-postgre-pkg
to get those. but then i would need specific name, but what if new extra pkg that i dont know yet, is included, but since i have not specified specifically, those would get hidden/excluded. (my repo inquiries have shown, many other repo has at-least 1 to 3 or some up to 6 extra postgre related tools which are not released by postgre devs themselves).
Few patterns/logics which i like to follow:
repo#1, rpm priority 1, srpm priority 50 repo#2, rpm priority 10, srpm priority 40 repo#3, rpm priority 15, srpm priority 30 repo#4, rpm priority 20, srpm priority 20 ...
Priority numbering pattern/logic: Since i'm using centos as my base, so various DISTRO & REPO rpm/binary which are closest to CentOS & CentOS's source RHEL, those distro & repo will get lowest priority# close to centos. i like to think/visualize in this way ... a LIST from top to down, now number them from top to bottom 1, 2, 3.. CentOS is at position 1, the top-most position. The lowest priority number, is at highest, upper position in the list, is chosen first by yum/installer, and has highest priority, if it(yum) wants to install something.
my knol is this (i could be wrong): RHEL based source -> |-> CentOS base. |-> Scientific Linux. |-> Oracle Linux. |-> ClearOS Linux.
(Fedora stable source -> RHEL -> RHEL source).
EPEL has extra small tools/apps/libs for RHEL base apps/libs, and also for RHEL based clone/derivative distros (few mentioned above). RPMforge/dag has many perl related stuff. REMI has latest+stable PHP, MySql related stuff. ELrepo is for hardware latest+stable drivers, kernels. kdeRedhat is mostly for latest+stable KDE, QT, samba, etc. RPMFusion has closed-source-free, open-source-free, non-free etc apps. ATrpms has MythTV, Scientific Apps, etc. LnxTechNet has audio,video,etc apps.
And Fedora 17, 18 source/src/SRPMS are needed to be re-built on cnetos for those apps/libs, then those can be used with centos.
Pkg "Excluding" pattern/logic: (means, Getting specific pkg from Non-Centos repo): Now for example if i want something specific called "pkg-set-3" from repo#3, then i would have to place those specific pkgs inside the "exclude" line in repo(s) which are listed at upper position on the repo-list, so that will be repo#2, repo#1, so it will be: # repo_1.repo file inside /etc/yum.repos.d [repo_1] exclude=pkg-set-3
# repo_2.repo file inside /etc/yum.repos.d [repo_2] exclude=pkg-set-3 # in 'exclude' pkgs are 'space' separated
Where & How to tweak & apply intelligence/knowledge and experience and tricks , etc for repo-config ? i like to call it HI (Human Intelligence), multiple (or one) developer's initial HI becomes AI in a software.
Each repo file will most likely have one or more section/channel like below: [section-or-channel-name] config_options=values ...
in repo#2, the "pkg-set-3" can be placed inside all section/channel of that repo file.
For setting repo#1 (in our case, this is centos), we will have to do these:
set "enabled=" to 0 in all new repo, (except centos.repo), or, by using yum command-line options instruct "yum" to disable all repo, then instruct yum to enable only centos-base,centos-updates, etc repo only and then do "yum check-update", like this:
yum --disablerepo=* --enablerepo=base,update,centosplus,extra check-update
... above command will show if centos repo has new updates (or no updates) for your system.
then set enabled=1 in those section/channel which you need for the app/lib (pk-set-3) which you wanted.
then run do "yum check-update". ... It will show list of app/lib which will be updated if you were to run "yum update" or "yum upgrade".
Also see other helpful yum commands.
Since these yum commands will show app/lib name and which repo has it, observe carefully and make a hand-written list first (or write on a text file on the client computer from where you're connecting to your centos server which you are trying to configure), a list, apps/libs which you need to exclude from which repo.
Other helpful YUM COMMANDS:
yum list updates '*' --disableplugin=filter-data,priorities --disableexcludes=all
... should show what updates will be in queue if all "excludes" are ignored.
yum list all available 'pkg-name*' --disableplugin=filter-data,priorities --disableexcludes=all
... should show which of your repos has any package that are close to the name "pkg-name" and will also show their version # and what repo has it.
Anytime you change any "somename.repo" file, then its better to do first: yum check-update (but do not update, unless you are sure which app is coming from which exact repo and if that is what you want or not).
Please ADD/POST MORE/YOUR HELPFUL COMMANDS, and tell us what it does, where useful.
Since source/SRPMS is/are needed when you/i need to make src.rpm, so distro & repo closest to CentOS gets higher priority, usually that is in reverse order than the RPM/binaries.
Please correct my mistakes and add your responses, ideas, suggestions, logics, patterns, etc.
Thanks in advance,
-- Bright Star.
Received from Johnny Hughes,, on 2013-01-28 12:50 AM:
On 01/27/2013 06:20 PM, Rob Kampen wrote:
On 01/28/2013 04:43 AM, Mark LaPierre wrote:
On 01/27/2013 08:18 AM, Bry8 Star wrote:
Hi Anthony, it would be really great, to see various types of repo-configs on centos wiki, now if few helpful& experienced users can grab this idea and come forward and share their repo config (and their case/usage scenario along with that), then that would be great.
<snip>
(Sorry for spelling& grammar mistakes in previous and in this posting, pls kindly disregard, its not a grammar discussion thread).
-- Bry8Star.
Received from Anthony K, on 2013-01-27 2:48 AM: > On 26/01/13 14:59, Bry8 Star wrote: >> CentOS webpage/site should also show to all users, >> some example of using multiple repos and how to >> implement effective includepkgs, exclude, priority >> etc directives properly for some certain last& >> STABLE app(s) (which is by default not in CentOS), so >> that others can understand the pattern, or have a >> pointer for them. Just mentioning about, that, there >> is such things called "includepkgs=...", >> "exclude=..." ad now go do it yourself (and sorry no >> example), obviously does not help that much to users, >> and its CentOS's loss as well, users go away to other >> distros, and ultimately many of them are lost in the >> jungle. -- Bright Star (Bry8Star). > But you appear to be missing the "C" part in CentOS > (or Community Enterprise OS). If you can contribute to > the Wiki, then the immediate problem is solved in that > such threads can be pointed to the Wiki and slows the > growth of my CentOS list folder! > > Frankly, if you have a good point to make that would > benefit the masses and you have spare time, then it's > best to create a Wiki page for it. > > Cheers, ak. >
There is already a fine page on this subject on the wiki.
The point being made is that various people have the knowledge and experience to advise a startup setting for priority= for each repo I know that what I'm using has caused conflicts that have been quite time consuming to resolve - what works for others would be most helpful I do recognise that this will vary depending upon what tools are required but as a start: 1. developer workstation - what repos and what priority 2. LAMP server - probably just CentOS repos and something which deals with later php / perl / ruby 3. web / internet workstation - needs audio and video stuff working just my thoughts for starters.
That totally depends on what you need to install and what repo it is in. Since 3rd party repos are constantly adding new packages that they did not have last week, it is impossible to say what would be the proper priorities.
I already posted what I personally do, which is:
Install CentOS and set Base, updates, extras, and fasttrack to a Priority=1
I usually do not need to enable centosplus, but if I do, I set it to Priority=2 and I put "excludes=<pkg_names>" in the Priority=1 repos for the packages I want let CentOS plus replace in those repos.
I then normally add EPEL and set the Priority=10 for that.
Hopefully, that is all I need to add.
If I have to add any more repositories, first make sure my packages are currently all updated by doing a yum upgrade. Then I add the new repos one at a time and I make them Priority=10 (the same as EPEL) ... and after I add them , i do a "yum update". If it tries to update, I look at the packages and decide if I am going to allow the update or not ... if I am ok to do the updates, then I do them and make sure it works. Then I would install the packages I need from that repo. Then I would add the next new repo till I get to the end.
The best scenario is that all your 3rd party repos can co-exist at the same Priority setting and that is where I start (at Priority=10) ... and if something does not work, I troubleshoot it and take individual action.
Each individual machine is going to require a unique and separate group of settings based on what you want to install ... which is why there is no official recommendations.
I personally am using the following repos right now on my main Desktop, which is CentOS-6.3:
adobe-linux-x86_64 | 951 B 00:00 base | 3.7 kB 00:00 cr | 3.0 kB 00:00 elrepo | 1.9 kB 00:00 elrepo-extras | 1.9 kB 00:00 extras | 3.5 kB 00:00 fasttrack | 3.5 kB 00:00 google-chrome | 951 B 00:00 google-musicmanager | 951 B 00:00 livna | 1.3 kB 00:00 nux-dextop | 2.7 kB 00:00 rpmforge | 1.9 kB 00:00 updates | 3.5 kB 00:00
All of the secondary repos are set to the same priorities and everything seems to work.
Right now I have an "exclude=wxGtk*" for rpmforge for some reason. And an "exclude=nx freenx*" for Nux! repo.
CentOS mailing list CentOS@centos.org http://lists.centos.org/mailman/listinfo/centos
CentOS mailing list CentOS@centos.org http://lists.centos.org/mailman/listinfo/centos
CentOS mailing list CentOS@centos.org http://lists.centos.org/mailman/listinfo/centos