CentOS is a distribution very "similar" to Red Hat (or, said in other words, it's like a Red Hat Linux without a red hat).
Red Hat Inc. is a reputable Linux Company that strives to maintain "a name" for internal testing, stability, compliance, support and plenty of other features only a major software company can deliver.
Sometimes the backing from a great company like Red Hat, means the company chooses to support a restricted set of applications (less complexity, code reviews, plenty of reasons...).
The Free Software and the Open Source Software offers a bazaar of tiny applications, but if you stick to a distribution like CentOS, there are not so many of them.
If you are looking for a compromise between "flashy features" and "not-breaking" the official main distribution, you can safely add Repoforge to your CentOS repositories.
The good idea!
Repoforge is a repository of tested (by the repo maintainers) applications, judged to be "safe" to install on your standard CentOS (excluding the Repoforge-extra repos of course, which are disabled by default).
So, basically, if you add the Repoforge repositiories to your existing or new CentOS, you won't break "compatibility" with the main tree and you will be able to add some flashy features too!
To add Repoforge, identify your architecture (X86 or X86_64 with "uname -i"), then follow the CentOS wiki instructions at the following address:
I used successfully those repos and I was able to migrate my systems along the main tree (ie. migrating from CentOS 4.7 to CentOS 5.3).
Another useful command maybe the one that shows you the listing of enabled repos:
yum repolist all
Make sure "rpmforge" is enabled and "rpmforge-extras" is disabled to maintain compatibility.
Priority (& sed g00dness).
Another interesting feature yum should have enabled by default, but instead you'll have to manually install, is the yum priorities. It allows you to assign some repos more priority than others.
This maybe a good idea since a lot of packages sometimes are duplicates between both repoforge and base and (I suppose) you want to stick as much as possible to CentOS-Base.
(For more info about priorities check this wiki: http://wiki.centos.org/PackageManagement/Yum/Priorities).
yum -y install yum-priorities
sed -i -e '/^\[base\]$/a priority=1' /etc/yum.repos.d/CentOS-Base.repo
The previous commands will simply install the package that will enable the priorities for yum, then, with the sed command, you'll append inside /etc/yum.repos.d/CentOS-Base.repo, AFTER the "[base]"-string (which specifies where the "base" repos are), who will have the highest priority.
It's also a very smart sed use because it will allow you to match a pattern escaped by square brackets, then ADD a NEW LINE and, after, append the "priority=1" string ;-)
The "^"-symbol tells sed "the line to look for starts with...".
The "$"-symbol tells sed "the line to look for ends before the $-symbol".
The Square Brackets [, ] need to be escaped with the backslash (\) symbol.
But check this link for more sed geekery!: http://devmanual.gentoo.org/tools-reference/sed/index.html
A Software Bazaar.
For a full list of Repoforge packages, open the following address:
Here's a list of packages I recognize because I used somehow in the past!
yum -y install amsn htop blender cacti celestia cfdisk conky ddrescue dejavu-fonts deluge dropbox filezilla gkrellm gnucash gparted gxmame haproxy hylafax inconsolata-fonts lshw mplayer munin nagios p7zip pure-ftpd unrar vlc w32codec webmin wine xmms.
Please note they are a mix of server tools and desktop tools, so I think that by installing them all would be of no use (choose only the ones you recognize and need, either from my subset or from the full list!).
Another insightful Repoforge and CentOS wiki explains how to multimedia-enable your CentOS (ie.flash player, DVD and mp3s):