Software Repositories
An explanation of different popular software repositories and what this means to you.
Applicable to Fedora Versions:
- Fedora 10 - Current
Main Repository Divisions
Section 1
Official Fedora Repositories:
- Fedora Repository:
- Updates Repository:
- Updates Testing:
- Development:
- Fedora Source:
[Fedora] - The packages that make up Fedora, as it is released on the ISOs. It is enabled by default.
[Updates] - Updated packages to [Fedora] released after the Fedora ISOs. This will be Security, BugFix,
or Enhancements to the [Fedora] software. It is enabled by default.
[Updates Testing] - These packages are in the pipeline to be introduced to the Updates repo and seeded out among
the various mirrors. It is the equivalent to Development for the current release and is also looked at as unstable
due to the testing nature. Developers and active testers primarily use this repo.. It is disabled by default.
[Development] - These packages are usually involved in the next official release of Fedora and as such are
usually considered "unstable". These packages are having bugs worked out and are in a constant state of movement.
Another term for this repository is "Rawhide". Use of this repo presupposes that the user has advanced knowledge
of the system and the bug filing process. If a yum update is successfully performed with this repo enabled, the
system is then at the bleeding edge and is nearly impossible to return to its previous state. Developers and active
testers primarily use this repo. It is disabled by default.
[Fedora Source] - These are the src.rpm source packages which correspond to the precompiled packages in the Fedora,
Updates, and Development repos. It is not configured by default.
Section 2
3rd Party Software Repositories
Third-party repositories are not a part of the FedoraProject but seek to enhance the user experience by providing software that may contain restrictive patents or other questionable legalities such as MP3 or DVD playback. Third-party repositories are usually safe to use but there are package exceptions in nearly all of them with the exception of Livna and RPMFusion, who works directly with the Fedora team to ensure seamless integration. Use caution when enabling other software repos as core packages and other important rpm packages can be overwritten causing (at worst) a total system reinstall. Performing a yum update with multiple third-party repos enabled and without enabling yum-priority protections is not recommended and will result in numerous broken packages and possibly hours of extra work for you. A safe general rule to follow is: Do not mix third-party repos, this will break yum/rpm. Alternatively, you can learn to build your own packages here.
- Livna: rpm.livna.org in the past provided many useful packages that those distributions rpm.livna.org supports did not want to ship for one reason or another. In 2008 rpm.livna.org merged with two other package repositories into RPMFusion. All packages have been moved there except one that RPMFusion for various reasons didn't want to take. Hence rpm.livna.org will remain running to ship just that package. rpm.livna.org is fully compatible with RPMFusion and all other Fedora add-on repos that don't ship the package that rpm.livna.org ships.
- RPMFusion: RPMFusion is a repository of add-on packages for Fedora and RHEL+EPEL maintained by a group of volunteers. RPMFusion is not a standalone repository, but an extension of RHEL/Centos/Fedora. RPMFusion distributes packages that have been deemed unacceptable to Red Hat or Fedora. See configuration options at RPMFusion.org
- RPMForge: RPMforge is one of the participating repositories in the RPMrepo project. Find out more here: https://rpmrepo.org/RPMforge make sure to use the yum-priorities plugin with this repository (as root: yum install yum-priorities).
- Other 3rdparty repos (Alphabetical): ATrpms, DAG, Dribble, Dries, FreshRPMS, Jpackage, Livna, RPMForge, RPMFusion and PlanetCCRMA.
- The above sed command (#2) puts these repos in a default disabled state to keep you or another person with software installation access from making a mistake that could destroy the system. To search for software in these repositories or install software you would use commands similar to these:
- Get Involved:
Fedora: su -c "rpm -ivh http://rpm.livna.org/livna-release.rpm"
Freeworld: Free software repository config can be downloaded here: free.repo
non-Freeworld: non-Free software repository config can be downloaded here: non-free.repo
After this install successfully completes, run these 2 commands as root:
sed -i 's/^enabled=1/enabled=0/' /etc/yum.repos.d/rpmfusion-free-updates.repo
sed -i 's/^enabled=1/enabled=0/' /etc/yum.repos.d/rpmfusion-nonfree-updates.repo
At the time of writing this, there is no official Fedora repo release rpm from RPMForge. Please read
their configuration wiki for more details here.
At the time of writing this, there is no supported or recommended way to integrate all of these
repositories in a sane manner. Any attempt to do so by someone without deep and exact knowledge of
the system will most likely result in a system reinstall.
To search: yum --enablerepo=rpmfusion-nonfree-updates search denyhosts yum --enablerepo=rpmforge search fail2ban yum --enablerepo=livna --en=rpmforge search */php To install: yum --enablerepo=livna install libdvd* yum --enablerepo=rpmforge install mplayer* Things NOT to do: yum --en=epel --en=rpmforge update The reason these repositories cannot be enabled together in any sane fashion is due to methodology. Each repository has its own way of packaging and integrating the packages into the system. They can be used together with some common sense and planning, but you need to understand and take appropriate precautions. Use of the yum-priorities plugin is highly encouraged to further prevent unwanted overwriting of key files or rpms on the system. This plugin is configured via: /etc/yum.conf /etc/yum/pluginconf.d/priorities.conf /etc/yum.repos.d/*.repo files Configuration: /etc/yum.conf make sure this line is included: plugins=1 /etc/yum/pluginconf.d/priorities.conf make sure these lines are included: [main] enabled=1 check_obsoletes=1 /etc/yum.repos.d/*.repo make sure this line is added to all *.repo files: priority=N (where N is an integer between 1-99) This setting is the most important of the 3. The first 2 make sure the plugin is enabled, the last tells yum what repositories have priority over the others. 1 =- most priority, 99 == least. You'll want to make sure the default Fedora repos are set to 1 and the others according to your personal preferences. Please see: http://wiki.centos.org/PackageManagement/Yum/Priorities for verbose explanations.
There are many ways to build a package and different methods of integrating them into the system.
Different dependencies may be required by different repos that have the same package, for instance,
this results in conflicts. Certain file paths may be changed or named completely differently etc. At
this time there is no universal third-party repo or any agreed method for package deployment among the
various repository maintainers.
If you'd like to get involved here are some suggestions: Donate your time as a maintainer to the repo
of your choice. Get involved and make you opinions known. However, keep in mind that demanding, using
harsh tones, insulting or making useless comments like "this repo sucks" with others will not get you
anywhere and does not help anyone. Be polite, look for something you feel comfortable with and want to
do and do it.
Remember, many people have been at this for years and change is difficult when systems that seem to
work are already in place, not to mention the extra time, effort and money involved in switching
systems. More intelligent people involved mean more intelligent ideas, discussion and progress.
Check out the FedoraProject wiki for more in-depth information
More Information
Disclaimer
We test this stuff on our own machines, really we do. But you may run into problems, if you do, come to #fedora-enduser on irc.freenode.net





















