[CentOS] Centos 6.3 - which repos to use?

Mon Jan 28 10:16:19 UTC 2013
Bry8 Star <bry8star at yahoo.com>

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.
>>> 
>>> http://wiki.centos.org/AdditionalResources/Repositories
>>> 
>> 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 at centos.org 
> http://lists.centos.org/mailman/listinfo/centos
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: OpenPGP digital signature
URL: <http://lists.centos.org/pipermail/centos/attachments/20130128/fb39dfbf/attachment-0005.sig>