News and EditorialsGentoo Linux emerged (pun intended) as a powerful force on the Linux distribution scene, software installation on most distributions was a subject of much controversy and frequent criticism. The RPM package manager was often at the receiving end of the blame due to its complex dependency structures; typing "rpm dependency hell" into Google's search engine returns over 700 entries. Debian's implementation of its own package management was often seen as technically superior to those found in RPM-based distributions, but many potential users were put off by Debian's other complexities and a lack of graphical installation and configuration utilities. And while Slackware's own package management does not suffer from dependency issues (simply because it doesn't care about them), many will argue that its pkgtool and other package utilities are rather too basic to qualify as a package management tool in the true sense of the word.
Enter the world of Gentoo Linux. With one short command, a user can install any application, without ever having to worry about libraries and other dependencies. The command will download the source code of the requested package, it will also download the source codes of all the dependent packages (if any), then it will configure, compile and install the package(s) without any further intervention on the user's part. Because the vast majority of packages are compiled directly from source code (with some exceptions, such as OpenOffice, Java, Opera, etc.), the user has complete control over package versions, optimizations, even optional dependencies, in some cases. In fact, the only drawbacks when compared to binary package management tools are longer installation times and fairly stringent hardware requirements - the pleasure of using Gentoo Linux rises exponentially with the power of the CPU at hand.
Portage. The main force behind Gentoo's convenient
package management is Portage. Written in Python, Portage not only
provides the all-important "emerge" command, it also groups all
packages, or ebuilds in Gentoo speak, into a logical tree-like
structure in /usr/portage/. Ebuilds can be unmasked, masked or
hard masked, with unmasked ebuilds considered stable and well-tested,
while masked ebuilds are stable, but not yet tested extensively. Hard
masked ebuilds are usually reserved for alpha or beta packages. Only
unmasked packages are installed by default, but this can be overridden
either in /etc/make.conf or on the command line like
# ACCEPT_KEYWORDS="~x86" emerge packagename
The list of current masked packages is stored in /usr/portage/profiles/package.mask. To see the available versions of a package and their masked status in a nicely colored output, we can use the etcat command (part of the gentoolkit package):
# etcat -v mozilla
USE-flags. The USE-flags is a very clever concept,
serving as a central place to configure some of the most basic aspects
of the operating system and its behavior. As an example, if you prefer
to have support for ALSA for all the relevant applications, you have to
specify it as a USE-flag. Once done, these applications will be
compiled with ALSA support included. If you don't specify it centrally
in /etc/make.conf, you would have to compile the applications
with the following command:
# USE="alsa" emerge xmms
The above example is still useful in case a user wants to override the global setting. There are over 200 USE-flags listed in /usr/portage/profiles/use.desc; they provide many "uses" that range from Java and SELinux support to specifying the default Japanese input server or enabling potentially offensive items in packages. The USE-flags also specify one of the CPU architectures - the currently available choices include x86, ppc, ppc64, sparc, alpha, mips, hppa, arm and amd64.
CFLAGS. Much has been said about CFLAGS on various forums, especially by those who never read the GCC manual. Probably the most important decision here is the use of march or mcpu when specifying the type of processor. The former will result in faster binaries at the expense of compatibility, while the latter will be produce somewhat slower binaries, but will cover a wider range of processors. As an example, specifying -mcpu=i586 will result in binaries optimized for i586, but they will also execute on i386; however specifying -march=i586 means that the binaries will only execute on i586, but not on i386 CPUs. Another common CFLAG is -O, which specifies a level of optimization ranging from -Os (optimized for small binaries) to -O1, -O2 or -O3 (optimized for speed). GCC provides over a hundred different CFLAGS.
Examples. Finally, let's have a look at some practical
examples to illustrate the range of available options in Portage. The
handful of the commands listed below are just a tip of the
This is the same as emerge sync (it synchronizes the local portage tree with the latest available portage tree on official repositories), but useful for those users who are behind a firewall blocking the standard rsync port 873
# nice -n19 emerge -u world
This is the same as emerge -u world (it updates all installed packages to their latest available versions), but with a low priority so that the compilation process has a limited effect on the user's ability, in terms of processor resources, to perform other tasks.
# emerge -pv packagename
Lists packages that are dependent, but not yet installed, on packagename.
# emerge /mnt/cdrom/packagename*tbz2
Installs a binary package packagename from the mounted CD-ROM.
# emerge info
Lists all the Portage-specific variables, such as USE, CFLAGS, COMPILER, GENTOO_MIRRORS, etc.
If you are used to the rpm command, you can install Gentoo's epm to query packages. It takes many of the same arguments as rpm itself:
# epm -q packagename
Returns the installed version of packagename
# epm -qa
Returns all installed packages
# epm -qi packagename
Returns information about packagename
# epm -Va
Checks the integrity of all installed packages and reports conflicts
# epm -e packagename
Uninstalls packagename, same as emerge unmerge packagename
Learning about Portage is a journey in itself, a road paved with many pleasant surprises behind every turn. There is no doubt that Portage is one of the most powerful package management utilities available today.
Distribution NewsGentoo Weekly Newsletter for the week of May 31, 2004 is out. This issue covers the release of Wasabi, and several other topics.
Here's the announcement for the release of Wasabi 0.1, a custom log monitoring tool for Gentoo systems.announced the availability of an "open circulation edition" of its distribution. "'We want the Open Circulation version of the Xandros desktop to replicate like a virus,' said Dr. Frederick H. Berenstein, Xandros Chairman and CTO. 'Open computing is coming of age, and every desktop user should know that there's a full-featured Windows alternative out there, and they're going to love it!'" Dropline GNOME 2.6.1 for Slackware and ULB GNOME 0.8.0 for SuSE Linux 9.1. DistroWatch Weekly for June 7, 2004 looks at Damn Small Linux extensions, and several other topics.
New DistributionsKnoppix 64 is a 64 bit Debian based release for 64 bit AMD machines. The initial release, v3.4-EN-2004-05-31, is remastered from KNOPPIX 3.4. The goal of this work is to provide a 64 bit development environment along with the usual desktop tools. Language support includes English, French and German. OpenSLS (or Open Secure Linux Server) is currently a concept work-in-progress. It's aim is to be a secure Linux OS based on Mandrake Linux. Unlike Corporate Server, which is a fine server operating system, OpenSLS will be much more scaled down with a lot of additional security features. OpenSLS 1.0-CURRENT alpha1, released June 3, 2004, is based on Mandrake Linux 9.2 with a lot of cleanup and enhancements.
Minor distribution updatesAstaro Security Linux has released v5.011 with minor bugfixes. "Changes: This Up2Date improves the backend performance and fixes bugs for V4 and V5 backup, content filter configuration, for RSA connections with X.509 and RSA keys, user authentication, network definitions, and uplink failover. It also adds the configuration ability to bypass the content filter/HTTP proxy if needed." Buffalo Linux has released v1.2.3 with minor bugfixes. "Changes: This release includes upgrades to 30 base packages, 21 extra packages, and 15 GNOME packages. The CD now recognizes a previous Buffalo version that supports upgrading (version 1.20 or higher). More minor desktop upgrades were made, including integration of gqview as the icon selector. A 68MB upgrade from 1.2.2 is also available for download." Feather Linux has released v0.5 with major feature enhancements. "Changes: This release is based on Knoppix 3.4, and thus many improvements have been made. MADWIFI, prism54, and speedtouch drivers are now included, and superior hardware support is found throughout. The GIMP script has been fixed. This release removes picocom, adds ncrypt and minicom, reincludes ndiswrapper, adds tcc documentation, and adds scripts to install Ruby, Python, Folding@Home, and GIMPS." Gibraltar Firewall has released v2.0 with major feature enhancements. "Changes: This is a new major release with many changes, focusing on content inspection. HTTP, SMTP, and POP3 traffic can be checked for viruses (clamav and Kaspersky anti-virus) and SPAM, HTTP and POP3 even transparently. User authentication for HTTP has been added, either via user lists or by integrating with MS Active Directory. The base system has been updated, and is now based on a hardened and enhanced 2.4.26 kernel which includes additional firewall match modules (e.g. the P2P traffic match module)." GoboLinux has released v011 with major feature enhancements. "Changes: This release features the introduction of Compile, a new source-based compilation system. Other distinctive features were the switch to the 2.6 kernel series (2.4 is still included), the adoption of the XOrg X11 server, and a large number of upgraded packages." LEAF (Linux Embedded Appliance Firewall) has released Bering-uClibc 2.2-beta3 with major feature enhancements. "Changes: This release introduces a new flexible module loading scheme, is updated to shorewall 2.0.2f, replaces dnscache and dhcpd with dnsmasq, and has some bugfixes." Linux From Scratch has released v5.1.1 with minor bugfixes. "Changes: This release fixed several release-process related problems and minor spelling and grammatical errors. The package and patch versions remain unchanged." Beyond Linux From Scratch (BLFS) v5.1 is also available. Linux LiveCD has released v1.9.4 with major feature enhancements. "Changes: This release adds Frottle (Freenet Throttle) packet scheduling and QoS for wireless networks and mesh WiFi at /opt/frottle. There is a new default config for MRTG graphical network statistics, and updated documentation." RIP has released v9.0. "Changes: Some of the software has been updated, and the download site was changed for faster downloads. There's also a usb.sh script, to enable installing and booting the system on a USB flash drive." Tao Linux has released v1.0 Update 2. "Changes: All current updates to 5/31 were rolled into new set of ISO images. Kernels for i586 and Athlon are included. Development packages are included in the Everything install. Trademark fixes were made for Eclipse and Squirrelmail." ThinTUX has released v0.15 with major feature enhancements. "Changes: This release replaced glibc with uclibc."
Distribution reviewscompares Debian with SuSE Linux. "I switched from Windows to Linux about 4 years ago when I finally found a distribution that didn't annoy me, Debian. It required a bit of manual tweaking but I always found that the important things "Just worked". Well after 3 years of just working, I finally rode my installation into the ground through a combination of kernel upgrades and running a diverse mix of packages from the "unstable", "testing", and even "experimental" branches of Debian. It got to the point where KDE would boot unbearably slowly, applications would fail to start, and my mouse and keyboard would stop working if I didn't use them for a few minutes. After much fiddling I finally decided a reinstall would be the path of least resistance. Since I'd been hearing all these fantastic reviews for Suse 9.1 I thought I would give it a try; after all it sounded like this was finally a no-nonsense, "just works" distribution for the fabled average user."
Page editor: Rebecca Sobol
Next page: Development>>
Copyright © 2004, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds