[CentOS] Centos 6.3 - which repos to use?

Bry8 Star bry8star at yahoo.com
Thu Jan 31 07:03:41 UTC 2013


When using multiple repo, then how would i know, an
app/lib from non-CentOS (that is, 3rd party repo) is going
to conflict or not with CentOS core, base, essential
app/lib packages ?

We need to know CentOS core, base, essential components.

According to this file:

/usr/lib/anaconda/installclasses/rhel.py

That is located inside the mounted image of this below file:
http://mirror.centos.org/centos-6/6/os/x86_64/images/install.img

or
http://mirror.centos.org/centos-6/6/os/x86/images/install.img

* A CentOS Basic Server has : base, console-internet,
core, debugging, directory-client, hardware-monitoring,
java-platform, large-systems, network-file-system-client,
performance, perl-runtime, server-platform.
* Database Server : Basic Server (shown above), and,
mysql-client, mysql, postgresql-client, postgresql,
system-admin-tools.
* Web Server: Basic Server (shown above), and,
mysql-client, php, postgresql-client, turbogears,
web-server, web-servlet.

So below command will show what app/lib/pkg are in "Basic
Server", and should not be replaced by a 3rd party repo
packages:

yum groupinfo base core "Console internet tools"
"Directory Client" "Java Platform" "Network file system
client" "Server Platform" debugging large-systems
performance perl-runtime hardware-monitoring
--disablerepo=\* --enablerepo=base,extra,update
--disableplugin=filter-data,priorities --disableexcludes=all

in above, it is, one command-line, (text-based
email-system will break it, so remove LF/CR char to get
full command-line )

You must try to avoid replacing those, (centos essential
packages).

Copy the list in a text file, remove lines(LF/CR), make
paragraphs, and print it out or keep the text file easily
accessible location. So you can see it to decide, on 3rd
party repo which package should be placed inside "exclude".

If there is/are mistake(s) in above suggestion, please
correct.
Please post better, other way(s) to achieve these.

Thanks,
-- Bright Star.



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.
>>>>
>>>> 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
>>
> 
> 
> 
> _______________________________________________
> 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/20130131/4eec1f41/attachment.sig>


More information about the CentOS mailing list