Apt and Synaptic
No review of Conectiva would be complete without a look at apt and Synaptic. Apt has historically been a tool exclusively for Debian users, but in early 2000 Conectiva ported the system to RPM, allowing non-Debian distributions to access the power of this excellent tool for the first time. Subsequently they created Synaptic, a graphical front-end to apt that makes it easier to utilise the power of the system.
Apt is a software installation system that allows users to install software programs without having to spend tedious amounts of time working through pre-install checklists. At its core, apt does two things. Firstly, the system keeps a catalogue of available software packages, and their locations, meaning that you don’t have to find them. Secondly, when the time comes to install a package, apt can resolve any dependencies that the package might have by using its pre-existing catalogue. Most Linux packages have dependencies; other software that has to be installed before the package will work properly. Before apt, you would have to resolve each dependency before you could install a package – plus you would have to resolve the dependencies of the packages you were installing to resolve that original dependency. Apt compiles the list of dependencies for you, and then automatically works out how to resolve them using the list of packages available in its catalogue. Since the advent of apt, installing a package is often as simple as typing apt-get install packagename – the system will find the package, resolve the dependencies, and install everything all by itself. All you have to do is sit back and change the CDs when prompted.
To make using apt even easier, Conectiva includes Synaptic, a graphical front-end for apt. Synaptic allows you to search the apt catalogue and find the packages you want to install, update or remove; you can also set filters to confine your searches to certain variables, such as the classification of a package, or whether it is already installed. Synaptic also lets you configure the source of the packages it controls – you can add locations such as CD-ROMs or Internet FTP sites with just a few clicks.
Conectiva includes a huge number of packages – over 5,500 when you count the ones included in Update 1. A clever decision on the part of the developers was to split up the large KDE packages, such as kdebase and kdemultimedia, into individual application packages, which allows users to maintain a fine-grained control over their systems that isn’t possible with some other distributions. Other packages such as Xfree86 have also been split up in a similar manner.
Synaptic isn’t perfect, however; its interface is fairly intimidating for new users at first glance, and it won’t let you search the apt catalogues using natural language queries. For example, searching for “word processor” returns no results; a more experienced user would know that they had to search for “OpenOffice” or “Abiword” to display the packages they were seeking. It would be great if Synaptic could search the package descriptions, as well as the title. Conectiva could then include user-friendly descriptions for each package, making it easier for new users to find the software they were looking for. It would also be good to see the packages sorted into more user-friendly categories, such as “Applications”, “Internet” and “Games”. Currently, packages are spread out through catalogue categories. KMail, for example, has been placed in the “Networking” category, while its documentation is in the “X11” category; and on the other hand, Ximian Evolution is in the “Mail” category!
Competing software delivery systems such as Ximian Red Carpet, Xandros Networks and Lindows’ Click-n-Run have already moved towards more user-friendly package management, although these services are more easily adapted to such a purpose as they are almost entirely web-based. It would be good for the developers to try and move Synaptic away from its current conceptualization as a mere package management tool, and instead reinvent it as a true software management system.