Personal tools
You are here: Home Help Software Repositories
« March 2010 »
March
MonTueWedThuFriSatSun
1234567
891011121314
15161718192021
22232425262728
293031
 

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

Main software repositories:

  • Official Fedora Repositories (Section 1)
  • 3rd Party Repositories (Section 2)
  • Section 1

    A repository is a prepared directory or web site that contains software packages and index files. Software management utilities such as yum automatically locate and obtain the correct RPM packages from these repositories. This method frees you from having to manually find and install new applications or updates. You may use a single command to update all system software, or search for new software by specifying criteria. All of the software provided by the FedoraProject is open source software. You may download and install software from the FedoraProject network of repositories on as many systems as desired. The configuration files for these repositories can be found on the system here: /etc/yum.repos.d/*.repo

    Official Fedora Repositories:

    1. Fedora Repository:
    2. [Fedora] - The packages that make up Fedora, as it is released on the ISOs. It is enabled by default.
    3. Updates Repository:
    4. [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.
    5. Updates Testing:
    6. [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.
    7. Development:
    8. [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.
    9. Fedora Source:
    10. [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.

     

    1. 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.
    2. Fedora: su -c "rpm -ivh http://rpm.livna.org/livna-release.rpm"
    3. 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
    4. 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
    5. 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).
    6. 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.
    7. Other 3rdparty repos (Alphabetical): ATrpms, DAG, Dribble, Dries, FreshRPMS, Jpackage, Livna, RPMForge, RPMFusion and PlanetCCRMA.
    8. 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.
    9. 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: 
    10. 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.
      
    11. Get Involved:
    12. 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

    Any additional information or notes.

    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

    Added Reading

    Document Actions
    • Send this
    • Print this
    • Bookmarks