Jag vill be om en timme eller så av er tid för att försöka beskriva varför jag tycker att Debian är ett bättre val för RIT's internetservrar. Alla distributioner har sina för och nackdelar. Och det finns ju en del... http://www.linux.org/dist/english.html Med ett tiotal internetservrar hos en ISP tror jag att dessa kriterier för val är intressanta: * det ska finnas program för de tjänster vi vill använda/erbjuda * de ska gå att konfigurera och anpassa för speciella ändamål * de ska kräva minimalt med löpande administration * de ska vara säkra och stabila * det ska vara snabbt/enkelt att upgradera * bra ordning på filer och dokumentation * fungera på den hårdvara vi använder Egenskaper som för ändamålet är inte spelar så stor roll. Dvs som är oviktiga: * enkelt för nybörjare * officepaket och slutanvändareprogram * optimerad desktopmiljö * support för den allra senaste hårdvaran * funktioner för samexistens med ms windows * osv... Bakgrund Kom först i kontakt med unix å Amigan (vars os har mycket från unix). På universitetet lärde jag mig Unix, Perl, NCSA httpd, emacs, cgi, html, etc i solaris-miljö. Programmerade lite i C, kompilerade en massa program med make, etc. På CultCom satt jag med SGI Irix i ett par år. Under tiden kom jag i jobbet kontakt med SCO och HP/UX (men bara ytligt). När jag så skulle skaffa mig min första x86-dator frågade jag min sysadmin vilken linuxdistro jag skulle använda, och han sa Debian. ... Sedan dess har jag även användt Mandrake (för undervisning) och även RedHat, eftersom den är ganska vanlig. Det är med denna bakgrund jag kan sätta Debian GNU/Linux i relation till andra *nix. Men här handlar det ändå främst att se skillnanden mellan Debian-baserade och RedHat-baserade distributioner. Jag har sympati för Slackware, men ser den distron som ett alternativ för de som vill lära sig sitt os, använda make, konigurera i textfiler etc. Bra för att lära sig och för sin egen dator, men inte som bas för en större mängd servrar som ska kunna konfigureras lika dant, och uppgraderas snabbt. Har även sympati för *bsd. Man känner sig nästan som windowsanhängare när man väljer bort BSD, på grund av att Linux har en större bas av utvecklare och ett större utbud av program och system. Är glad iaf för att jag inte använder Red Hat, för det är ju så main stream som det kan bli. ;-) Så vill jag berätta vad som är så bra med Debian *** Linux Standard Base Jag älskar Unix för att det är så tekniskt snyggt gjort. Allt verkar så välstrukturerat, ordnat och bra uttänkt. När man använder Debian märks det verkligen att de är måna om att hålla var sak på sin plats. De gör ett underbart jobb med att se till så att alla program hållr sig till samma standard för hur saker ska fungera, konfigureras osv. Linux Standard Base http://www.linuxbase.org/ jobbar på att skapa en standard för hur systemet ska se ut. Alla stora distros ställer sig bakom LSB. Debian är djupt involverad. Många har föreslagit att Debian ska vara en referensdistribution för LSB. Ta en titt på "Debian Policy Manual" http://paranormal.se/doc/debian-policy/policy.html/ Debian följer the "Filesystem Hierarchy Standard" http://paranormal.se/doc/debian-policy/fhs/fhs.txt.gz Olika program verkar i defaultutförande vilja placera sig lite var som helst i systemet. Men i Debian kan du alltid vara säker på att hitta binärerna i /usr/bin, sysadminprogrammen i /usr/sbin, konfigurationsfilerna i /etc, loggfilerna i /var/log, osv. Allt på sin plats. Och du kan alltid hitta dem under dess logiska namn. Således ligger konfigurationsfilerna för apache under /etc/apache och inte /etc/httpd/conf/. *** Dokumentation Allt är väl dokumenterat. Förrutom man- och info-filer placeras övrig information, så som READM-filer, FAQs och HTML-dokumetation under respektive katalog i /usr/share/doc. Alltid åtkommlig enligt Debians policy, med webbläsare. Ta en titt: http://paranormal.se/doc/HTML/ http://paranormal.se/doc/ Låt oss ta Exim som exempel. Du kan antingen söka via sökformuläret längst ned på HTML-sidan, eller bara hoppa in i rätt katalog: http://paranormal.se/cgi-bin/dsearch?search=exim http://paranormal.se/doc/exim/ * All dokumentation från distributionen finns med * manual finns ofta under manual.html * Kommentarer specifika för Debian finns under README.Debian.gz * Changelog för debian under changelog.Debian.gz * alltid en copyright * Filer packade för att spara på plats Du märker hur mån paketerarna är om att följa Debians policy. Se exempelvis denna readme för PostgreSQL: http://paranormal.se/doc/postgresql/README.Debian.gz Eftersom dokumentationen för PostgreSQL är omfattande, kommer den i ett eget paket: http://paranormal.se/doc/postgresql-doc/ Även dokumentationen inne i konfigurationsfiler är ofta tydligare och bättre än vad jag har sett i andra system. Några exempel, där jag jämför karl.rit.se med astral.paranomral.se: //karl/etc/hosts.allow # hosts.allow This file describes the names of the hosts which are # allowed to use the local INET services, as decided # by the '/usr/sbin/tcpd' server. //astral/etc/hosts.allow # /etc/hosts.allow: list of hosts that are allowed to access the system. # See the manual pages hosts_access(5), hosts_options(5) # and /usr/doc/netbase/portmapper.txt.gz # # Example: ALL: LOCAL @some_netgroup # ALL: .foobar.edu EXCEPT terminalserver.foobar.edu # # If you're going to protect the portmapper use the name "portmap" for the # daemon name. Remember that you can only use the keyword "ALL" and IP # addresses (NOT host or domain names) for the portmapper. See portmap(8) # and /usr/doc/netbase/portmapper.txt.gz for further information. //karl/etc/inetd.conf # inetd.conf This file describes the services that will be available # through the INETD TCP/IP super server. To re-configure # the running INETD process, edit this file, then send the # INETD process a SIGHUP signal. # # # # To re-read this file after changes, just do a 'killall -HUP inetd' //astral/etc/inetd.conf # /etc/inetd.conf: see inetd(8) for further informations. # # Internet server configuration database # # # Lines starting with "#:LABEL:" or "##" should not # be changed unless you know what you are doing! # # If you want to disable an entry so it isn't touched during # package updates just comment it out with a single '#' character. # # Packages should modify this file by using update-inetd(8) # # //karl/etc/initab # inittab This file describes how the INIT process should set up # the system in a certain run-level. //astral/etc/initab # /etc/inittab: init(8) configuration. Osv... Lägg märke till att Debian hela tiden hänvisar till de man-sidor som förklarar vad som pågår. Appropå det så har alla program i Debian sin egen manualsida. Om DET INTE FINNS en manualsida för programmet får du upp en sida som förklarar läget och ger dig en rad tipps om hur du kan gå tillväga för att hitta mer info om programmet. Utdrag: This program, utility or function does not have a useful manpage. Please do not report this as a bug, because this has already been reported as a bug; when a manpage becomes available it will be included, and the bug report closed . If you are a competent and accurate writer and are willing to spend the time reading the source code and writing good manpages please write a better man page than this one. Please contact the package maintainer in order to avoid several people working on the same manpage. *** Valfrihet Du har stor möjlighet att välja programvara. Om du installerar ett program som föreslår att du har en webbserver, tvingas du inte att välja en specifik webbserver, utan kan ta vilken som helst. Om ett program är beroende av att du har en Mail Transfer Agent installerad, kan du fritt välja mellan flera stycken. En RPM säger exakt vilka filer som måste finnas installerade. I Debian beskriver många program istället vilken *funktion* de tillför, och paket kan då säga se vara beroende av dessa *funktioner*. Om en RPM har en dependency på en fil så måste du installera det paketet. Det finns inget val. Det finns inget mellanting. Men i Debian finns flera nyanser av dependencies. Det ger dig ökad valfrihet. http://paranormal.se/doc/debian/FAQ/ch-pkg_basics.html#s-depends Så vad kan man välja mellan? Se bara på utbudet av MTAs (exim, masqmail, postfix, sendmail, smail, zmailer), webbservrar (roxen, aolserver, boa, cern-httpd, apache) osv. Du kan byta från ett paket till ett annat utan större problem. Debian kontrollerar alla dependencies och ser till så att konfigurationsfiler korrigeras. *** Konfiguration När nya paket installeras sätts de alltid upp för att fungera väl i systemet. * om tidigare version finns stängs demonen ned * existerande konfigurationsfiler säkerhetskopieras * Filerna isntalleras enligt debians policy * cron-job sätts upp * loggrotering initieras * initial fungerande konfiguration * demonen startas Du kan börja använda systemet med en gång. Inga shell-kommandon behövs. Installationsscripten vet hur systemet ser ut. Det finns flera nivåer av frågor. Du väljer själv hur mycket detaljer du vill svara på. Vill du svara på många frågor får du ofta chansen att ställa in programmets konfiguration under installationen. Exempelvis kan du vid installationen av apache bestämma precis vilka moduler du vill ska användas (för varje modul får du en beskrivning och en rekommendation efter hur användbar den är). Debian kan också minnas vad du svarat på tidigare frågor. Så när du installerar nästa version av paketet så behöver du inte svara på samma frågor om du inte vill. Under installationen kan det hända att du får tipps om att konfigurera vissa filer, ta en titt på någon dokumentation eller kanske en varning om den hittar något som kanske är fel. Om du inte kör uppdateringen i interaktivt mode så kan du få dessa meddelanden mailade till dig. Du kan alltid ingripa genom att själv merga en ny version av en konfigurationsfil med den gamla. Men för det mesta sköter den allt sådant själv. Den klarar galant av att exempelvis uppdatera apache-konfigurationen för en ny funktion utan att röra några av mina gamla inställningar. *** Paketsystemet Jag älskar Debians paketsystem. Allt finns på ett ställe, precis som CPAN. (Eh krypteringsgrejs har iofs sina egna speglingar.) Alla paket är kategoriserade i flera grupper, och har namn, kortbeskrivning och beskrivning. Med ett enkelt program hämtar du hem de senaste listorna på program. Programmen kan hämtas från CD-skiva, lokal HD, NFS eller FTP. Jag får mina program från sunet: ftp://ftp.sunet.se/pub/Linux/distributions/debian/ När du väljer ett paket, får du reda på vad paketet är beroende av, rekommenderar eller föreslår. Den kan kräva att ett visst bibliotek ska vara minst ver 2.8 men inte mer än 2.95. Den kan också säga sig vara i konflikt med andra paket. Det finns helt enkelt många fler variabler (än i RPM) med uppgift att se till så att inga konflikter uppstår i systemet. Låt mig ta ett paket som exempel. Läs mer om formatet här: http://paranormal.se/doc/debian/FAQ/ch-pkg_basics.html#s-controlfile Package: man-db Status: hold ok installed Priority: important Section: doc Installed-Size: 738 Maintainer: Fabrizio Polacco Version: 2.3.16-1 Replaces: man, nlsutils Provides: man, man-browser Depends: groff (>> 1.15-2) | jgroff (>> 1.15), libc6 (>= 2.1.2), libdb2 (>= 1:2.4.14-7) Suggests: bsdmainutils Conflicts: man Conffiles: /etc/cron.daily/man-db d8be7e4710c29337be2f30dc6e772aa6 /etc/cron.weekly/man-db 08c0fab5c204668afadbd6458b4c0f2a Description: Display the on-line manual. This package provides the man command. This utility is the primary way of examining the on-line help files (manual pages). Other utilities provided include the whatis and apropos commands for searching the manual page database, the manpath utility for determining the manual page search path, and the maintenance utilities mandb, catman and zsoelim. This package uses the groff suite of programs to format and display the manual pages. Lägg märke till Replace, Provides, Suggests, Conflicts och Depends. Här kan man tydligen välja mellan groff och jgroff, bara de är tillräckligt nya versioner. I övrigt, läs om deb i FAQn: http://paranormal.se/doc/debian/FAQ/ch-pkg_basics.html APT är ett system i Debian som kan hantera alla konflikter. Du leds genom ett antal steg där du resolvar dependencies och konflikter. För varje steg kan du välja vilka av de beroende paketen du vill ta med, vilka föreslagna paket du vill utelämna, du kan ångra och backa ett steg, osv. Du ser hela tiden vad för ändrig som föreslås. I normala fall kan du bara välja "okej" ända tills APT är nöjd och inga konflikter återstår. Så hämtas alla valda paket och sätts upp för installation. Om något skulle gå fel under konfigurationen har ingen skada skett åt det nuvarande installerade systemet. När allt är konfigurerat och klart sker installationen snabbt genom att gamla demonen stängs av, de nya filerna flyttas till sin plats, och nya demonen sätts på. Avbrottstiden är minimal. Om ett program består av flera delar kan dessa delar komma i var sitt paket. Speciellt då olika delar kanske är beroende av olika saker. En del av ett program kanske behöver ett speicellt bibliotek. I så fall så delas programmet in i flera paket där huvudpaketet rekommenderar dig att även installera de andra paketen. Men om du inte vill ha den funktionen kan du låta bli. Och då slipper du ju också installera det där extra biblioteket. Om dokumentationen är omfattande kommer också den i ett eget paket. För varje ny version finns en beskrivning av vad som är nytt i den. Här anges också hur viktigt det är att uppgradera. Exempel från PostgreSQL (från *unstable*): postgresql (7.0.2-1) unstable; urgency=low * New upstream bug-fix release * postgresql: fixed typos in README.Debian. Closes: bug#64697 * postgresql: flagged /etc/postgresql/pg_options as a conffile * postgresql: log file is no longer cleared at postmaster startup. Its permissions are now 660. PGDEBUG=0 made explicit in default postmaster.init. Closes: bug#64707. * postgresql: postinst was getting rubbish for the current timezone. Closes: bug#64776. * postgresql-doc: Moved indexpage.html down to html/index.html. -- Oliver Elphick Fri, 9 Jun 2000 14:40:51 +0100 Om du ställt in APT till *stable* kan du låta ett cronscript automatiskt hämta hem viktiga uppdateringar och installera dem. Du behöver inte lyfta ett finger. Eventuella kommentarer får du via mail. Det här är en mycket väl fungerande och mycket stort syste. Jag har nu tre gånger uppgraderat mitt Debian-system från en version till en annan. Uppgraderingen från libc5 till libc6 var mycket omfattande, men gick nästan helt utan problem. Några omstarter behövs inte. Och Debian har fler paket i sin distribution än någon annan. Jag väljer "update" och får meddelandet (efter ca 10 sekunder): Information about 5037 package(s) was updated. *** Bugghanteringen Det finns ett väl utvecklat och fungerande system för bugghatering: http://www.debian.org/Bugs/ Paketerarna vidareförmedlar buggrapporter till utvecklarna. När fixar och nya versioner kommer, rapporteras detta i change-loggen. Du kan fritt söka i databasen. *** Support Som du märkt, om du ställt in din webbläsare på svenska, så finns det mesta av informationen på http://www.debian.org/ på svenska. Det finns också en lågtrafikerad svensk mailinglista. Frågor på den listan får ofta ett snabbt svar: http://www.debian.org/Lists-Archives/debian-user-swedish-0005/threads.html Och det finns en stor mängd mailinglistor för olika områden. Alla med sina arkiv: http://www.debian.org/Lists-Archives/ För våran del kanske Debian ISP är av intresse: http://www.debian.org/Lists-Archives/debian-isp-0006/threads.html *** Debian har rätt filosofi Debian är ett kollektivt projekt som arbetar efter samma principer som andra stora projekt inom Linux-världen. Det är det enda rätta alternativet ur ett moraliskt och principiellt persoketiv. Läs deras sociala kontrakt: http://www.debian.org/social_contract Och slutligen: http://www.debian.org/intro/why_debian http://www.debian.org/releases/ http://www.debian.org/doc/FAQ/ Jag har spenderat hela dagen med denna sammanställning. Så jag hoppas ni vill spendera lite tid med att läsa igenom länkarna.