5.1. A History of APT for RPM
One of the problems associated with RPMs is sometimes known as "dependency hell." This phenomenon is associated with failed attempts to install an RPM. You've probably seen messages specifying dependencies. You try to install that "dependency," but that fails because another package isn't installed. Frustration can reign when these messages continue for several levels. The developers behind what was Conectiva Linux "ported" apt to their RPM-based distribution because they wanted to make it easier to manage patches.
5.1.1. Reduced Dependency Trouble
In this book, we've explored some of the methods you can use to manage patches and upgrades on your Linux computers. Much of the work involves different techniques that can help you ensure that all package dependencies are satisfied.
It seems as though every distribution has a different method of patch management. Red Hat Enterprise Linux uses up2date on the Red Hat Network. Fedora uses up2date with yum, and is moving toward using pup with yum. While SUSE uses the YaST Online Update tool, it is moving to accommodate those who want to use the Smart package manager. Debian uses apt. The tool that is best for you depends on your distribution and experience. This book is designed to help you judge what is best for you and your network.
Unfortunately, some of these patch management tools have limited use. Until recently, YaST was limited by license to SUSE distributions. While it's available for other distributions, the up2date tool is closely associated with Red Hat. You can use the Red Hat Network to manage your patches only with a paid subscription to Red Hat Enterprise Linux.
5.1.2. The Conectiva Approach
When the developers of what was Conectiva (based in Brazil) wanted a Linux distribution, they wanted one with a recipe for commercial success. Red Hat and its RPM system was already more commercially successful than the Debian-based distributions.
One perceived weakness of the RPM system is how its installation and upgrade commands don't even look for, much less install or upgrade, any dependent packages. Options such as up2date did not yet exist. While the developers behind the former Conectiva Linux decided to base their distribution on an older version of Red Hat Linux, they had concerns about how to automate upgrades.
Several of the maintainers of apt live in Brazil. It was natural for Conectiva to look to them to help develop their update systems. To manage patches on Conectiva Linux, they developed a port of apt repositories for RPM-based distributions, known as apt4rpm. Conectiva has shared its work under the GPL, and work continues through the SourceForge project. For more information, see http://apt4rpm.sourceforge.net.
Apt for RPM is the client; apt4rpm is the associated repository creation tool. For more information on the philosophy, see freshmeat.net/articles/view/182. Claudio Matsuoka's article on the subject, while dated, is still instructive.
Unfortunately, the apt4rpm software does not include all the features associated with apt on Debian-based distributions. RPMs are built somewhat differently. In most cases, they do not include the pre- and post-installation scripts that can help you configure a DEB package and get it running on your system immediately. While most RPM-based distributions save existing configuration files, that functionality is still less common than with a DEB package.
As of this writing, Conectiva is in the process of merging with Mandrake and Lycoris. The combined company is known as Mandriva, and the process of integrating their knowledge continues.
Conectiva repositories are straightforward. As suggested by Conectiva's version of /etc/apt/sources.list, two basic repositories have been configured: all and updates. As you can see, Conectiva commands have a similar format to those you see in the Debian version of /etc/apt/sources.list, as discussed in Chapter 4.
rpm [cncbr] ftp://ftp.conectiva.com/pub/conectiva 9/i386 all rpm-src [cncbr] ftp://ftp.conectiva.com/pub/conectiva 9/i386 all rpm [cncbr] ftp://atualizacoes.conectiva.com.br 9/i386 updates rpm-src [cncbr] ftp://atualizacoes.conectiva.com.br 9/i386 updates
The differences are straightforward. Instead of deb and deb-src, which are associated with binary and source packages, Conectiva repository commands start with rpm and rpm-src. Conectiva repositories are digitally signed; the [cncbr] tells apt to look for the signature. As of this writing, it is supported through a mailing list available from http://distro.conectiva.com.br/mailman/listinfo/apt-rpm. With the merger, and the emergence of the Smart Package Manager, this list may be ending. But will the move of SUSE 10.0 to apt-rpm give it new life?
Mandriva already has an excellent patch management tool, known as urpmi. I do not cover it in this book, because it is used only for Mandriva Linux. For more information on urpmi, see the related HOWTO at http://developer.skolelinux.no/~zerodogg/rpmhowto/RPM-HOWTO.html.
5.1.3. An Overview of apt for RPM-Based Distributions
There are several other RPM-based distributions that use apt. In many cases, apt is not the primary patch management system for the distribution. In some cases, developers have processed apt repositories for certain distributions and have made them available for public use. These distributions include the following:
There are several groups that support the use of apt. The developers behind freshrpms.net have configured apt repositories for Fedora, Yellowdog, and older versions of Red Hat Linux. For more information, see apt.freshrpms.net. Dag Wieers has created a number of apt and yum capable repositories. For more information, see http://dag.wieers.com/home-made/apt/.
With recent improvements to yum, it's likely that the Fedora project will no longer support apt repositories starting with Fedora Core 5. Support may still be available from noted third parties, however.
A slightly out-of-date list of repositories for several RPM-based distributions is available as of this writing at http://apt4rpm.sourceforge.net/repos.html. In many cases, you may find up-to-date repositories at the servers indicated for the noted distributions. Some searching, some common-sense directory substitutions (e.g., SUSE version 10.1 for 10.0) as well as trial and error may be required. Interestingly enough, although Fedora appears to be moving away from apt, SUSE seems to be increasing support for the apt system. As of this writing, it appears they may also include support for yum repositoriesstarting with SUSE 10.1.