Review of Sorcerer GNU Linux
ladislavb writes: "Sorcerer GNU Linux is not just another Linux distribution. It did not follow the tried and tested path of modifying a major Linux distribution and releasing it under a new name. Instead, the Sorcerer development team embarked on a completely unconventional way of putting together a unique distribution with features not found anywhere else. Once installed, it will be 100% optimised for your hardware, it will include the very latest Linux applications and it will provide an incredibly convenient way of keeping all software, even essential system libraries, up-to-date. The full review of Sorcerer GNU Linux, as written by DistroWatch.com."
Given the name of the distribution:
;-)
They're going to wish they had a +25 magic staff of bandwidth in the next little while.
I recompiled Qt from source on my four-year-old machine the other day, and it took six hours. I'm not recompiling every bit of software on my machine... it would take weeks. I doubt I could even fit all the source code on my HDD. But then it's a seriously retro setup so I'm probably making a fuss about nothing.
Where I think this would come into its own is on a site, like a university or large company, where there are (a) hundreds of identical machines with exactly the same specification (down to the position of the sticker on the case), and (b) people who know what they're doing (ha ha) in charge. You could amortize the time taken to create the optimised system over the savings once you've installed it on every PC.
I wonder if they support using a compile farm to perform the rebuild? That would be sweet.
These sigs are more interesting tha
Would you like a Linux distribution which is 100% optimised for your hardware? Would you like one which includes the very latest software packages as they are released by their respective maintainers? How would you feel if we told you about a Linux distribution where the entire download-compile-install process of any software (including the Linux Kernel, glibc, GCC, KDE) is done by one simple command? Intrigued? Then read on. Welcome to the magic world of Sorcerer GNU Linux!
1. Introduction Once you install a few Linux distributions, you will soon get to understand the basic process, which is rather similar in most mainstream distributions. Partition your hard drive, select the packages to install, listen to the CD spinning in your drive and when it calms down, you might do some hardware and network configuration to conclude the process. Less then an hour after inserting the installation CD you will have a fully working Linux system on your computer.
But things can be done completely differently. The beauty of Linux is that there are plenty of ways to achieve the same goal. As long as we are free to exercise our creative abilities and implement the resulting ideas, we can create amazing things.
Just think about this for minute - since the vast majority of Linux software comes with source code, why is it necessary to download binary files that somebody compiled on a particular hardware platform and included all sorts of options to run it on thousands of different hardware configurations? Would it not be more logical to compile everything on your own machine, ensuring that the code is optimised for exactly your hardware?
Enter the magic world of Sorcerer GNU Linux, a Linux distribution with a difference.
2. Basic Information Sorcerer GNU Linux (SGL) is a new Linux distribution. Its first release was produced in July 2001 and subsequent updates were very frequent at roughly twice a month. The project's web site is unlikely to win any design awards, but the essential information with FAQs and mailing lists to get anybody started is present.
The basic philosophy of Sorcerer GNU Linux is amazingly simple - after installing it, you will end up with the most optimised system for your particular hardware configuration and, at the same time, you will be running the absolute latest software available.
How does Sorcerer achieve this? First, you download the compressed ISO image, unzip it, burn it to a bootable CD and boot from it. After answering a few questions, you will watch the installation of a basic Linux system on your hard drive. Nothing really differs much from any other distribution until you get to the kernel compilation stage. And this is when things become interesting...
But we will leave a more detailed description of the installation process for the appropriate chapter. Here, just a basic overview: After your kernel is compiled, you will reboot into a brand new system. You are invited to configure your networking, knowing that soon there will be plenty of interesting code running down your cable or telephone line from various parts of the world. The great fun of selecting, downloading and compiling your packages can begin.
So what is the downside of such a distribution? If it is so great, why isn't everybody using it? The main reason is the fact that it takes a bit of knowledge and a lot of time to get Sorcerer GNU Linux up and running on your computer. Installing most other distribution will last less than an hour before you get a full-featured Linux desktop with several window managers, servers and more applications than you can shake a stick at. With Sorcerer, well, you'd better reserve a rainy weekend for it if you'd like to achieve the same. Some people might find this too time consuming, but those of us who like to tinker and optimise every bit and every byte of our hardware and those of us who like to run the latest software as it is produced, will find that Sorcerer is a dream come true.
3. Installation Let's get going with the installation process. There are several steps to accomplish this:
1. Download the compressed ISO image. 2. Install a basic (binary) Linux system from the downloaded CD image. 3. Compile the kernel. 4. Configure networking. 5. Recompile all the applications from the original CD image. 6. Get, compile and install all applications you need.
We will look at each of these steps separately.
3.1 Downloading Sorcerer The Sorcerer GNU Linux can be downloaded from the project's web site and its mirrors (see the side bar for links). The size of the compressed ISO image is about 80 MB and this swells to about 250 MB after unzipping the archive. You can use any standard CD writing tool to create a bootable installation CD.
Keep in mind that this ISO image gets updated frequently, so your downloaded image will quickly become out of date. This is where a unique feature to update the downloaded ISO image comes handy. This was primarily designed for those on a slow connection - instead of downloading the entire new ISO image, you can opt to download a small patch with the *.xdelta extension. To upgrade the original ISO image to the latest version, simply type:
xdelta patch sorcerer-$OLDDATE-to-$NEWDATE.xdelta sorcerer-$OLDDATE.iso sorcerer $NEWDATE.iso
This command will produce a new ISO image. Now you can verify the md5sum of the new ISO and if it matches the one found on the Sorcerer's download page, the image is ready to be burnt!
Naturally, there is no need to get the latest ISOs if you have Sorcerer GNU Linux up and running, but this feature might come handy in cases when you wish to burn the very latest image without actually downloading it. This way you can always keep the latest ISO image on the hard disk in case you decide to do a new installation or in case you would like to pass the latest image to a friend.
3.2 Installing a Basic System This step is, in most parts, similar to installing any other Linux distribution. The installer offers partitioning tools, such as fdisk, cfdisk and parted to create partitions. You can then proceed with selecting your root partition and its file system (ext2, ext3, ReiserFS and XFS are offered) and a swap partition. You will be advised to create a large swap partition, the basic rule is that your amount of RAM plus the size of swap partition should be at least 1 GB. Do not ignore this advice! Although the installer will complete the installation even if the above condition is not met, you will run into trouble later when trying to compile large programs and get frequent "out of memory" errors.
This memory requirement might seem strange at first, but the logic behind it is that Sorcerer makes use of "tmpfs", a virtual RAM drive which can also use swap space, to accelerate compilation and minimise file system fragmentation. Because of the "tmpfs" file system, Sorcerer expedites compilation by making the most efficient use of RAM. This makes sense as you are about to do a lot of compiling and the compilation speed gains are definitely noticeable.
As soon as the partitioning is done, you can start with the installation. Note that at this stage you are still installing binary files found on the installation CD to create a basic working system. These packages will be recompiled at a later stage.
3.3 Compiling Linux Kernel The next step is where similarities with mainstream distributions end. Yes, you are going to compile the kernel. This is of course where you can spend quite a lot of time tweaking and optimising, but at the very least, you should make sure that you select all the necessary modules for your hardware. Check the modules for your network, sound and video devices as well as any other hardware you need. Of course, you can always recompile the kernel later if something is missing.
After the compiling is done, you will be prompted to configure networking.
3.4 Configuring Networking First of all, you need to load the module for your network card (provided that you have compiled it into the kernel). This is best done by creating an alias in your /etc/modules.conf file: 'alias eth0 network-card-module', then loading the module with 'modprobe eth0'. At this point you should have a working network card. If you had compiled the network driver into the kernel, the above step is unnecessary.
Sorcerer used to provide both DHCP a PPP support to connect to the outside world. Being on ADSL connection, I looked for a PPPoE support which my service provider required. I failed to find any way to connect with the tools provided so I had to install Roaring Penguin's RP-PPPoE package, sources of which I had on another partition. When I mentioned this to Kyle Sallee, the author of the distribution, he promptly produced a brand new Sorcerer release with the PPPoE support built into the installation script! "If you need anything slightly more exotic, just provide me with the details to set it up", replied Kyle.
Ah, the wonders of personalised technical support only available in niche distributions!
3.5 Recompiling Installed Applications You only need to execute two commands in this stage, but the execution is likely to kill an entire evening. The two commands are: 'sorcery update' and 'sorcery rebuild'. The first command simply fetches the latest application database from the Sorcerer web site. This is to ensure that you do not compile older packages if newer are available.
The second command recompiles the existing software on your system. This process is interactive by default and you are prompted to look at the compilation log after each package. It is possible to disable the prompt in the sorcery menu so that you can run this process during your sleeping time. And when you wake up, you will have a 100% optimised system and it is not even necessary to reboot!
3.6 Getting, Compiling and Installing Applications The final step towards a fully working Linux box is downloading, compiling and installing all the software (or spells, in Sorcerer's terminology) you need. The beauty of this seemingly troublesome and scary process (especially if you have tried to do this on other distributions) is that all this is done by a simple command, which is 'cast package-name'. If you prefer a menu-driven way, you can simply type 'sorcery' and you will be presented with a categorised list of applications to choose from.
The list of applications (or spells) is taken from a database called 'grimoire', which is a sorcerer's book of spells containing nearly 700 spells at the time of writing. This database is updated daily ensuring that all new software releases find their ways into the grimoire within a short period of the official release. Trying to impress your friends? Sorcerer GNU Linux will certainly make them green with envy...
So how are all the dependencies resolved, you might ask. Isn't this part the most troublesome of all? The dependencies are taken care of for your convenience and peace of mind. Once you cast a spell (i.e. execute a package installation command), you will be prompted to include all the necessary dependencies into your spell. Additionally, you will be prompted to include or exclude optional dependencies, another feature not found in any other Linux distribution. The most amazing thing about this feature is that the entire download-compile-install infrastructure was written in nothing more sophisticated than Bash.
As soon as the basic stuff is installed, you are free to indulge in the vast packages resources provided by the distribution. You can continue with compiling XFree86 which is a rather lengthy step, taking nearly 40 minutes on the Pentium 4 machine. Casting XFree86 prompts you to run the configuration menu, which is an essential step if you would like to include specific drivers for your graphics card. Afterwards you can proceed with casting a window manager of your choice (the very latest versions of KDE, Gnome, WindowMaker, IceWM, Sawfish, Enlightenment, AfterStep, Blackbox and others are included) plus its associated libraries. Install any other software you need and a few hours of largely incomprehensible messages on your monitor (unless you prefer to turn this output off) will produce a pretty complete system by any standard. The Sorcerer's spells have been cast!
4. Post-installation Now you have a complete Linux system ready to be put to productive use as would be the case with any other Linux distribution. But apart from having the most up-to-date and most optimised system within a considerable radius of your location, there are still some interesting and unique tricks up Sorcerer's sleeves, not seen anywhere else. Let us examine some of the more interesting ones:
1. Software updates 2. Sorcery options 3. Rescue and maintenance
4.1 Software Updates The beauty of this distribution is that it is incredibly effortless to keep up-to-date with the ever evolving Linux application world. With a simple command of 'sorcery update', you can do a system-wide update of your entire installation. Creating a crontab entry for this command to run every night will result in a completely seamless update of your applications. Wouldn't it be nice to wake up one morning to find out that you have a brand new KDE desktop without as much as moving your finger? With Sorcerer GNU Linux, this is indeed a reality.
There are two ways to update software on your system - a menu-driven sorcery and a command-line sorcery.
Beginners might find the menu-driven way easier at first and it is certainly worth a look. The utility is invoked by typing 'sorcery' on the command line. The first option on the list is 'Spell', which, when clicked, reveals a further submenu. From this menu, you can select to install new applications from a categorised list of nearly 700 spells, you can recompile all applications on your system, you can select applications that should not be updated during the next system-wide update and you can remove applications from your system. The menus are very logical and self-explanatory and help is provided in the form of (sometimes humorous) one-line hints at the bottom of the screen.
Updating your system from the command line is equally easy once you master a few simple commands. Installing a new package is done with the 'cast package-name' command; just remember that the term 'install', used by most other Linux distributions is not accurate as 'casting' actually involves downloading, compiling and installing the package. Ever tried to compile KDE on another Linux distribution and gave up because of the hard work involved? With Sorcerer, all you have to do is to type 'cast kde' and off you go, no more studying of installation instructions, interpreting cryptic error messages and searching newsgroups! It really is as easy as that!
The next command you will use frequently is 'gaze'. It offers an amazing array of useful options, which you can view by simply typing 'gaze'. Would you like to see a list of all packages installed on your system? Type 'gaze installed'. Do you want to see the list of available packages? Type 'gaze grimoire'. Fancy to find out the package's description, web site, maintainer or md5sum? How about searching the package list, viewing compile logs or listing the source files for a package? All this and a lot more can be done with the 'gaze' command, which is worth investigating in detail.
4.2 Sorcery Options The Options menu in 'sorcery' offers a range of useful features. We will only mention some of the more interesting ones, but do take your time to find what else is offered.
The PROMPT DELAY option allows you to set the delay time, in seconds, for prompts while compiling and installing multiple packages - if no input is given within the specified time, a default action is taken.
The APPRENTICE option allows you to execute a command even if the associated package is not installed on your system. Sorcery will simply download, compile and install the necessary package before executing it. The list of executables and associated packages is stored in the /var/lib/sorcery/apprentice directory.
The AUTOFIX option, if enabled, is very useful in cases when important system libraries get updated. This would normally break most packages that depend on these libraries, but the AUTOFIX options checks and rebuilds all packages that would otherwise be broken. This option is enabled by default. It is worth noting that any packages that need to be rebuilt as a result of updated system libraries will not be downloaded again, but rather compiled from sources already present on your hard drive.
Imagine for a moment that a new version of glibc gets released. To update it, you can simply 'cast glibc', which will build a new glibc, remove the old glibc libraries and recompile every package dependent on glibc. During this process, there is a brief moment when there is no glibc in /lib or /usr/lib, but despite of that no application already running on your system will be affected! The Sorcerer's magic at its best!
Other options worth mentioning are MAIL_REPORTS, which will e-mail installation reports to the specified e-mail address, VOYEUR, which turns on or off compiler's verbose output and REAP, which, if enabled, causes that upon removing a package, all associated files are also deleted.
Finally, two more useful options to speed things up. To eliminate bandwidth bottlenecks, the software packages do not get downloaded from a central location, but rather from a maintainer's home site, FTP server or mirror. The 'Software Mirrors' option allows you to select a nearby mirror for the Linux Kernel, GNU packages, KDE, XFree86 and Gnome. The last option on the menu is 'Optimize Architecture', which gives you a chance to optimise all source code compiles for one of the available processor architectures - i586, i686, K6 or Athlon.
It should be noted that the list of features is not static, but keeps growing based on user feedback.
4.3 Rescue, Maintenance and Administration It is worth mentioning that your Sorcerer CD can serve as a rescue image as well. If you happen to get into trouble, you can boot from the CD, log in and carry out any necessary maintenance tasks. While this is not a unique feature, it is always nice to see that there is a simple way to log into your Linux system!
The Sorcerer web site provides a categorised list of FAQs in the documentation section and you are encouraged to join the mailing lists where you will receive a warm welcome from the members.
System debugging is handled with the help of extensive log files No other Linux distribution provides this feature, which greatly simplifies bug fixing and bug reporting procedures. The fact that Sorcerer GNU Linux is so highly up-to-date and remarkably bug-free can be partly attributed to the use of these log files Have you encountered a problem during software compilation or installation? Instead of describing it verbally, submit the log file and the bug will be fixed in no time!
The next question that comes to mind is what if you want to install a package not yet available in the grimoire, the Sorcerer's software database? Apart from compiling the package using the standard method of configure && make && make install, you are more than welcome to create your own spells. This way, not only will the new package become part of the sorcery, simplifying the install/uninstall management, you can also share your spell with the rest of the Sorcerer user community. Creating spells is not too difficult and extensive instructions are provided.
Finally, a recently introduced sorcery feature, called 'cabal' provides administration and command execution tools for simultaneous use on multiple Linux systems. It uses nothing more fancy than ssh2 keys, ssh, and scp, a set of simple tools to make a system administrator's life a little easier.
5. Pros and Cons Advantages
1. Sorcerer is 100% optimised. Not many people will argue this benefit. By virtue of compiling every piece of code on your own system, you are making sure that you get as much out of your hardware as you can. Of all the Linux distributions currently tracked by DistroWatch, only three are source-based (the other two being Linux From Scratch and Gentoo Linux). No binary distribution can beat a source-based distribution compiled on its home turf!
2. Sorcerer is the most up-to-date distribution. This benefit might be void in cases where there is no need to run the latest and greatest software, such as in case of some specialist servers. Still, security issues do appear from time to time and having the benefit of an easy path to upgrading the affected application can save many hassles. Because this distribution is so highly up-to-date, all security and bug fixes are applied routinely.
3. Sorcerer offers excellent support, both direct and via mailing lists. In line with most smaller and niche distributions, the author will often personally reply to your concerns and listen to users' suggestions. The PPPoE feature I asked about was placed in the next Sorcerer release literally within a few hours after I e-mailed the author!
4. Sorcerer is continuously being enhanced. While already pretty complete and feature-rich, there are still many new features planned for inclusion in future releases. Of course, many other Linux distributions can claim this, but given the completely unconventional way of doing things at Sorcerer, we can only look forward to more unique features not found anywhere else.
5. Sorcerer is fun to use. Admittedly, this is a highly subjective quality, but I can honestly say that I have never had more fun with any other Linux distro. Period.
Disadvantages
1. Sorcerer takes time to get installed. Installing a Linux distribution is a lot less troublesome than it used to be and most mainstream ones will get you up and running in less than an hour. Sorcerer, on the other hand will require many hours of compiling before producing a full-featured system. However, the benefits of compiling all software are unquestionable.
2. Sorcerer lacks decent documentation. As is often the case with many new projects, the documentation has not been given the highest priority. The current structure of hard-to-navigate FAQs and installation/usage notes resemble a schoolboy's scribbles rather than a carefully designed operating manual. The author seems well aware of this deficiency and welcomes any contributed documentation such as FAQs, man pages or installation instructions.
3. Sorcerer is not for beginners. You don't need to be a Linux megaguru to install and run Sorcerer, but you should be reasonable proficient in basic system administration. There are many choices to be made during installations and configurations of your system, some of which may be vital. You also need a thorough knowledge of your hardware and the kernel modules required by each hardware component. If you are not sure, you can simply accept the defaults, but it helps if you know a little about the Linux Kernel, XFree86, Perl and other configuration options.
6. Summary Of all Linux distributions available today, Sorcerer GNU Linux is positively the most unconventional. Instead of following the tried and tested method of many binary distributions, the development team has not only created a unique product, it has at the same time solved many of the perceived problems, traditionally associated with the Linux operating system. The amazingly simple and fluent method of installing and upgrading software and system libraries makes one wonder why no other distribution has invented anything even remotely similar.
While some may argue that Sorcerer's is a more time consuming method of keeping up with the Linux application development, it is still much less time consuming than resolving library dependencies, interpreting error messages and spending time on newsgroups searching for answers. Because of the sophisticated download-compile-install infrastructure of sorcery (while written in nothing more sophisticated than Bash), keeping your Linux box up-to-date is a painless process. Best of all, every single package is fully optimised for your hardware as it is compiled.
Despite the development team's claim, Sorcerer GNU Linux is, in my opinion, a revolutionary Linux distribution. Do yourself a favour and download the 80 MB file, then find a weekend to explore it. I can virtually guarantee that at the end of the weekend you will be asking yourself questions like: "Why has nobody else thought of this!? Is it possible that installing and upgrading Linux software can be as simple as that?" You will have to pinch yourself to believe that you are not dreaming.
I do not normally indulge in predicting the future. But if only 6 months of development resulted in the product of this sophistication and quality, then I honestly believe that Sorcerer GNU Linux is going to become a major Linux player in the near future.
Does this mean Aunt Tillie gets to build her own kernel?
Damn, That was fast! Leave it to the GNU community!!!!
Here is a mirror of the review of sorcerer as the distrowatch site appears to have had the obvious done to it already :/
The problem with slashdot is that most of its users were bullied and stuffed into lockers as kids!
I think this is an interesting idea but has a few flaws.
First they ask that your swap image be at least 1gb in size. I don't know about everyone else, but my linux partition is just 2gb so that's half of my disk already. I know, I know, these days everyone has 30, 40, and 60gb drives so it's not a big deal. Maybe it's just time for me to get more iron.
Anyways, the big feature this distro seems to be claiming is the automatic (and seamless updates). You can run this "sorcery update" command in a cron job at night and have a brand spanking new system the next morning. While this sounds like the cats meow, what if I don't want the latest and greatest? I personally don't to live on the bleeding edge and don't always want the lastest. Also, who decides what's the latest? The latest beta? Is it running the 2.4.17 kernel or something even newer? What version of KDE does it have?
It's also a huge distribution and requires a dedicated weekend to get up and running. The name implies that it's something that a beginner could sit down and startup with, but this is not the case. If you're looking for a simple install, stick with Mandrake/RedHat or something. If you have a few gigs to chew up and a weekend to burn, maybe give it a try.
liB
I am sure it is all nice and optimised when you compile everything from source.
There is just one disadvantage; while you are compiling that latest version of XFree86, gnome or kde the computer does not feel really optimised.
Compiling everything is just too much hassle, and takes too much time and computing power.
For a server there are not that many packages installed, so it can be usefull. But on my desktop I have about 2Gb software installed. Keeping that up to date.......nah.
Just let me update everything from binary, be it apt-get or urpmi.
Btw, I have a friend who was horrified when I showed him apt-get. Do you update from binaries? Do you call that security?
He liked to install security-updates from source.
When asking sometime later how he kept his FreeBSD boxes up to date he said he did not do that. He felt safe behind a firewall.
Hmm, I guess it is just too much hassle.
Well, don't worry about that. We can get you back before you leave. (Dr. Who)
This...
You will be advised to create a large swap partition, the basic rule is that your amount of RAM plus the size of swap partition should be at least 1 GB. Do not ignore this advice! Although the installer will complete the installation even if the above condition is not met, you will run into trouble later when trying to compile large programs and get frequent "out of memory" errors. This memory requirement might seem strange at first, but the logic behind it is that Sorcerer makes use of "tmpfs", a virtual RAM drive which can also use swap space, to accelerate compilation and minimise file system fragmentation. Because of the "tmpfs" file system, Sorcerer expedites compilation by making the most efficient use of RAM. This makes sense as you are about to do a lot of compiling and the compilation speed gains are definitely noticeable.
Reminded me of a quote from an old fortune file: Virtual Memory ? Wow! Now we can have really large RAM disks...
The user would then pick what software they want installed on their system, as per any other distro.
The server site can then take the source, recompile it for that configuration, and generate a set of ISO images containing the optimized setup for that machine.
One advantage of this approach is that if you're installing on multiple identical machines, you would only go through the process once. Once it's done, you'd have a set of "instant" install CDs. No menus, no further tweaking, just a direct blast onto the hard drive(s).
A second advantage is that a server site can have a compiler farm, making the build process MUCH quicker than would be possible for an individual.
A third advantage is that if someone sends in a configuration which matches one that's already been done, the compiler farm only needs to rebuild updated packages. The rest has already been done. The CDs can then be built out of freshly-compiled binaries and pre-compiled ones.
A fourth advantage is start-up time. Because you're downloading a very basic bootstrap, rather than a mini-distro, the time to download, install and run is going to be much much less.
The last advantage is when it comes to updating your system. Again, with all the compiling being done on a remote compiler farm, the time it would take to do a basic update would be minimal, compared to Sorcerer, and far more optimal, compared to Up2Date or Red-Carpet.
The key to something like this would be the detection of hardware and (on networks) servers. Kudzu is good, but it's limited. sensors-detect is OK, but it's specific. I don't know what Anaconda uses to detect the graphics stuff, but again that is good, but specific. Any router can detect other routers working with the same protocol. There's plenty of stuff that none of the above detect, but would need to, for a truly optimized build & auto-configure. (Is the network multicast-aware? Will the network support ECN? What is/are the IP addresses of routers on the network? Where is a DNS server? Is the sound device better supported under ALSA or OSS? Do memory constraints indicate optimizing for speed or size? etc.)
An optimized build is more than just tweaking the configure options. It's also choosing the right compiler (where multiple options exist). It's setting up the configuration files for those things that can be discovered. It's about asking for the information that's needed, rather than the information that can be found out.
My idea would be that the servers would have a database, containing source and binaries, identified by a 1-way hash of the relevent hardware information. This avoids any privacy issues, as there's nothing private stored. Each access would amount to a search for all records where the hashes of the relevent hardware match. For updates, the user's machine could then select/deselect stuff it already had. The rest would be put into ISO form, and be available for download.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
A decent amount of software you can get for linux nowadays comes with a ton of compile options. When I get a binary package from debian or redhat I have no say over which of those options were turned on. Maybe I don't want postfix to be able to support ldap and mysql and postgresql lookups? Well, tough, I don't have any choice in the matter and so I have to download and install those libraries to satisfy postfix's dependencies.
Sometimes (most often in the case of SSL) you'll see multiple versions of the same package to satisfy problems like this. This is a hack to solve the problem. Sure I can install lynx-ssl instead of lynx but what if I want lynx to use slang instead of ncurses?
This is more about control than optimization. While I'm not sure this level of control is necessary for everyone, control is one of the selling points of Open Source Software and something that most people like to have.
Seriously what more besides apt-get do people need for updates? I mean I was so disenchanted with mandrakeupdater that when I got back into the swing of linux after a dry spell I almost gave up. Now with debian at least I can update things without fear of the kernel segfaulting on the next boot.
... building new machines (even slightly different ones than the model) is just too easy to give up ... even for this.
I am an avid Debian user, and have moved an entire enterprise over to Debian because apt-get makes a system administrators life so much easier and it halved my work load as a result. For binary distributions apt-get is unmatched, and apt-get source, while not perfect, is a very nice way to get sources and compile them.
However, there are better approaches. FreeBSDs "ports" system comes to mind, where a skeletal directory tree structure and a simple make command are all that are required to automate the download, compilation, and installation procedure for a plethora of third party applications.
No library conflicts. Any necessary patches applied on the fly, optomized and compiled for your system. It was, until this distribution came along, the only installation method I'd ever heard of, much less seen, that beat even apt-get hands down.
If this distribution lives up to its billing, it will be only the second, placing Debian's apt-get, Sorcerer, and FreeBSDs "ports" in a class all their own. Even as an avid Debian user I will be spending much of this weekend playing with Sorcerer.
The real question is, will there be a good replicator or, better yet, automated installation utility so I can build 50 machines on 50 similar but not identical machines, without having to sit in front of each one? Replicator is the one thing that will keep me using Debian at work
The Future of Human Evolution: Autonomy
Everyone here seems to point out that the time it takes to compile the complete system is the problem. I mean, isn't this the price to pay for optimized software? Isn't this what [plenty of] people want?
Sure, it's gonna' take a while to compile X, KDE and the like. But this is the other half of the operating system, many people will be using this exclusively, right? Wouldn't you want that to be optimized? It's the GUI, in my experience, the most demanding part of the system.
But, I'm just a user. The whole thing sounds damn cool. I don't mind taking a day to compile *all* the software, just don't make me sit there in front of the machine the whole time hitting 'Y' and enter.
The thing that intimidates me [still, yes] is the fact that I have to configure the kernel. I have never really got this to work for me. I think [complaint coming] there should be an choice for "Auto-configure" or "Configure Now".
I'll understand if this isn't possible, but that seems to be the only thing in my way. I'm still going to download this and try it. The kernel config gets me though. I always seem to leave something out.
Question: Are we using the same config utility that comes with the kernel tarballs? And does the configuration menus come up blank or does it 'best-guess' and let you add and remove the things you need?
Get your Unix fortune now!
>Wouldn't it be more efficient to provide a couple of different binary packages for each package a'la mandrake (i586 and i486) ?
./configure --with-...
:)
No. I don't know what all the fuzz about those optimizations is, but the real advantage imho is the configuratibility.
You want your ftpd, mta to have kerberos support, ldap ? You want KDE to user alsa only instead of OSS ? You do not use Netscape Plugins and there do not need this motif dependency ?
Here is your way to go:
You want to provide a binary for every "architekture" with every possible combination (dependency) ?
No. usually you are eating what your distribution serves you and don't care about having your postfix make you also require to install slapd, too. Even if you don't use it at all. Fair trade of convenience vs. bloat.
I do not know how those "source based" Linux Distros (rocklinux, lrs-linux, gentoo, sorcerer) handle this, but for FreeBSD you have either your make.conf or your configure-args in your port makefile. Or even a curses based selection menu. Latter one rocks.
Sure, for a "base system" one usually does need to many selectins (maybe include acl support, glibc support for 2.2 kernels or use pam or not), but for "applications" I consider this essential.
Anyway, I will sooner or later give either of those four known-to-me source-based distros a chance and see how tey stad up to mighty-ole slack
Its about choice, not binaries.
Hmmm. That really doesn't sound like hardware that is four years old to me. And are we talking a buildworld from scratch-- none of this stuff had ever been compiled on that machine before? For how much of the ports tree? Just for the minimal install or for X, Gnome|KDE, some major apps like GIMP or KOffice or Evolution or Mozilla?
./configure options you want, and more control over the whole install.
You see where I'm going with this, of course... but compare your situation to mine. I've got one machine that I use regularly that is five years old, and therefore has a P/133 in it (it's a laptop, and it works for the things a laptop should do, there is no reason to go spending hundreds of dollars on newer hardware). That said, I disagree with our erstwhile whiner about the compile times being an issue. It won't take weeks, but it will take some effort and maybe a few days, especially if you don't have an automation tool to help you. Even so, set the larger packages to compile when you go to bed, or off to work, or whenever. And think of this as a one time investment, you won't be recompiling most of this stuff over and over.
If this distro does even half of the hard parts: knowing where to get fresh source code, downloading the code to a local repository, helping configure the build, automating the build process, then it's quite a boon. And yes, you may have to wait for some time for this stuff to compile and install, but through the magic of CVS you might not have to wait so long to upgrade parts of it. *And* you get all the benefits of compiling from source- optimizations, special
I do not have a signature
After the years of RPM-Based Distros, it seems as if those "self-building" distros are the new trend. We now have 3 of them:
;).
RockLinux
Gentoo Linux
and Sorcerer Linux...
From my experiences and what I've heard Gentoo is the by far stablest and easiest to install of them and recently got a really good review at Newsforge.
I don't really know if that is good concept, because the time/use of self-compiling every bit of software is quite low IMO. What is needed is a new Distro, that builds the Kernel itself and installs all the other application through RPM. That would maximize Speed and usability. My friend and I are working on something like this right now
Boycot? Blackout? Subscriptions?
I don't care!
The whole idea of a kernel is that it provides an abstraction layer to the hardware: the optimization based on all these "thousands of hardware configurations" takes place in the kernel.
Let's take a look at the most important pieces of hardware that are in the computer:
The conclusion is that it is really nonsense to compile _everything_ from source. Have the users compile their kernel based on their hardware. Make sure they have the correct xfree driver for their video card and a correct xfree config file. That's all the "hardware optimization" you're ever going to need.
So why do people nowadays compile programs, then? That has nothing to do with hardware, but with the myriad of libraries Out There. Binaries will of course change if you compile them on libc5 or glibc2.1. But if you stick with one distribution, that is never a problem. The problem is there if you want programs that don't come with your distro. Again, there's really no reason to compile the programs that do come with the distro.
But that's just my opinion. Of course these people should be praised, because they had a Good Idea [tm] and did something with it.
they seem to do a bit more hardware detection, but for a running freebsd, the sequence
cd
make update
portsdb -uU
make buildworld
make buildkernel KERNELCONF=mykernelname
make installkernel KERNELCONF=mykernelnambe
init 1
make installworld
reboot
pkgdb -F
portupgrade -arR
will recompile every last line of the OS, and then fetch source code from the distribution site for every port that has an update available (the -a), check checksums, grab the ports upon which these packages depend (the -R [ok, this is overkill:) ]), compile those, compile the updated packages, and then do all packages which depend upon the freshly compiled packages (the -r).
a really cool process, which eats tons of cpu & banwidth
hawk
Thought it should be called Sourcerer.
--
The Cap is nigh. Time to get a fresh new account.
When updating packages rpm-style (especially something like KDE) it's really annoying that some of them are so large, while the change from the last version (that might still lie around on your platter somewhere) is probably less than a few percent of that.
It would heavily reduce bandwith, were it possible to grab just the diffs (and maybe an MD5 sum of the package complete with diffs), and not everyone has a T1 out there. With binaries that wouldn't make much sense (until one applied a very specialized diff), but with source-updates it would work well.
.
"By the way if anyone here is in advertising or marketing... kill yourself." -- Bill Hicks
You don't have to compile your 2Gigs every night. Nor do you have to compile it all at install time. I don't think Sorceror will let you install from premade binaries, but that's irrelevant if you aren't using binaries.
Here's what you do on your distro (if it will let you compile from source without mangling the package system):
Monday: compile the kernel and glibc
Tuesday: compile gcc, binutisl, textutils
Wednesday: compile XFree86
Thursday: compile kde-libs, kde-base (or gnome equivs)
Friday: compile kde-network, kde-utils (or gnome equivs)
etc
etc
etc
The advantages of doing your own builds, summarized (you can get detailed advantages on the sorceror, gentoo and freebsd pages):
Significant performance increase
Customized package configuration (Dia without GNOME, Xmms with mods, etc)
Fewer dependency problems (let configure worry about which exact libs you have installed)
Binary packages are convenient during installation, but they shouldn't be the final product on your box. They're so you can get a system up and running fast. Afterwards you can rebuild everything in the background while you're posting your trolls.
Most of you Linux guys are fanatical about Open Source and Free Software. It's your mantra and credo. Yet you fear the words "./configure; make; make install" every bit as much as the clueless windoze lusers. Free Software is meaningless without source code. Without source it might as well be proprietary freeware. Source code is your power. Don't pheer the source!
A Free Operating System allows you to do whatever you want with it! You are in control. Your box is yours. So why is some release manager at Redhat or SuSE your sysadmin-by-proxy?
A Government Is a Body of People, Usually Notably Ungoverned