Linux Tips and Tricks
Here you can find my collection of Linux tips and tricks. I will update this page time to time. Items are sorted in chronological order, most recent entries first.
Random gcc crashes on AMD Athlon XP and VIA KTxxx Chipset
It may happen that you are one of the unlucky owners of AMD Athlon XP system with mainboard based on the VIA KTxxx chipset, which may work fine for a weeks, but time to time suffers from random crashes, freezes, restarts and other strange artifacts. The common symptom for such system is random gcc crash with internal error. gcc (GNU compiler) stresses CPU, RAM and system bus, and thus, is excellent test for system stability. Need to say, these annoying glitches arise not only with Linux, but with MS Windows, too, usually when running CPU hungry games.
The fight for system stability turned into the combination of nightmare and black magic. I did everything imaginable: BIOS upgrade, tinkering with BIOS settings, complete re-assembling of the entire PC, replacement of CPU fan, RAM, power supply, video card and hard disk cables and hard drive itself, complete reinstall of the OS, upgrading Linux kernel, etc. In short, nothing helped. Finally, I have come to the conclusion that mainboard manufactured by Chaintech is the culprit. However, the company which sold me this mainboard refused to replace it because system have passed all hardware tests successfully. I repeated these tests myself, and yes, everything seem to be fine.
Finally, I have replaced mainboard based on VIA KT266A with another one with AMD 761 chipset (also from Chaintech). All artifacts have gone completely, PC have become absolutely stable and now works without crashes for over one year.
The most interesting part come later. Since I have posted this problem on various mailing lists, I have received a lot of feedback from users who had similar issues and who have asked how I have solved them. All of them had AMD Athlon XP and mainboard with VIA KT266 or VIA KT333 chipsets, from various of manufacturers. My final conclusion is that this issue caused by the poor design or manufacturing defects of the electronic circuit which supplies and filters power for the CPU. Since AMD Athlon XP is known to be the very power hungry, during high CPU loads drop of voltage caused problems with system stability.
When you first run PostgreSQL database server you may notice (your experience may vary depending on distro and particular RPM packager, however) that you cannot connect to the PostgreSQL database server from PHP. This is because by default PostgreSQL do not allows connection via TCP/IP socket. To change this, make sure that you have launched PostgreSQL at least once (so it will create default configuration files), open "postgresql.conf" (usually located in) "/var/lib/pgsql/data/" and set "tcpip_socket" to "true" and/or un comment it by means of removing hash mark "#".
Starting from version 8.1, SuSE Linux have new nice feature - cool looking boot splash and animation. However, if you did minimum install or upgrade, you probably have missed this. Here is how to enable it:
In order to allow Basilisk II (Mac emulator for UNIX/Windows) use network you need to compile, install and load sheep_net kernel module. You may notice that compiling Basilisk sheep_net kernel module becomes problematic with 2.4.19 kernel. You need small patch in order to solve this. You can download sources for patched sheep_net module here. To compile it, run "make -f Makefile.module" and "make -f Makefile.module install ".
Use the free utility 7-Zip written by Igor Pavlov.
It may happen that you have launched Nautilus 2 file manager under KDE, just to discover later that after each login into KDE Nautilus 2 will remain as default desktop manager. Go to the Edit -> Preferences and disable option titled "Use Nautilus to draw the desktop".
There is excellent open source utility called GKrellM, it is included with the most (if not all) Linux distributions. It may be customized using hundreds of available themes (skins).
This article have been moved to "Smart Package Management on RPM-based Linux".
It may happen that you have a bunch of upgrade RPMs for your existing Linux system. The question is how to upgrade only installed packages if they are really older than acquired ones, and do not install packages that do not exist in the current system. That's simple - "cd" to the directory of RPMs and run "rpm -Fvh *.rpm". Option "Fvh" means freshen + verbose + print hash marks. There are better automated options descibed in "Smart Package Management on RPM-based Linux".
Have you ever had a problem with duplicate entries in RPM database? If yes, you will not forget it. Even "rpm --rebuilddb" does not help. Here is quick tip how to solve this - "rpm -e --allmatches --nodeps bogus-package-name".
Once I have encountered dumb stupid problem with SuSE Linux 8.0 - my USB wheel optical mouse have been detected and powered up at startup (the red light from mouse's diode clearly showed this), but neither GPM (console mouse services) neither XFree86 have been able to use it. Reconnecting mouse to USB port sometimes helped but sometimes not. Moreover, I never had this artifact with SuSE Linux 7.3 on the same PC with the same mouse. The culprit is buggy USB Hot Plug services. Workaround - include usb-uhci, usbcore, hid, input, mousdev kernel modules in initial RAM disk image. Edit list of these modules in YaST (or another setup utility if you have another Linux distro), then run "mk_initrd" and "lilo".
It may happen that after proper installing and configuring nVidia kernel module and nVidia XFree86 GLX drivers you may experience strange artifacts - XFree86 unexpectedly quits, freeze and sometimes machine even reboot itself. Usually it is related to AGP problems. First of all, you should disable "Enable Fast AGP Write" option in PC BIOS setting. Second - specify "Option "NvAGP" "1"" in XFree86 configuration file device section. You can download my XFree86 configuration file here.
Additionally, it is highly recommended to avoid using XFree, KDE or Gnome as root. This is not just rule of "good" behavior, it is my own experience.
If you have missed great Apple Disk Burner utility on Linux, do not worry. You can use another one which is less user-friendly but much more powerful. It is called KreateCD. KreateCD is a graphical KDE-based front-end to mkisofs, cdrecord and other command-line UNIX utilities. Just select a folder in Konqueror (KDE File Manager, functional analog of Macintosh Finder), push second mouse button to launch contextual menu, and select "Create ISO Image". This will launch KreateCD where you can erase CD-RW (either fast either full mode), select CD format (ISO, hybrid, audio, etc.), and finally burn CD. Please note that commands in KreateCD named differently from Roxio Toast and Apple Disk Burner. In order to switch between "Write Session" and "Write Disk" modes go to Settings -> Configure KreateCD -> Burner -> Preferred Fixating Setting and choose from popup menu "Fixate Session" or "Fixate CD-R".
If you have used Mac, you are certainly used to use disk images created with Apple Disk Copy, Toast and/or ShrinkWrap. Disk images are files which can be mounted and used like ordinary removable media. You can do the same with Linux, although this requires some knowledge of terminal commands and Linux internals. First, you need to create disk image. For example, to build 650 MB disk image formatted as Ext2 run "dd if=/dev/zero of="DiskImage.img" bs=1024k count=650", then "mke2fs -b 2048 DiskImage.img". You will be told that DiskImage.img is not a block special device, but do not worry and just say yes to proceed. To mount newly created disk image, run "mount -t ext2 -o loop=/dev/loop1 DiskImage.img /mnt". Please note that mounted volumes on Linux are visible as directories, so the content of disk image will be shown as directory "/mnt". If you want mounted image to be shown under another directory name create directory on the root level with desired name and run "mount -t ext2 -o loop=/dev/loop1 DiskImage.img /my-mount-point" instead. The same way you can mount, for example, ISO CD-ROM images - "mount -t iso9660 -o ro,loop=/dev/loop0 CD-Image.iso /cdrom".
It may happen that you may need to install software which is not supplied as RPM package, or SPEC file to build one. Of course, you can create SPEC file and then build RPM, but there is one quick solution, which likely to work fine in most cases. The cool piece of software called CheckInstall may track installation commands, update RPM database, and build RPM package if necessary. Usage is very simple - "checkinstall installation-commands", for example "checkinstall make install", "checkinstal install.sh", etc. For additional options, please check package documentation. I do not know home URL for CheckInstall, but it is included with SuSE Linux, and thus, may be downloaded from SuSE ftp site.
This article have been moved to MacOS X Tips and Tricks.
It may or may not be common, but I have encountered certain difficulties trying to print from Mac with MacOS 9 to Linux print server. I had two laser printers (Apple LaserWriter 12/640 and Tektronix Phaser 740L), both with Ethernet and original Adobe PostScript. For Windows, it was quite simple. I have assigned fixed TCP/IP address to each printer and created two TCP/IP forwarding queues, named lp1 and lp2 respectively. Then, both queues have been shared using Samba for Windows clients. For Mac, I supposed to create desktop printer using Apple's Desktop Printer Utility, which allows to connect directly to LPR via TCP/IP. However, any attempt to print resulted error #8827. Then, I have tried suggested by many people way: creating separate spool directory for papd (Netatalk print daemon) and using Netatalk print filters. Again, it does not work, although papstatus always returned OK and spool directory permissions were OK, too.
The solution was quite simple - redirect Netatalk print jobs to respective TCP/IP forwarding queues using LPR. My papd.conf is below.
PS. I am not sure why other two methods did not work for me (although they should), so your feedback is welcome.
One of the most really outstanding and valuable features of SuSE Linux is very informative search-able WEB based help system called SuSE Help Center. It combines information from SuSE's own manuals and support database; man/info pages; packages descriptions; and Linux How-to pages. The advantage of this bundle is obvious because it is possible to query several sources of information at once. SuSE support database is the most valuable part, it is updated several times a week with new tips and tricks. In order to use this feature on your workstation/server you need to install WEB server (one of the 4 available in SuSE distro), SuSE Help Center itself and related parts like support database (sdb), Linux How-To pages, etc. SuSE Help Center can be used with any WEB browser, either focally either remotely (run "susehelpcenter" from terminal or connect to http://SERVER-Name/doc/susehilf/index_en.html from WEB Browser). Screenshot, showing search result by PowerPC keyword in SuSE support database available here.
PS. Even if you do not use SuSE Linux, you can access SuSE support database directly at SuSE Web site.
SuSE Linux installation procedure in general is well described in the manual, however, many first time users face difficult problem what to install, mostly because of large number of included software packages (over 1500). These people often are not aware what exactly each software package designed for and what it does. Default install creates huge bloated system, which is confusing and difficult to maintain.
In short, to avoid bloated installation, you need to choose "Minimum Install", and then go to "Individual Package Selection" to select packages required for your particular needs (e.g. Netatalk for AppleTalk networking). Do not worry about package dependencies, YaST (SuSE installation/configuration tool) will automatically select required packages and warn about possible conflicts. Also, it is really bad idea to install things which just may be need sometime in the future!
Here is small categorized list of software for typical PowerPC Linux server installation:
Please note that many packages listed above are not mandatory (like MARS_NWE if you don't need Novell support). Also, the same features are available from many packages (you do not need to install all 4 web servers available at SuSE Linux distro, you have to choose one, most likely Apache). If you have difficulty to choose, for example, ftp server among 3 available, choose the one used by your friends (e.g. wu-ftpd), you can replace it later with another if necessary.
Additionally, large packages like KDE or Gnome carry a lot of garbage. Skip all alpha and beta applications, and install only ones which are known to be really needed. Please note that you have to install at least one file manager (Konqueror for KDE, included in KDE Base; GMC or Nautilus for Gnome), in order to make desktop environment really functional.
PS. My SuSE Linux PPC package index available here (named *.sel). You can use it as a seed for your own installation. Among necessary server software, KDE and Gnome desktop environments, there are packages required to (re)compile kernel, MOL, Netatalk and Samba.
If you are having difficulty to setup dual boot MacOS/Linux on New World Mac (writing yaboot/os-chooser configurations and working with Open Firmware) you can simplify this task with LILO PPC found in SuSE Linux PPC distro. LILO PPC is not an actual Linux Loader like on Intel PCs, but rather front-end which parses its configuration file and generates proper yaboot.conf, os-chooser script, sets startup device in Open Firmware and copies Linux kernel(s) to HFS boot partition if necessary. LILO PPC can be used with Old World Macs, too, but I do not use them anymore and thus, have no experience to share.
Using LILO PPC on Mac is quite simple. At first, do not forget to record your partitioning info somewhere (better on the paper). Now, suppose you have the following partitions' numbers: MacOS - #9, Linux root - #10, Linux swap - #11, HFS boot partition - #12 on master disk connected to primary UltraATA controller (factory-installed internal hard drive); and two kernels - factory 2.4 and your own custom-compiled 2.4.2reiserfs.
Save your lilo.conf and run "lilo" command in terminal. LILO PPC will generate yaboot.conf, os-chooser script (named MacOS ROM), do necessary modification of Open Firmware variables, overwrite yaboot and optionally copy Linux kernel image(s) to the HFS boot partition.
Also, LILO PPC from SuSE Linux PPC 7.0 and 7.1 assumes Linux as default OS. Thus, to boot MacOS, you need to press space key. This is not convenient if MacOS is your primary workspace environment. Just swap these statements in os-chooser script and save backup copy, since LILO PPC overwrite it next time you run lilo command.
PS. You can download my lilo.conf here. Please use it as example only!
Using SuSE PPC Kernel Sources
First of all, you need to decide whether you would like to use stable or development version. I strongly recommend to use stable (see article below), but if you have recent hardware, most likely you have to use development version in order to utilize most of hardware features. SuSE PPC development kernel maintained by Olaf Hering and is available here (inside beta directory) in form of RPM and patches against stock kernel from kernel.org. By the way, you can use SuSE kernel RPMs with other distros like LinuxPPC or Yellow Dog Linux. Look at read me file inside beta directory and download appropriate stock kernel. Unpack it to /usr/src/linux, then download entire patches directory from SuSE kernel archive, and put it inside /usr/src/linux. If you will use ftp client which show invisible dot files, you can find there .patch_info (yes, with dot at the beginning) text file which contains description of each patch. Now run the following commands from the terminal:
for i in `ls
patches/*`; do \
You will see a progress, and if everything goes OK, your kernel sources are ready to use. See instruction how to compile custom configured PPC kernel.
PS. Shell script for batch patching kernel available here.
MOL (Mac On Linux) is a cool piece of software written by Samuel Rydh which allows to run MacOS under Linux at almost full speed (screenshot available here). However, many first-time users often encounter hard crashes and lockups, what is quite frustrating, especially for Linux novices. This is not surprising, since MOL is very low-level software, and it is very toughly linked to the kernel. If you are new to Linux, I am strongly recommend you to use both MOL and kernel from your distro.
You can safely use MOL only if it is compiled using includes from your current kernel !
If you already have some experience, you can follow my step-by step guide to build your own MOL incarnation. First, download MOL source archives (mol*.tgz) and/or source RPMs (mol*.src.rpm) from MOL web site (you do not need source RPMs if you are not going to build your own mol RPM). Extract MOL sources anywhere you want ("tar xfvz mol.tgz"). To compile MOL, you also need to install gcc, GLIBC/kernel/XFree86 headers, ELF library (for MOL prior to 0.9.59), GNU bison and flex tools. Make a directory of your MOL sources current directory (e.g. "cd /usr/src/mol"), then run "make" and "make _install". Please note that "make _install" will overwrite all current MOL files, including existing configuration file /etc/molrc. Now open molrc, there are some things to be done. Most of tags will be left as is, since MOL does a good job determining hardware configuration. Below is a list of tags which are mandatory to update.
Depending on version, MOL loads either stripped (MOL 0.9.58 or less) either not stripped (MOL 0.9.59) MacOS ROM image from /usr/lib/mol/rom/rom.nw, or directly from MacOS System Folder (MOL 0.9.60 and above), look carefully in your newly installed molrc file. The simplest way to strip MacOS ROM is to copy it to HFS boot partition (my called macboot), remove spaces from file name, and use "strip_nwrom /macboot/MacOSROM /usr/lib/mol/rom/rom.nw". The last step is to run "molvconfig" script from terminal to configure video modes. Now type "startmol" and enjoy.
Few helpful tips for MOL users:
PS. You can download my molrc here. Please use it as example only!
This procedure is not much different from other Linux-supported platforms. First, you need to acquire Linux kernel sources (see below). You can place kernel sources anywhere you want, but link from /usr/src/linux to kernel sources directory is necessary. I recommend to use SuSE kernel sources since they contain the most stable and proven kernel version plus some important patches, and they can be used in any other distro. First step is to configure kernel compilation options. Make kernel sources directory default directory ("cd /usr/src/linux"), then apply patches (if any). Try to clone configuration of existing kernel ("make cloneconfig" for SuSE kernel or "make oldconfig" for stock kernel.). To do necessary changes, run console-based utility ("make menuconfig"). X-based configuration ("make xconfig") often does not work well. Save your configuration and run ("make dep clean zImage" and "make modules") to compile kernel and modules. Please never build bzImage ("make bzImage"), it will not work on PowerPC Mac!
However, there is one little problem - if you have reconfigured and/or patched the same kernel version as you are running right now, you will have to replace it and its modules. What if something goes work? There is one very useful trick - change extra version number in new kernel. To do this, open top-level Makefile inside /usr/src/linux, and increment or append something to EXTRAVERSION tag. For example, after applying Endian-safe ReiserFS patch I have changed 2.4.2 kernel version to 2.4.2reiserfs. Now you can keep both kernels and switch between them if necessary. Please note that you should change kernel version before running configuration utility and generating dependencies ("make dep").
After successful building of kernel and modules, install modules ("make modules_install"), then append meaningful suffix (e.g. "2.4.2reiserfs") to files named "vmlinux" and "System.map" and move them to /boot directory. Update yaboot.conf accordingly, and reboot your Mac.
PS. You can download SuSE and my configurations for ReiserFS enabled PPC kernel here. Please note that my configurations exclude features I don't need - SMP, parallel port, PC Card, USB->Serial adapters, Video for Linux, certain interfaces like FDDI, file system and partition support for operating systems/platforms like Acorn, Amiga, Alpha, OS/2, Windows NT.
In fact, there are many methods of configuration of dual-boot MacOS/Linux system depending upon Mac hardware architecture (Old World, New World) and type of booting partition (invisible bootstrap or HFS with fake System Folder). I have used only second one on New World Macs (which load MacOS ROM file from hard drive, not from ROM chip on the motherboard, more info available here). Configuration manuals are rather complicated and confusing, so all you need is to understand technical background of Linux booting process on the New World Mac.
Basically you just need let Open Firmware evaluate os-chooser script (it must be inside fake System Folder on separate startup HFS Linux boot partition and have type "tbxi" and creator "chrp", sometimes need to be renamed to "MacOS ROM"). After that, either yaboot (Mac Linux Loader) either MacOS will be started up, depending on result of conditional statement in os-chooser (usually it checks whether certain key is pressed to determine which OS need to be loaded). However, yaboot needs valid yaboot.conf file to load proper Linux kernel image. During normal startup procedure yaboot pick ups kernel image from the /boot directory on Linux partition. Kernel image (file called "vmlinux") and RAM/root disk images (usually named "ramdisk.image.gz" or something like that) located on HFS Linux boot partition are usually required only for installation and/or update of the base system if startup CD does not work or do not exists (however, on some 2001 Macs kernel image may be loaded from HFS boot partition only). If you load kernel and RAM/root disk images from HFS boot partition you can install or upgrade base system or entire installation from NFS or FTP without bootable Linux CD. On Linux you cannot safely replace base of currently running system. However, you can safely install, remove, upgrade or reconfigure all other components without reboot (you might need to restart certain services).
Many people ask what PPC LILO (Linux Loader) found in some Mac Linux distributions does? LILO on Mac does nothing but parses lilo.conf and updates os-chooser, yaboot.conf and Open Firmware accordingly, it is not a real bootloader like on PC. You can safely remove it. SuSE did PPC LILO for IBM PowerPC workstations and to make PC people feel more comfortable on Mac.
At first, do not forget to record your partitioning info somewhere (better on the paper). Now, suppose you have the following partitions' numbers: MacOS - #9, Linux root - #10, Linux swap - #11, HFS boot partition - #12 on master disk connected to primary UltraATA controller (factory-installed internal hard drive). The question may be where are partitions #1-8? They are not lost, they are occupied by partition map, hard disk drivers, driver patches, etc. They are visible only with special hard drive formatting utilities or Linux partitioning software. If you plan to install MacOS X on the same hard drive as Linux please do it before installation of Linux, since MacOS X installer may add additional driver patches and thus, shift partition numbers! After creating all necessary partitions copy suseboot folder located on SuSE Linux CD#1 (also available on ftp) to HFS Linux boot partition. You have to edit only two files - os-chooser (startup Open Firmware script) and yaboot.conf (bootloader configuration file). Open os-chooser with text editor like BBEdit and find the following statements: "boot ultra0:xx,\\yaboot" eval and "boot ultra0:xx,\\:tbxi" eval. Now replace xx with partition numbers of Linux and MacOS respectively. Save and close os-chooser. Open yaboot.conf. Syntax is very simple.
Top statement default = xx should list your preferred kernel (e.g. default = linux-2.4-SuSE).In Linux you can install as many kernels as you like, and switch between them on startup. If you install Linux on secondary UltraATA (or SCSI) hard drive, you should change ultra# and hda# accordingly (please refer to special literature, FAQ, or other How-To in order to learn how Linux recognizes and names storage devices and partitions, it is beyond the scope of this article). Now select Linux HFS boot partition in MacOS Control Panels -> Startup Disk, reboot, and press space bar to boot in Linux, then press Tab to switch between configurations listed in yaboot.conf.
PS. You can download my yaboot.conf and os-chooser script (renamed to MacOS ROM) here. Please use them as examples only!
Mature support for journaling file system ReiserFS appeared on the PowerPC only at the beginning at June 2001, thanks to Jeff Mahoney and sponsorship of SuSE GmbH. Without ReiserFS support PPC Linux hardly could be called real server OS (although another journaling system SGI XFS have been available, it's usage have been rather tricky, and no PPC Linux distributions included it for out of the box deployment). At the time I am writing this (June 10, 2001) I know how to install ReiserFS on PPC with SuSE Linux only. If you are using another PPC distro, you have to develop another installation technique or somehow adapt main. Please note that you will have to reformat your existing ext2 partition(s) or create new one(s).
So, what do you need? SuSE Linux PPC 7.1 CD#1; PPC ReiserFS boot CD, SuSE-patched PPC kernel RPM 2.4.2-11 or later plus kernel sources (usually named lx_suse or lx_hack), if you want later to build custom - compiled kernel. Of course, you can start your Mac from ReiserFS boot CD and then replace it with installation CD, but there is certain risk that old YaST (SuSE Linux installer) will damage your ReiserFS partition or overwrite fstab file with wrong information.
This is step by step guide how to build your own ReiserFS enabled PPC Linux installation CD:
I found Endian-safe ReiserFS port system a little bit slower than ext2, but small performance drop is certainly worth extra reliability.
PS. First version of yaboot with ReiserFS patch released June 5, 2001 by SuSE may work or sometimes may not with separate /boot ext2 and /root ReiserFS partitions. However, it works without any problem if /boot and /root are located on single ReiserFS partition. The problem is identified by SuSE and fixed version is on the way.
Of course, its possible to do that via e-mail/ftp, removable storage, shared volume on the networked server, etc. But what if you have standalone workstation at your home? There are three very simple and efficient methods.
Of course, you can mount your primary MacOS partition in read-write mode, if you have initialized it in HFS format, or use Linux HFS+ Utilities, but I am not sure it is very safe.
Most people new to PowerPC Linux almost always stumble when they try to build custom kernel (to be honest, I am was not an exception). The reason is very simple - in most cases PowerPC tree in kernel.org is outdated or broken. There are four PowerPC kernel trees, two development - by Paul Mackerras and Benjamin Herrenschmidt; and two stable maintained by Cort Dougan from FSM Labs and SuSE GmbH (unfortunately, time to time PPC kernel repositories move, so please visit PenguinPPC.org for up to date URLs). The last is not exactly tree, but rather one of the recent recent versions proved to be really stable (e.g. patched 2.4.2 vs plain 2.4.5) with some patches for necessary hardware support. I strongly recommend the last. SuSE PPC kernel sources available as RPM source archive (search SuSE PPC distribution/update directory called d2 for package named lx_suse, lx_hack, or kernel-sources); and as number of patches (also available here) for stable kernel tree from kernel.org. (at the time I am writing this, to 2.4.2 kernel).
The main advantage of SuSE PPC kernel tree is out of the box support for Endian safe ReiserFS, which is required in order to deploy ReiserFS journaling file system on the Mac. Although available as separate patch, this patch sometimes depend on other patches, and therefore, is not very safe to use by inexperienced person. Soon or later it will be incorporated into stock kernel, but at the time of last update of this topic (July 2001) the best solution is to use SuSE kernel.
The rest is of build process is almost the same as as for x86 kernel. Since Apple have unified hardware support and the same controllers used in many models, required number of hardware drivers is really small. For example, only one driver (Power Mac DMA Sound) is needed for sound support across entire Apple hardware base which is capable to run Linux.
KDE desktop environment is pretty complicated and damn big piece of software, it requires user to be very careful during installation/upgrade process in order to avoid being screwed up. This is step by step guide for novices or people who do not find themselves very comfortable without GUI shell (i.e. Mac users). I am assuming that you have complete download of KDE from SuSE ftp site (usually around 200 MB).
Getting Updates Easy
In order to automate downloading updates, which may consist of hundreds of files, I can suggest PERL script called mirror, which is supplied with SuSE Linux. Although SuSE Linux has an automatic update tool called YOU, I recommend you to keep all updates, because new ones may introduce unwanted side effects, bugs and glitches. I have created directories inside my home directory called "mirror", and sub-directories inside: SuSE-update-i386, SuSE-update-PPC, KDE-update-i386, KDE-update-PPC, etc. "mirror" directory is being shared via FTP, Samba, Netatalk and NFS in read-only mode for easy access.