jurix Linux Florian La Roche, florian@knorke.saar.de 1999/02/26 This document describes a binary distribution of Linux, a complete source tree and a specific way of how to develop patches and install source packages under Linux. 1. What is jurix? jurix is a hacker Linux distribution with the following features: modularized kernel 2.0.37 and 2.2.10, libc 5.4.46, egcs 1.1.2, ncurses 4.2-980822, shadow passwords, XFree86 3.3.3.1, KDE 1.1.1. jurix uses the traditional unix philosophy KISS: Keep It Simple, Stupid! I just collect normal patches to the source. Compiling and installing the source and packaging it up into a binary package is done with a small shell script. You already have those very fine source packages. It should be easy to compile them into binary packages and it should also be easy to use the binary distribution. Nearly all programs are converted to use the terminfo database from ncurses, only some use the termcap library. Jurix has a clean filesystem layout and good support of networking programs. (Jurix is best used, if you are directly connected to the Internet. In fact, many ISP seem to prefer jurix.) Most time, I am working on a very stable basic system. (I used to do some kernel programming, now I'm at the normal user level, maybe I'll end up having more X11 progs and listening to sound files.) Whenever possible, I put configuration stuff into global files and not into /etc/skel/. Then sys-admins can change the global files and don't have to tell all users to update the config files in their home directory. The main thing for jurix is, that I have a very quick way of handling patches to source files and that I have put together a complete source tree. You can see very fast, what patches were used to compile a program and send me further patches, if you want to have something changed. Or you can use those patches to upgrade to a newer version of a program yourself. Development is just done under a chroot environment where I can mess around without fear to break things. The binary packages are then tested on real server machines. Currently, I have one install disk that contains a kernel and also a 2.88 MB filesystem, that is compressed to fit on the floppy. It contains a menue-guided install program called setup that supports installation from an ext2 filesystem, via network (NFS, with bootp support to get nearly all network settings for lazy people) or from a pre-mounted directory. This disk can also be used as rescue disk. It has rlogin, ftp, filesystem utilities, the editor pico and additional support progs like a script that automagically configures your network settings via bootp. SuSE used to sell a modified Slackware and jurix was used for a fresh start as SuSE 4.2. I am now also paid by SuSE to improve the basic system. They have added many new packages to make the distribution more complete and they have lots of people for good Linux support and documentation. SuSE now uses the package manager rpm from RedHat to install and update Linux. Yast is a very comfortable ncurses-based frontend to rpm for easy package selection, system configuration and system administration. jurix is a hacker distribution that is just the way I like to have a Linux system. It may change frequently, but it also allows me to have several server machines running on the bleeding edge and still have fun developing jurix. 2. Used source packages Serie base: BSD db 1.85, GNU bash 2.03, GNU fileutils 4.0i, GNU findutils 4.1, GNU gawk 3.0.4, GNU gdbm 1.8.0, GNU grep 2.3, GNU groff 1.10, GNU gzip 1.2.4a, GNU m4 1.4, GNU readline 4.0, GNU sed 3.02, GNU sh-utils 1.16k, GNU tar 1.13.4, GNU texinfo 3.12n, GNU textutils 1.22m, GNU time 1.7, NetKit 0.09, bdflush 1.5, bootp DD2.4.3, bootpc 0.64, cron 3.0.1-51, e2fsprogs 1.15, file 3.26, hdparm 3.5, icmpinfo 1.11, kbd 0.99, kernel 2.0.37, kernel 2.2.10-ac10 with isdn patches, ksymoops from kernel 2.2, ld.so 1.9.11, less 340, lilo 21, logrotate 3.3, man_db 2.3.10-69i, mingetty 0.9.4, mktemp 1.5, modutils 2.1.121, ncompress 4.2.4, ncurses 5.0-990710, net-tools 1.52, netdate, nfs- server 2.2beta44, pidentd 2.8.5, pinfo 0.5.5, portmap 5beta, procinfo 17, procps 1.2.11, psmisc 18, setserial 2.15, shadow 980724, sysklogd 1.3-32, sysvinit 2.76, tcp_wrappers 7.6, telnet 98.02.16.NE, termcap 2.0.8, texi2html 1.51, texi2roff 2.0, tmpwatch 1.7, traceroute 1.4a5, tz99d (timezone handling), util-linux 2.9v, vim 5.3, xcpustate 2.5, ytalk 3.0.2, Serie appl: GNU ed 0.2, PostgreSQL 6.5, a2ps 4.12, acct 6.3.2, alien 6.44, at 3.1.8, autofs 3.1.3, bc 1.05, cdparanoia-III alpha9.5, cdrecord 1.8a23, ctags 3.2.2, dialog 0.62, dosemu 0.98.8, enscript 1.6.2, ghostscript 5.50, git 4.3.19, glimpse 4.1, gnats 3.110, gnuplot 3.7.0.8, gpm 1.17.8, ispell 3.1.20, linuxconf 1.16r0.1, linuxdoc-sgml 1.5, lsof 4.44, mc 4.5.37, mtools 3.9.6, octave 2.0.14, openssl 0.9.3a, pdksh 5.2.14, perl 5.005.03, psutils 1 pl17, quota 1.66, recode 3.5, rpm 3.0.2, screen 3.7.6, sharutill 4.2c, sudo 1.5.9p2, syslinux 1.45, tcsh 6.08.01, teTeX 1.0.6, units 1.54, uudeview 0.5.13, wdiff 0.5.2, which 2.7, zsh 3.1.4, Serie editors: elvis 2.1, emacs 20.4, joe 2.8, pico 3.4, vile 8.3, xemacs 21.1.4, Serie network: LPRng 3.6.3, amd upl102, apsfilter 5.1.1, bind 8.2.1, cmu-snmp-linux 3.6, diald 0.99.1, dip 3.3.7p, ipautofw, ipchains 1.3.9, ipchains-HOWTOs 1.0.7, ipchains-scripts 1.1.2, ipfwadm 2.3.0, iptraf 2.0.0, ircii 4.4, isdn4k-utils from cvs, knfsd 1.4.6, lrzsz 0.12.20, mgetty 1.1.20, minicom 1.82.1, mrtg 2.8.0, ncftp 2.4.3, ncftp 3.0beta19, pgp 2.6.3i, ppp 2.3.8, proftpd 1.2.0pre3, samba 2.0.5, scotty 2.1.10, sendfile 2.1, sliplogin 2.1.0, ssh 1.2.27, stunnel 3.3, tcpdump 3.4, tcpslice 1.1a2, tirc 0.54a.pl2, tua 0.4, uucp 1.06.1, wu- ftpd 2.5.0, xntp 3-5.93e, yp-clients 2.2-970318, ypbind 3.3, ypbind- bsd 1.15-970316, ypmake 0.10, ypserv 1.2.5, Serie archiver: BSD dump 0.3, GNU cpio 2.4.2, afio 2.4.5, amanda 2.4.1p1, buffer 1.17, bzip2 0.9.0c, cfengine 1.5.0, dds2tar 2.4.21, mirror 2.9, mt-st 0.5b, rdist 6.1.5, rsync 2.3.1, taper 6.9a, unzip 5.40, zip 2.2, Serie develop: BSD yacc, autoconf 2.13, automake 1.4, bin86 0.4, binutils 2.9.1.0.25, bison 1.28, cutils 1.5.2, cvs 1.10.6, cvsup 15.5, ddd 3.1.5, diffutils 2.7.2, dmalloc 4.2.0, egcs 1.1.2 (with g++, g77 and gobjc), egcs 2.95-beta (19990718), f2c, flex 2.5.4, gd 1.5, gdb 4.17.0.12 and 4.18, gettext 0.10.35, giflib 0.4, glib 1.2.3, gmp 2.0.2-fixed, gnat 3.09, gperf 2.7, gtk+ 1.2.3, imlib 1.9.5, indent 2.1.1, libc 5.4.46, libdes 4.01, libg++ 2.8.1.3, libtool 1.3.3, linuxthreads 0.71, make 3.77, patch 2.1, patch 2.5.3, popt 1.3, prcs 1.2.14, qt 1.44, rcs 5.7, regex alpha3.7, slang 1.3.8, strace 4.0, xdelta 1.1.1, yaf77 1.5, zlib 1.1.3, Serie tcl: Tix 4.1.0.006, dejagnu 19990614, expect 5.28, python 1.5.2, tcl 8.0.5, tclX 8.0.4, tk 8.0.5, tkinfo 2.5, zircon 1.18.213, Serie doc: GNU info pages for glibc, Linux HOTO documentation files, man-pages 1.25, Serie mail: BSD mail, bulk_mailer 1.12, elm 2.4.ME+.60, emil 2.1.0-beta9, fetchmail 5.0.5, imap 4.5, majordomo 1.94.4, metamail 2.7-32 (from debian), mutt 0.95.6i, pine 4.10, pop3d 1.00.4, procmail 3.13.1, qpopper 2.53, sendmail 8.9.3, Serie news: gup 0.4, inn 2.2, inn-batcher 0.10, knews 0.9.8, nn 6.5.1, slrn 0.9.5.7, strn 092q3, suck 4.2.1, tin 19990624, trn 3.6, xrn 9.01, Serie www: Adobe Acrobat Reader 3.02, apache 1.3.6, calamaris 2.27, guavac 1.2, jdk 1.1.7-v1a, kaffe 1.0b4, lynx 2-8-2 (with SSL support), mod_perl 1.21, mod_ssl 2.3.6, netscape communicator 4.6 (fortified), php3 3.0.11, squid 2.2.STABLE4, webalizer 1.30-04, wget 1.5.3, Serie x: XFree86 3.3.4, Xaw3d 1.4, fvwm 2.2.2, lesstif 0.88.9, xpm 3.4k, Serie xappl: ImageMagick 4.2.8, gimp 1.1.7, gv 3.5.8, jpeg 6b, libpng 1.0.3, netpbm 1mar1994, pixmap 2.6p4, tgif 4.1.16, tiff 3.4beta037, transfig 3.2.1, xanim 2801, xfig 3.2.2, xless 1.7, xlockmore 4.14, xmcd 2.5, xosview 1.7.1, xpaint 2.4.9, xpdf 0.80, xphoon, xscreensaver 3.17, xv 3.10a, Serie fun: BSD fortunes, chess 4.0pl80, go 2.0, net3d 0.08, pacman, shogi 1.2p03, xbill 2.0, xboard 4.0.2, xbomb 2.1, xearth 1.0, xfractint 3.04, xjewel 1.6, xmine, xpat2 1.04, xshogi 1.2p03, xsok 1.02, xtetris 2.6, xvier 1.0, Serie desktop: 3. Where can I get jurix from the Internet? Main ftp server is jurix.jura.uni-sb.de/pub/linux. There is a subdirectory binary that can be used to install a complete system. The subdirectory source has all source code. Most source packages have the original source code in one big tar file and all changes necessary for jurix are in an extra file. Please do not use normal ftp or maybe even one of the WWW clients to download jurix Linux. If you want to use it, try to find a near-by site which already has it or install the mirror program on your machine and use that to download jurix. Then you can easily update your local copy to the newest version. Here is an example configuration file for mirror to download jurix: ______________________________________________________________________ # The 'defaults' package is used to make global settings. package=defaults mail_prog=mail # This entry will download the jurix distribution. package=jurix site=jurix.jura.uni-sb.de remote_dir=/pub/linux/binary local_dir=/local/home/florian/distributions/jurix ______________________________________________________________________ 4. What you need for jurix If you are new to Linux, you should better look at http://sunsite.unc.edu/LDP for general hardware requirements and general features of Linux. I will only list things that are special to jurix. + 486 or higher PC. A 386 can be used to install jurix, but a special kernel has to be build to run jurix after installation. + At least 8 MB of main memory (RAM). + Minimum disk space of 100 MB, non-programmers need about 200 MB for a server installation, all packages are about 600 MB. + A free partition that is labeled as an ext2 partition. Use the Linux fdisk on the install floppy to create or delete partitions. + Jurix Linux can be installed from CD-ROM, network (with another server exporting data via NFS) or from another Linux partition on your harddisk. 5. The install floppy The install floppy of jurix Linux must be copied from a 1,44 MB file onto a 1,44 MB floppy disk. For this, you can either use the DOS program RAWRITE.EXE or dd if=install of=/dev/fd0 if you already have Linux runing. If you start your computer with the install floppy, the Linux kernel tries to autodetect your hardware. If this fails for you, give the kernel information about your hardware at the lilo prompt. See the extra documentation BootPrompt-HOWTO for details. If even that does not help, you might try building a special kernel on another running Linux system and make your own special install floppy. See further down at the section about compiling a new kernel. ______________________________________________________________________ mount /dev/fd0 /mnt cp zImage /mnt lilo -r /mnt umount /mnt ______________________________________________________________________ The kernel prints lots of information about the detected hardware onto your screen (console). If the text is output too fast and scrolls out of the top of your screen, you can use Shift-PgUp and Shift-PgDn to scroll up and down in this text. If the kernel and the mini filesystem are correctly loaded, you can use Alt-F1 through Alt-F4 to switch between four different screens. They are called virtual consoles and often abbreviated as VC1 to VC4. You can use root to login on each of those VC and start programs from the command line. Start fdisk to create an ext2 Linux filesystem and maybe a Linux swap partition. setup will start a menu-guided installation tool. To reboot your computer, just press Ctrl-Alt-Del and wait until the computer is correctly shut down and you see the messages of the BIOS. The install floppy can also be used to repair a damaged installation (rescue or repair disk). If you mount another root partition, use mount -t ext2 /dev/??? /install and you can directly use the shared libs and the programs on that partition. That is done by setting PATH and LD_LIBRARY_PATH in /etc/profile on the floppy. There is the small editor pico on the floppy. If you have ethernet and a bootp server on your local network, then you can start try-bootp to completely configure your network settings (rlogin and ftp are also on the install floppy). 6. Description of the menu-guided install program First you may enable your swap partition. Then you have to choose a partition with an ext2 filesystem as the root partition. That partition is formatted with a new filesystem. Next, you have to select from where to install jurix: + Jurix is already copied onto your harddisk in an ext2 partition. You have to select the correct partition and also the directory within that partition where all the install files can be found. + Another server has all data for jurix and exports it to your computer via NFS (network filesystem). You need an ethernet and the configuration for your IP address, netmask, maybe the gateway IP address and also the IP address of the server and the correct directory on that server. + jurix is premounted on /source. You could configure network settings yourself or mount jurix from a not-yet supported filesystem like MS-DOS or ISO-9660 (CD-ROM). You might use this possibility together with a custom kernel to install jurix in nearly any possible way. The install program has now access to the installation data and has also a destination partition to install everything on. You now have to select what packages of jurix should be installed onto your computer. Just the files are written from the packages onto the partition. No further customizations are made in the packages. At the end, only /etc/fstab and /etc/lilo.conf will be adapted for your system: You must select your SCSI adaptor and the location for the lilo bootup code. 7. The Linux Loader lilo Linux is normally started by some special bootup code that reads the kernel and maybe some further files into RAM and then gives control to the kernel. The bootup-code doesn't understand any filesystems, but it has a map of all sectors that should be loaded from harddisk into memory. You have to create a valid configuration file /etc/lilo.conf and then start /sbin/lilo to create that map in the bootup code. If you modify any files that are referenced in /etc/lilo.conf (like e.g. the kernel or the initrd file), you have to start /sbin/lilo again. The bootup code could be written to the following places: + The beginning of an ext2 Linux partition. + The beginning of a non-bootable DOS partition like e.g. D:. + The master boot record MBR at the beginning of the harddisk. + At the beginning of an extended partition that contains further subpartitions. It is probably best to use the beginning of the Linux partition and only use something else if that fails. If booting with lilo fails, you have to reboot with the install disk and use fdisk and maybe edit /etc/lilo.conf to get a correct installation. Don't forget to run lilo -r /install, if you have mounted the root partition on /install. You can also use the kernel on the install floppy together with an installed Linux on harddisk. Just say linux root=/dev/??? at the lilo prompt. If the SCSI driver is not loaded correctly, you can overwrite the current settings from /etc/lilo.conf by giving a new name at the lilo prompt. Example: linux scsi_host=aic7xxx. Please read the extra documentation in lilo.ps for all possibilities and restrictions. 8. The installed Linux kernel and modules. You get two different kernels installed that you can select at the lilo boot prompt: installfull is a full kernel that is also on the install disk and linux is a minimal kernel that can be extended at runtime with further features and drivers. The full kernel should only be used if you have problems with the modular kernel: You can start linux and compile a working kernel yourself. If you select the modular kernel, you must also select a SCSI driver that should be loaded into the kernel. This can be done by editing /etc/lilo.conf or by adding it to the lilo prompt: linux scsi_host=aic7xxx. (A list of all possible SCSI drivers is given at the lilo prompt.) Lilo will load the kernel and /boot/initrd into RAM and start the kernel. The kernel uses /boot/initrd as a small filesystem which contains all SCSI drivers and a script that will load one of them via insmod into the kernel. The real root filesystem can then be mounted from harddisk and the memory used for initrd is freed. See more in the kernel documentation /usr/src/linux/Documentation/initrd.txt. The startup script /etc/rc.d/boot will start the kerneld program which communicates with the kernel about missing modules that should be loaded into the kernel. The configuration file of kerneld is /etc/modules.conf. As modules are loaded into a running system, they should not autoprobe your hardware. So if possible, specify the correct port address and IRQ for your hardware in that config file. You should have no problems using the supplied modules. Only a correct sound module must be compiled as it cannot be configured via module options. Supplying modules for all possible hardware is not a good solution. 9. Installing a new kernel. If you compile a modular kernel yourself, you must either create a new /boot/initrd yourself or compile the SCSI driver directly into the kernel and not as a module. Here is how I compile a new kernel for jurix: How to make a new install disk: 10. SysV runlevels and bootup scripts After the kernel is loaded, the first and only user-level program started by the kernel is /sbin/init. It is responsible to start all other programs. The configuration file for it is /etc/inittab. It defines what programs are started in the different runlevels. jurix uses the following runlevels: + S: single user mode: Only root can login on VC1 (virtual console 1). Nearly no programs are running in the background. + 1: System administrator mode. All filesystems are mounted and some very essential programs are running. All users can log in on VC1 to VC4. No network daemons are started. + 2: Default runlevel with all network programs. + 3: Like runlevel 2, but xdm is also started and no gpm is started. + 6: Going into runlevel 6 reboots the computer. + 0: Halts the computer. /etc/inittab is configured to start /etc/rc.d/boot as the first script to check the installation. Then init will go into the default runlevel (2). Whenever you change into a new runlevel the script /etc/rc.d/rc is executed. It will look into the directory /etc/rc.d/rc?.d to see what kill and start scripts should be started in the new runlevel. For each runlevel X, /etc/rc.d/rcX.d contains all scripts that should be executed to change into or leave a specific runlevel. The name of all start-scripts begin with "S" and the kill-scripts with "K". Next are two digits from 00 to 99 that indicate the order in which the scripts are started. /etc/rc.d/rc is used to switch into a new runlevel. It will invoke all kill scripts from the previous runlevel that do not have a corresponding start script in the new runlevel. Then it will invoke all start scripts that are not already in the previous runlevel. All start- and stop-scripts are in /etc/rc.d/init.d/ and they also have symlinks to /usr/sbin/rc*. So you can use e.g. rcsendmail start or rcsendmail stop to start or stop the sendmail daemon. All scripts also have the parameter reload to reload their configuration files. 11. Where are the docu and the config files? Most programs contain man-pages in /usr/man or /usr/X11R6/man and GNU- style info pages in /usr/info. Also look into /usr/doc for additional information. /var/lib/packages contains a listing of all files in each binary package. So if you e.g. want to find out what is exactly in network/bind.tgz, just look at /var/lib/packages/bind to see what executables, configuration files and documentation files belong to it. If you want to learn more about /usr/bin/uux, just do a grep usr/bin/uux /var/lib/packages/* to find a listing of all additional files in /var/lib/packages/uucp. 12. Design decisions that developers should know. + Ncurses is a replacement for the curses and termcap libraries. If you compile a program, you can replace any linking flags of -lcurses or -ltermcap with -lncurses. If you really want to link against a termcap lib, you must add -I/usr/include/libtermcap to the compiler flags (CFLAGS) and -L /usr/lib/libtermcap to the linker flags (LFLAGS). + Most progs are compiled to use ncurses. Only some few progs use the termcap library. + The kernel include files are installed in subdirectories of /usr/include. So they are not links into /usr/src/linux and they won't be updated, if you install a new kernel. The current kernel files fit the used C library and will always compile correct programs. Newer kernels should always be able to run these binaries. Keeping fixed versions of the include files should minimize update problems. The kernel can be compiled in any directory you like. No need to compile it in /usr/src/linux. + GNU gdbm uses flock locking and BSD db uses fcntl locking. All email progs should use flock and dot-lock files. + /var/spool/mail/ has perms 1777, just like /tmp. So all email progs do not have do be sgid mail. + MTA is sendmail and uses procmail to deliver local email. 13. Basic idea for system administration with jurix /etc/inittab, /etc/rc.config, /sbin/SuSEconfig and all scripts in /etc/rc.d/ are the basic scripts of jurix. Some things can be configured by editing /etc/rc.config. SuSEconfig takes some of those settings and writes them into other config files. So /etc/rc.config centralizes configuration work. /etc/rc.d/ contains the boot script /etc/rc.d/boot and the script to change runlevels /etc/rc.d/rc. All other scripts are used to start or stop different programs for the SysV runlevels. SuSEconfig daily is also executed each night by cron and also each startup of the computer. This is a regular check of your jurix installation. After a fresh installation, you can once run LONGCHECK=true SuSEconfig to make some additional things like a correct index of man pages. 14. How to track changes in text files. Please look at the documentation of diff: less /var/lib/packages/diff, man diff, info -f diff. To view the difference between two files, I use diff -u oldfile newfile. For two subdirectories, I use diff -urN dirold dirnew. Just look at the output of diff: All lines starting with - must be deleted and all lines starting with + must be added to get from the old file to the new one. 15. The source tree of jurix If you want to recompile mutt, just fetch mutt-0.44.tar.gz, which is the original source code from the author of mutt, and the file mutt-0.44.dif, which contains all necessary changes for jurix. Just do: ______________________________________________________________________ pkgmake extract mutt-0.44 pkgmake compile mutt-0.44 su pkgmake install mutt-0.44 rm -fr mutt-0.44 ______________________________________________________________________ pkgmake uses RCS (revision control system), patch and diff to keep control over the changes to the source code. pkgpack extract scans the .dif file for all files that need changes. Those files are then checked into rcs with ci -l filename. This saves a copy of the unchanged file into filename,v. Then patch is used to apply the changes. You can edit any file to make new changes. But if a file is not yet checked in, you have to call ci -l filename first. If you want to create a new file, you must create an empty file with touch file before checking it into rcs. If you have finished all necessary changes, just call pkgmake diff dirname This will call rcsdiff -u for all files ending in *,v and collect all changes in the .dif file. You can delete the subdirectory with the untarred source files and keep only the new .dif file and the unchanged sources. Make sure that a source package like e.g. emil.tar.gz untars into a subdirectory emil. Otherwise the pkgmake script won't work. If this is not already done by the authors, I just repack the source, but don't do any additional changes. The changed source must have a file Makefile.Linux which contains a normal makefile with the targets compile and install. These targets are called by pkgmake compile and pkgmake install. pkgpack is used to put files into a .tgz file. To pack emil.tgz, just make a list of all files in /var/lib/packages/emil. There should be no leading /. Directories should end with /. Execute pkgpack emil to get emil.tgz in your current directory. 16. Configuring and running jurix /etc/lilo.conf is the configuration file for the linux loader lilo. A customized version is written on installation. You might add an entry to boot DOS or other operating systems. You can also add a password, so that no parameters can be given to the kernel at the lilo prompt. Change /etc/fstab to mount another partition on /local and put all your personal data on it. Maybe add further Linux, DOS or swap partitions. /etc/rc.config is the main configuration file. It has many comments included, so just read and edit it. Run SuSEconfig to write those settings into the correct places. At the end of /etc/profile are some things that could be customized for your system. You might add shortcuts for other hosts, a default WWW-server and also proxy-server. Maybe disable color ls by removing the --color-option to the ls command. /etc/passwd and /etc/shadow should be changed to have also local users apart from root. You also have to create the home directory. Add the IP address of your system and maybe other hosts to /etc/hosts, if you have networking. Add hints about your hardware into /etc/conf.modules. /etc/syslog.conf is the config file for syslog messages. Default is to write all messages to /var/log/messages and also on /dev/tty12. If you want to log to different files or if you don't want other people to see the messages on /dev/tty12, change this config file. If you have problems with curses programs that put out every character twice, use the TERM=linux-nic or TERM=xterm-nic entries. If you have problems using cursor keys or other special keys over a network connection, try to use export ESCDELAY=2000 or higher values to make it work smoothly. Run xf86config to get a working /etc/XF86Config. Add Options "power_saver" if you want to enable automatic screen blanking. It is best to have a virtual scrren of 1024x768. (The default fvwm2 configuration works best with this.) Run apsfilter.setup to get the printer configuration file /etc/printcap. Don't forget to enable the printer daemon in /etc/rc.config. Run texconfig to configure your TeX/LaTeX system. Restrict access to your host by editing /etc/host.allow and /etc/host.deny. Configure the ssh and maybe replace rsh, rcp and rlogin with the more secure versions. Start the WWW server with START_HTTPD=yes in /etc/rc.config and maybe give an explicit hostname in /local/www/conf/. If you have installed ftpdir.tgz, you have an anonymous ftp-server in /local/ftp. Add your files into /local/ftp/pub. For uucp, please read info -f uucp and put your config files into /var/lib/uucp/taylor_config. For INN read the FAQ for it and enable the INN server in /etc/rc.config. 17. Tips for using an installed jurix system. Mail programs are mutt, pine, elm, mail. News readers are tin, trn, strn, knews. slogin, scp, ssh are more secure replacements for rlogin, rcp and rsh. If you start X11 programs on other hosts, execute xhost other.host.com on your local system to give display permissions. Then redirect the output of the program onto your local system with export DISPLAY=host.my.com. Use startx to start the X11 graphical user interface. ncftp is a much better ftp program with tab-completion of filenames and many other things. To connect to another host, use rlogin, telnet or slogin. Good editors are nvi, vim, elvis, emacs, xemacs. Standard aliases are .., ..., l, o. Standard user config files can be found in /etc/skel. 18. Bug-reports. Bug reports or emails describing what should be changed for jurix are always welcome. I also like reading emails that just say, that you are satisfied with the jurix distribution. Please send all email to florian@jurix.jura.uni-sb.de. I'm also glad if people send possible improvements for /etc/profile or /usr/X11R6/lib/X11/fvwm/.fvwm. 19. Copyright Copyright (C) 1994-1999 Florian La Roche. jurix is distributed under the GNU GPL. If you want to distribute a CD-ROM containing jurix, please make sure that you take a stable snapshot and offer your customers support. Please also check the individual packages, since some authors do not want to have their program distributed via CD-ROM, but they don't mind distribution other the net.