Subject: Re: CCL:Which Linux to use in a research/educational envioronment?

From: Timm Essigke <Timm.Essigke*at*uni-bayreuth.de>
Date: Thu, 25 Mar 2004 21:25:38 +0100

Dear Jan,

> Dear CCL,
> 
> With Linux getting more popular and becoming a commercial entity
> one, has to make a decision what to install on his/her desktop.
> The situation is even more complicated, if you need to install Linux
> on hundreds of desktops. 

I think it depends on experience and personal taste. It is a great 
question to start a flame war, since the points below are hard to 
analyse in an objective way. Who knows what future will bring us?

The choice for installing something on the personal desktop and for 
hundreds of desktops is (maybe) different. For a single desktop, maybe 
having little experience with Linux a comercial 
insert-CD-and-press-button installation might be preferable. For 
hundreds of PCs one should think a bit more carefull:

- How different will the desktops be? Best: To have only a few (one) 
groups of computers (maybe even with similar hardware), but this depends 
how similar the work of the users is.
- What is more important:
   - stable system
   - long update cycles (not to install a new distro ever 3 months on 
all computers, as it is the case for some comercial)
   Or:
   - cutting edge features
   - newest software versions installed
Probably you have to make a trade-off. Maybe you have some developers 
which depend on having the newest glibc or lots of feature loving 
kiddies which complain all the time if they have not the coolest newest 
features in their desktop environment.
For me personally stability and security counts most and I want to have 
as little work as possible (sysadmin is not my main job, but I want to 
do my PhD at some point...). A desktop environment is good for placing 
lots of console windows, but I do not need any features except that it 
does not consume much space on my screen. But people comming from M$ are 
probably less puristic...

> The critical points from my perspective are:
> 
> 1) Which flavor/vendor of Linux will be supported by the vendors
>     of application software.  As much, as I may like Debian, many
>     commercial packages will not work with it (e.g., due  to file
>     system differences).
In the moment there is no Linux distro with which you are free of such 
problems. Suse RPMs do not work for Redhat and vice versa. If you have 
to deal a lot with commercial packages from the US, Redhat is probably 
preferred. In Europe (esp. Germany) it will be Suse. For some 
open-source projects you may only find DEBs and tar, but no RPMs...
So if you require some commercial package on all computers (and 
(re-)building a package or installing as tar (e.g. on a central 
fileserver) is not possible) you might take what the company forces you 
to use. (I would think twice if there is no alternative for the software...)
I use Debian for our lab. If possible (and desired) I try to get DEBs 
and install them on all computers, but for special (scientific software, 
software with frequently new versions, e.g. browsers) I think it is 
better to have a central server and mount it to all desktops via NFS.
So far it works fine for me.
> 
> 2) What is the deployment cost (in a broad sense, "the real cost
>     of ownership"):
>     a) how much you need to pay for the license (for example
>        some "Enterprise" Linux distributions)?
And how often you have to pay it. If you do not follow the upgrade path 
of the commercial distro and skip some updates it is quite likely that 
you will have to reinstall everything.
> 
>     b) how solid is a linux distribution and how much time you need
>        to install it and make it work?
Solid: As stated above, is most important for me. Debian stable is 
therefore my preference - with some rebuild packages from testing for 
things I use often and the stable version is lacking function. It is an 
advantage from Debian that you can mix packages by using apt pinning. 
(Unfortunatly the official packages have different glibc versions, that 
recompiling is neccessary, but this is also widely automated in Debian)

Installation time: On a single computer it might take longer because 
hardware autodetection is not that advanced as in some commercial 
distros, but I like it because I never trust plug-and-play...
If you want to install hundreds of computers you can not do it 
individually anyway. You need a automated solution. Suse started 
relatively late with something like that and it was not very useable, 
when I looked at it (but this may have changed - it was over a year 
ago). Redhat has its kickstart, which seems to be useable. I have not 
used it myself, but know others who use it. For Debian there is FAI, 
which works fine. It takes a while to define what you actually want, but 
then you can install your 100 computers in 15 min (dependend on 
hardware, packageselection etc.).

Make it work: I am not sure what you mean exactly. I guess you mean the 
postinstallation, after the installation program finished. This depends 
on your network infrastructure, e.g. how user management is organized, 
if you use DHCP or not, if you have centralized servers e.g. for 
printing etc. If you are very standard with everything, the installation 
program might be able to do everything right. If you are less standard, 
than it is more handwork, but this is automated by the network 
installation software. FAI is very flexible on that.
Another point is to provide all the infrastructure (server for all 
services) needed in your network. This is more work than the 100 
desktops if they are all the same. There are all-in-one solutions from 
some companies, but I personally don't like it when I don't know what is 
going on. If you installed everything by hand, you get a system suited 
for your needs and if there are errors you can debug them. With the 
commercial solutions you depend on the support - do you want that?
For me security is as important as stability (an insecure system is not 
a reliable system). Therefore I don't trust any company solution. If I 
do it myself I know where the weaknesses are. Company solutions have 
usually the aim to replace a sysadmin by a GUI. Easy usage is more 
important than security. I think this is a missconception.
> 
>     c)  How much maintainance is required?
>           i)  The "Enterprise" (and pricy) Linuces promise stability,
>               easy upgrade and patching paths, and Administration tools,
>               which make maintainance easier for large installed base.
>               They also promise continuity and backward compatibility
>               for older packages installed on your computer. 
But mainly they want to sell new versions and support contracts.
>          ii)  The "development" (and free) Linuces will require frequent
>               patches, release upgrades, etc.
Debian Woody is there now since Jul 2002. Ofcause you have to do some 
security updates, but this can be nearly automated by some scripts.
Patches etc. are only neccessary if you want to be cutting edge.

>               You will most likely face
>               glibc compatibility problems for many packages when
>               you upgrade,
If you go to a newer glibc you have to upgrade many packages at the same 
time, but such dependencies are resolved automatically by apt. For most 
programs you can still get packages for older versions. I had more 
problems with Suse being ahead of certain package developments (not yet 
ready for the new version).
> have constant problems with kernel versions
>               (e.g., for device drivers, which require recompilation
>               for specific kernel), etc., etc...
If you need lots of exotic hardware...
A conservative approach (what is really needed and provide only this) 
saves a lot of time.
> 
> 3) Portability... Related to the above. If you compile your software on
>     one Linux, can you expect it to run on many other Linux boxes,
>     or only on a specific flavor of Linux.
Depends, but it is not unlikely that you get problems with different 
libraries. But if you keep all computers the same, than there are no 
problems. If you have too many differences you will never get a running 
network because you have to care about each computer individually. Put 
time in automating things instead of redoing things on different 
computers. This scales much better.
An advantage of Unix is that you CAN compile your software for your OS 
and architecture. This is what I understand by real portability...
> 
> There are obviously more issues. I will summarize the answers and
> will make sure that I protect the sources (for corporate respondees,
> this may be important).
> 
> Thanks in advance
> 
> Jan

In the end you have to try different distros yourself. Again, it depends 
on experience, time (full time admin or is something else your real 
job), how many computers and how similar there are, what the users do 
with them, if you prefer GUI or command line, if you want to know what 
is going on or if the software should be 'smart' etc. I started with 
Suse, but I failed with it. It was too much work to do upgrades between 
versions (3 months cycle) and after leaving one out I had to reinstall 
everyting. Suse follows its own concept of config files and if you start 
editing configs by hand instead of using Yast it will overwrite your 
changes the next time you use it (I know there are also configs for 
that...). There is no automated installation (or was at this time). 
Debian takes maybe a bit longer to get it running initially, but than 
saves you a lot of time on the long run.
Stability improved a lot when going from Suse to Debian. I don't think 
it was completely Suses fault (early 2.4 kernels were not that stable, 
there were problems with ReiserFS, early NVidia drivers were 
unstable...), it was just my observation.
With Redhat I have not much experience. I didn't like the company 
politics aiming for a monopoly on Linux (esp. in the US). We have 
something like that allready and we see where it leads...

Hope all that helps,

Timm