alt.os.linux.slackware FAQ Sun Jul 16 15:46:57 EDT 2023 PART 0: Introduction Welcome to the alt.os.linux.slackware FAQ! This FAQ was created to help new and not-so-new Slackware Linux users with various aspects of installing, running, and maintaining a Slackware Linux system. It is based primarily on traffic in the alt.os.linux.slackware newsgroup. Wherever possible, answers provided in this document have been worded so they are not specific to any version of the Slackware distribution. Where that wasn't possible, the answers have been written so they apply to the version that was the current stable release at the time of writing, (14.2 at the time of the last update of this FAQ). Any answers that are applicable only to older versions are clearly identified as applying to the latest version of Slackware for which they are known to be applicable. This document would never have been possible without the many contributions from numerous participants in the alt.os.linux.slackware newsgroup, listed at the very end of this document. Any errors in content or omissions are strictly the fault of the FAQ maintainer, and not of the people whose contributions are included in this FAQ. These should be brought to the attention of the FAQ maintainer at aolsfaq-maintainer[at]therockgarden[dot]ca. A translation to Brazilian Portuguese of this FAQ is available at https://carriunix.github.io/ptbr_aolsfaq.txt. Questions answered in this FAQ: PART I: General questions about Slackware Linux - Should I use Slackware? - Where can I download the book that's on the Slackware website? - What documentation comes with my Slackware installation? - I still need help! What other documentation exists elsewhere on the internet? - Are there other places to discuss Slackware? - When is the next version of Slackware going to be released? - Is there a Slackware version for the AMD64? - What about Slackware on other architectures? - How do I report a bug in Slackware? / How do I contact Patrick Volkerding? - Where is the installation's "setup" program? - Doesn't Slackware support PAM? Everyone else does! - How can I authenticate a Slackware client against an LDAP server without PAM? - SSL Jabber doesn't work - Where's my .bashrc? / My .bashrc is missing! - Why isn't $PACKAGE included in Slackware? - I downloaded an ISO image. Can I preview it before burning to a CD? - Why did Slackware change from XFree86 to X11 (X.org)? - Why can I only write to my FAT32 drive as root? - How do I enable write access on my NTFS partition? - Why am I unable to get sound after setting up a graphical login program? - I have a question about ... - Why does Slackware use gz/xz instead of bz2? - Why is KDE-4.2 on Slackware-13.0 so slow? PART II: Installing Slackware - Where can I get a Slackware ISO image? - How do I install Slackware? - How can I install Slackware via FTP? - How should I partition my hard disk? - How much swap space should I use? - Why are there so many stories about allocating swap space? - How do I upgrade from a previous version of Slackware? - Where can I find packages built specifically for Slackware? - Can I use RPMs with Slackware? - Is there a package manager for Slackware? - How do I uninstall software? - Is there any updating tool in Slackware like Debian's apt-get or RedHat's up2date? - Which package contains ? - Why doesn't my work in Slackware? It worked in ! - Where can I get information about what's installed on my system? - I installed the latest kernel from the Slackware distribution. Where are the kernel modules for that version? PART III: Slackware Linux system administration: - Slackware is installed. Now what? - How do I find out what updates are available? - What's the difference between Slackware startup scripts and System V startup scripts? - Where's /etc/X11/XF86Config!? - How come I get "--MARK--" appearing in my syslogs every few minutes? How can I turn that off? - How come I can play sound as root, but not as a normal user? - How can I start up my computer with an X login, rather than a console login? - I made changes to /etc/motd. Why are they overwritten when I reboot? - Are there any guides on compiling a new kernel? - I get a huge font in the console / a blank screen on boot since I've installed a new kernel - How do I stop $DRIVER_OLD from loading at boot time? I want to use $DRIVER_NEW - After recompiling the kernel, the sound doesn't work! - Why do I get all these messages "Unresolved symbol" and/or "can't locate module" when I boot my system? - How do I change to KDE/other window manager? - Why do I get a weird saying (or fortune) whenever I log in? - My scrollmouse won't work in X - Removable devices aren't auto-mounting on Slackware-12.0 with HAL - Help! I think I've been hacked!!! - How do I get vmware to work on Slackware? - Can I create encrypted Filesystems in Linux? - Can I use packages from Slackware-current on my Slackware-$VERSION system? - How do I create my own Slackware packages? PART IV: not Slackware, but Slackware-related - Why do most package builders and SlackBuild scripts use prefix=/usr instead of /usr/local? PART V: about the FAQ - Where can I find the most current version of this FAQ? - May I mirror/modify the FAQ? - May I contribute to the FAQ? - FAQ contributors. PART I: General questions about Slackware Linux Should I use Slackware? Of course you should! :-) Slackware is a Linux distribution suitable for almost any user. It's very stable and reliable, actively maintained, and has a very good track record for prompt security updates. Whether your intention is to setup a dedicated web server in a remote co-location facility, or a desktop workstation based on the popular KDE desktop environment, or any number of options in between, Slackware Linux is an excellent choice. Slackware is generally considered the best choice for older hardware, such as i486-compatibles and early Pentium-based PCs. In fact a good option for many users wanting to learn GNU/Linux, who are not ready to do without their existing OS, is to install Slackware on an older machine. That way they can still have the operating system they're already used to on a newer computer, while they learn their way around Slackware Linux on the console or lightweight windowing environment (or via network connection, telnet or ssh.) However, if you're not into reading documentation at all, you may wish to try another distribution. All Linux distributions have a learning curve, and if you won't read the documentation, you probably won't get Slackware Linux working to your satisfaction. In choosing a Slackware version, it's best to select the most current stable version that will run on the hardware you wish to install it on. Even the most current versions of Slackware Linux will run on very modest, or aging, systems, if you can do without a windowing environment (or can work with a lightweight window manager). The exception is when installing on a very small hard drive: in such cases Slackware 4.0 or earlier is likely preferable, as you will be able to get more software installed per megabyte used. A very useful console-only Slackware 4.0 system can comfortably fit on a 100MB hard drive. Where can I download the book that's on the Slackware website? (quoted from http://www.slackware.com/book/) The official guide to Slackware Linux, the Slackware Linux Essentials, has been recently revised. If you want to be able to read it online, you may want to visit the slackbook website. http://www.slackbook.org/ You may also want to buy a printed copy, in that case please visit the Slackware Store! At the time of the last update of this FAQ, the Slackware Store is closed, and not expected to return. You still can read the latest slackbook version, linked to from above, in html, pdf, or postscript formats, or access the beta version in HTML. An EPUB file of beta version is also available at slackdocs website (http://docs.slackware.com/epub:slackbook). What documentation comes with my Slackware installation? Pay special attention to the files in the root directory of the first installation disk. Some of the files of particular interest are listed here, but there are others that contain useful information. - ANNOUNCE.* - BOOTING.TXT - CHANGES_AND_HINTS.TXT - ChangeLog.txt - FAQ.TXT - README.TXT - Slackware-HOWTO - UPGRADE.TXT A full installation of Slackware includes quite a bit of documentation: - man pages: (e.g. "man lilo.conf") - The FSF help system: (e.g. "info -f find") - Linux FAQs: /usr/doc/Linux-FAQs - Linux HOWTOs: /usr/doc/Linux-HOWTOs - Other program documentation: /usr/doc - The kernel documentation: /usr/src/linux/Documentation There's also the kernel configuration help. When configuring your kernel, you can get help on each configuration item. Not all items have help, but most do. The 2.6 series kernels add 'make help' and offer a search function within 'make menuconfig': /. The scripts in /etc/rc.d are generally well commented and can explain a lot about what goes on when the system starts up, and the /etc/rc.d/rc.modules script briefly describes almost every kernel module that is listed in it. I still need help! What other documentation exists elsewhere on the internet? There is, of course, the alt.os.linux.slackware newsgroup, populated by a variety of Slackware Linux users, with varying backgrounds and levels of expertise with most aspects of running a Slackware Linux system. No matter what problem you might encounter with Slackware Linux, there's very likely someone who frequents this newsgroup with sufficient knowledge to try and help, or at least to help point you in the right direction to better help. It's probably worth your while to search the newsgroup using google, for older messages that may have expired from the news server you use. If someone else has had the same problem and resolved it already, you might be able to learn from the experience gained in that thread of discussion. http://groups.google.com/group/alt.os.linux.slackware Slackware's own Documentation http://www.slackware.com/ ftp://ftp.slackware.com/pub/slackware/ (.txt files in per-version directories) The Slackware Documentation Project http://docs.slackware.com/start The Official Slackware Book http://www.slackbook.org/ A Slackware Wiki https://slackwiki.com/Main_Page Wikipedia has an entry http://en.wikipedia.org/wiki/Slackware Other FAQs about Slackware http://www.slackware.com/faq/ http://wiki.linuxquestions.org/wiki/Slackware-FAQ How to Install and Run Slackware (written for Slackware-13, but not particularly version-specific; note reader comments and responses suggest that some of the author's information and Slackware experience are dated, but the comments themselves help the article be more up to date; by itself, this article should at least help someone get running on a Slackware system pretty easily) http://www.maketecheasier.com/install-and-run-slackware-13/ Some general linux help sites http://www.linuxguruz.com/ http://www.justlinux.com/nhf/ The Linux Documentation Project http://www.tldp.org/ The kernel http://www.kernel.org/ http://www.kernelnewbies.org/ Firewalls https://www.frozentux.net/2018/04/iptables-tutorial-work/ X Window System http://www.x.org/ Software-specific documentation: most software packages have master web sites with documentation for current versions of their packages. These can usually be found by searching for the package name on http://sourceforge.net/ http://freshmeat.net/ (aka https://sourceforge.net/ ...) https://github.com/ If all else fails ... http://www.google.com/ Are there other places to discuss Slackware? Aside from the alt.os.linux.slackware newsgroup, there are many other places to discuss Slackware. A web search engine will provide links to many, but here are a few for your convenience: LinuxQuestions.org - Slackware: "where Linux newbies come for help" https://www.linuxquestions.org/questions/slackware-14/ A public Slackware mailing list http://mailman.lug.org.uk/mailman/listinfo/slackware IRC https://libera.chat/ has some channels: - ##slackware - #slackbuilds - #slackdocs https://services.oftc.net/ - #slackware When is the next version of Slackware going to be released? Slackware's own FAQ has the following to say on the matter: (http://www.slackware.com/faq/do_faq.php?faq=general#4) It's usually our policy not to speculate on release dates, since that's what it is -- pure speculation. It's not always possible to know how long it will take to make the upgrades needed and tie up all the related loose ends. As things are built for the upcoming release, they'll be uploaded into the -current tree. If the -current does not exist, it probably means we have just released a new version of Slackware. A new -current tree will be formed shortly after the new release is made. If you watch www.slackware.com, you will find announcements when new releases become available. One hint that an official release is impending is that the HOWTOs, FAQs, and boot images are being prepared. Track the CHANGELOG of -current to get another rough idea for when a release might be forthcoming. Is there a Slackware version for the AMD64? Slackware is available in either the long-standing 32-bit form (for Intel-compatible x86 systems), or as a 64-bit system, Slackware64, compiled to take full advantage of x86_64 procecessing power. This possibly has become the more widely deployed version of Slackware. Slackware64 can also be adapted to be able to work with 32-bit software by providing suitably compiled library support, as described at http://www.slackware.com/~alien/multilib/ and https://docs.slackware.com/slackware:multilib Historically, to satisfy those that wanted 64-bit Slackware when it wasn't officially available from Slackware, Fred Emmott produced an unofficial port, called slamd64. That port does not appear to be available any longer. What about Slackware on other architectures? There is a Slackware port to the ARM architecture, actively developed and maintained since 2002 (and as an official port since 2007), by Stuart Winter. See http://arm.slackware.com/ for details. Over the years, there have been ports to the S/390, SPARC and Alpha platforms, but none were kept up to date and were eventually dropped. Unofficial ports to the Alpha platform (*and others?*) have since appeared and disappeared, but none yet have been released as a complete Linux distribution ported from Slackware. If you want to, you're more than welcome to port Slackware to other architectures, but you can't call it Slackware without explicit permission from Patrick Volkerding. How do I report a bug in Slackware? / How do I contact Patrick Volkerding? Contact information for Slackware is listed at: http://www.slackware.com/contact/ As noted on that page, please keep in mind that they get a lot of email. Please be sure to read the Slackware FAQ pointed to above and any other relevant documentation before emailing. (See "What other documentation exists elsewhere on the internet", "Other FAQs about Slackware") There are appropriate places to discuss possible bugs before reporting them, such as the linuxquestions.org forum, also pointed to above. (see "Are there other places to discuss Slackware?") Discussion of potential bugs often takes place in the alt.os.linux.slackware newsgroup, and this can be a good way to confirm whether behaviour being seen really is a bug or an operator error, such as a local configuration error. However, it should be noted that Patrick Volkerding doesn't typically take part in the newsgroup and folks helping with Slackware development are more often seen on linuxquestions.org, so if you're sure that what you have is a bug report that is specific to Slackware, posting to the newsgroup will most likely result in replies urging you to visit linuxquestions.org and report the bug there. Where is the installation's "setup" program? The /sbin/setup script in older Slackware versions allowed quick access to various system configuration scripts. The configuration scripts are still there, but "setup" is gone. You can run each of these independently: package tools: pkgtool install/remove/view packages, re-run setup scripts explodepkg explode a Slackware compatible software package installpkg install a Slackware compatible .tgz package makepkg make a Slackware compatible .tgz package removepkg remove an installed package upgradepkg upgrades a Slackware .tgz package system tools: adduser easy way to add user accounts makebootdisk create a SYSLINUX bootdisk mkrescue create a rescue CDROM or floppy configuration tools: fontconfig select fonts for X make-bootdisk create a bootdisk modem-device select your modem device hotplug enable hotplug on boot liloconfig create the lilo.conf file mouse select mouse and enable gpm netconfig setup networking services select which services to run on boot setconsolefont select special console fonts timeconfig select your timezone xorgsetup setup X to suit your system xwmconfig set your default desktop / window manager Pkgtool can also run many of the setup scripts for you. Pick the last option before "quit" which says "choose installation scripts to run again." You pick the scripts to run with the space bar and arrow keys. Also, note that xorgsetup and xwmconfig are both in /usr/X11R6/bin, which may not be in your path. See the manual pages for each of these tools for additional details about running them, available options, etc. Doesn't Slackware support PAM? Everyone else does! Slackware, in versions up to and including 14.2 doesn't use or include PAM, though of course you're free to install and use it on your own systems. You can get Patrick Volkerding's own explanation for omitting PAM from the distribution in the slackware 9.1 Changelog, quoted here: If you see a security problem reported which depends on PAM, you can be glad you run Slackware. I think a better name for PAM might be SCAM, for Swiss Cheese Authentication Modules, and have never felt that the small amount of convenience it provides is worth the great loss of system security. We miss out on half a dozen security problems a year by not using PAM, but you can always install it yourself if you feel that you're missing out on the fun. (No, don't do that) Early in 2020 this stance apparently changed, and PAM began appearing in Slackware-current, preparing for the Slackware-15.0 release. After some months of PAM-enabled packages being available for testing it was finally merged into the main distribution tree and will be found in future versions of Slackware. How can I authenticate a Slackware client against an LDAP server without PAM? If you've read above, you know that Slackware versions prior to 15.0 don't support PAM, but the most common way of configuring a linux client to authenticate against an LDAP server is to use PAM. What to do? The obvious response would be to upgrade the system that needs LDAP authentication to Slackware-15.0 after it gets released (or to Slackware-current if the system can't wait for the release), but what if for some reason (though it seems like a rather remote possibility) the system is best kept running an older version of Slackware? Well, one method is to use the nss_ldap software provided by PADL (http://www.padl.com). You'll need to obtain and install the software yourself, but it's a lot easier than installing PAM. The basic procedure follows: - Install nss_ldap on the client. [FIX ME: some LDAP directories can be configured to permit anonymous binding for the purpose of authenticating users. The following steps should not be necessary in those cases] [--------------------------------------------------------------] - Obtain from your LDAP server admin an LDAP account that has the ability to read (at least, write is helpful) all of the appropriate login information. In particular, this account must have at least read access to the userPassword attribute of all accounts to be used on the Slackware client. - Configure this DN in ldap.conf as rootbinddn. - Create a file, /etc/ldap.secret, and add the rootbinddn's password (cleartext!) to the first line of the file. Add a trailing newline to the password. [--------------------------------------------------------------] - Modify /etc/nsswitch.conf to authenticate against LDAP. You'll probably want to modify at least passwd, group, and shadow. It's best to add ldap after the files entry for each database (or in an appropriate order, if you use things like nis). (Personally, I don't recommend using compat mode if also using nis or ldap.) That's all you should need to do - no restarting of daemons should be needed. [FIX ME: does this entry still apply? ] [--------------------------------------------------------------] SSL Jabber doesn't work The OpenSSL packages provided with Slackware (versions 8.0 through 9.0's -current dated December 2, 2002) don't work with Jabberd. Jabberd reports the error: mio_ssl.c:93 Could not create SSL Context: error:140A90A1:SSL routines:SSL_CTX_new:library has no ciphers When it loads up and attempts to use your SSL key. The fix is to download the OpenSSL source and compile it yourself, with a standard ./configure && make && make install. It will go in to /usr/local/ssl, not interfering with the Slackware SSL packages at all. make clean in your Jabberd source directory then ./configure --enable-ssl && make and Jabberd should work properly with OpenSSL now. [--------------------------------------------------------------] Where's my .bashrc? / My .bashrc is missing! Unlike almost all other distributions, Slackware doesn't ship with a default .bashrc, so no such file appears by default in your home directory. There is nothing special or magical about this or any dotfile (hidden configuration file). Simply create a .bashrc file with the editor of your choice. The contents generally boil down to setting variables and shell options, and defining aliases and/or functions, as well as executing whatever commands you'd like. See the bash manual page for details. Why isn't $PACKAGE included in Slackware? Because it isn't. One person controls that which is called "Slackware", and that one person 1.) didn't want to include it, or 2.) didn't think about it. In either case you can possibly get an authoritative answer by contacting Slackware directly (see http://www.slackware.com/contact/ for details). The people on the alt.os.linux.slackware newsgroup do not have a say in which software gets included with Slackware. If you really are intending to suggest, or request, that a particular software package be added to Slackware, you might want to visit the Linux Questions forum, pointed to above, and find there a thread specifically for such requests. There are no guarantees that your request will result in the software being added, but it has a much better chance of success if you post it on Linux Questions than in the alt.os.linux.slackware newsgroup. I downloaded an ISO image. Can I preview it before burning to a CD? Yes. You need to load the loop.o module in your kernel or compile it into the kernel itself. insmod loop.o should do it. This will allow you to mount the ISO image as a pseudo disk and perform file management on it. I recommend mounting as read only just to protect the file. To mount an ISO file, as root type: mount -t iso9660 -o ro,loop filename mountpoint where filename is the link to or full filename and extension of the ISO image, and mountpoint must be an existing directory onto which to mount the image. Then, you can cd to mountpoint and read the contents of the file directly! Why did Slackware change from XFree86 to X11 (X.org)? The reasons for changing to X11R6 (X.org) from XFree86 are given in the Slackware 10 ChangeLog: +--------------------------+ Sun May 30 01:06:39 PDT 2004 [...] x/: Switched to X11R6.7.0 from X.Org. Thanks to those who sent comments to x[at]slackware.com. Seems the community has spoken, because the opinions were more than 4 to 1 in favor of using the X.Org release as the default version of X. I think I've heard just about every side to this issue now, and it was only after careful consideration and testing that this decision was made. It's primarily (as is usual around here) a technical decision. Nearly everyone else is going with X.Org and it seems to me that sticking with XFree86 it spite of this would be asking for compatibility trouble (indeed, we saw some issues between X.Org and XFree86 4.4.0 until a few things in XFree86 were patched). I also noticed that the ATI Radeon binary drivers designed for XFree86 4.3.0 do not work with XFree86 4.4.0, but do work with the X.Org release. Something I'm *not* in favor of is dragging around two nearly identical projects, so XFree86 4.4.0 has been moved to the /pub/slackware/unsupported/ directory on the FTP site. Why can I only write to my FAT32 drive as root? For these partitions to be writable by an unprivileged user, you need to pass options to mount (via the command-line or fstab). There are several combinations of options you can give. Some examples follow, but the mount manual page gives more complete details, lists additional available options, and provides examples of its own. - you can add a line similar to the following to /etc/fstab, so that whichever user (privileged or not) mounts the filesystem can write to it: /dev/XXX /xxx vfat user 0 0 - using mount on the command-line, to let a specific UID and/or GID write to the filesystem, you can use: mount -o uid=1000,gid=102,rw /dev/XXX /xxx - using mount on the command-line, you can set the umask to let all users write to the drive (this method is not recommended since it lets any user, trusted human and otherwise, to write to the mounted filesystem): mount -o umask=000,rw /dev/XXX /xxx Any of these methods can be combined (e.g using uid, gid & umask together to let the whole group write to the drive). As mentioned above, see the mount manual page for additional details. See also https://slackwiki.com/Windows_Partitions for more information. How do I enable write access on my NTFS partition? NTFS is a moving target and while read support for it is mature, write support isn't. If you enable write support on your NTFS partition there is a high probability that you will corrupt the partition and make all or part of your data there inaccessible in either Linux or Windows. However, if you're feeling brave, you can do this by enabling write support in the kernel module. In the 2.6 kernel you'll find this option here: Symbol: NTFS_RW [=n] Prompt: NTFS write support Defined at fs/Kconfig:733 Depends on: NTFS_FS Location: -> File systems -> DOS/FAT/NT Filesystems -> NTFS file system support (NTFS_FS [=m]) [FIX ME: Someone please confirm this part ...] [--------------------------------------------------------------] You'll also need to explicitely mount the drive read-write. The following works for me. Just change your mount points and partition. mount -t ntfs /dev/hda1 /mnt/ntfs -o rw [--------------------------------------------------------------] Why am I unable to get sound after setting up a graphical login program? Slackware automatically adds a user authenticated via the console to certain groups such as audio and cdrom. However, the graphical login managers shipped with Slackware don't support this feature. You'll need to manually add those users to those groups, or change permissions on certain /dev files. I have a question about ... Although there may be someone on the alt.os.linux.slackware newsgroup who knows enough about the derivative distribution you're using, please keep in mind that readers of the newsgroup are likely not as familiar with the derivative distribution as they are with Slackware. There's a very good chance that the distribution you're using has its own support channels, and its own user community that may be able to provide _better_ help with that distribution than the folks who frequent alt.os.linux.slackware can. That said, if you believe that a post to alt.os.linux.slackware is likely to get the help you're looking for, or you're unable to get sufficient help from the derivative distribution's own user community, you'll find that the more clearly you describe the problem, without forgetting to mention which Linux distribution you're using, the easier it will be for others to try and help. Why does Slackware use gz/xz instead of bz2? Slackware is one of the few major linux distributions that can still install fairly easily on many older computers (including Pentiums and 486s, up to at least Slackware-12.x). While bz2 might offer slightly better compression of packages, the amount of time these older machines take to decompress bz2 files is far greater than that required for gz. Thus, Slackware has traditionally used gzip for compression of its packages. Since the release of Slackware-13.0, the distribution now ships packages compressed with "xz" instead, in an effort to find a true compromise between compression ratio and decompression performance. Why is KDE-4.2 on Slackware-13.0 so slow? KDE-4.2, as distributed with Slackware-13.0, includes a file indexing daemon that runs by default. Strigi is designed to provide full file indexing in KDE that's supposed to perform better than alternatives. However, the Strigi File indexer included with KDE-4.2 consumes excessive amounts of resources, and does so almost constantly. This causes the system to appear to bog down. If you are experiencing performance problems, such as the hard drive constantly in use, or the CPU always active, you may try disabling Strigi by going into the System Settings, going to the Advanced tab, and Desktop Search. From there, you can disable the file indexer. This should speed things up considerably. PART II: Installing Slackware Where can I get a Slackware ISO image? There are options, listed at http://www.slackware.com/getslack/ A list of Slackware mirrors is available at https://mirrors.slackware.com/mirrorlist/ This link shows a history of Slackware versions: http://slackware.cs.utah.edu/ How do I install Slackware? Installation instructions are included with each Slackware CD set, in the form of a small booklet, and as text files on the installation CD. The Slackware web site also has helpful documentation at http://www.slackware.com/install/ The SlackDocs project has an article on installing Slackware: http://docs.slackware.com/slackware:install Newer versions of Slackware (since Slackware-8.1) include an installation HOWTO document, in the root directory of the first installation disk, and also available at the following URL: ftp://ftp.slackware.com/pub/slackware/slackware/Slackware-HOWTO The HOWTO should also be available at the various mirrors. See the "getslack" URL above for more details on mirrors. How can I install Slackware via FTP? Slackware has never given the option to install via FTP. The only network-based installation option is NFS. You could configure NFS on an already running system, and download the installation files there, to install onto your target system. Unless you already use NFS for other reasons, or you have no other option (for example no CD drive on the target system), this approach may not be worth the effort. There is a unofficial way to install Slackware-current from network using a mini ISO image over http or ftp. You will find more information at https://www.slackware.com/~alien/slackboot/mini/ How should I partition my hard disk? This question will normally receive as many different answers as there are people answering it, and any of them might be right for your target system. Still, what's presented here is a generally accepted approach to partitioning a single hard disk for a Linux installation. The easiest way to partition your system is of course to not partition at all. Or rather, to create a swap partition at the beginning of the disk, and leave the rest as one large partition for /. Note, however, that the BIOSes on most older systems were unable to boot from a partition that occupied space beyond some number of cylinders on the disk. On such systems, the first disk partition should be created so that it is no larger than that limit, and this partition should be the one containing the operating system kernel, (many people mount this as /boot, while others move the system kernels out to the "/" root directory and use this smaller first partition as "/") It is usually necessary to have at least a swap partition, and there are various reasons why you might decide to divide various other parts of the system onto separate disk partitions. For example, it can be a good idea to put /home and /usr/local on separate partitions. That way, you can upgrade to a newer version of Slackware without having to overwrite your personal data and the programs you installed from source. It's still advisable to take complete backups of any information you consider important, but having these directory trees as separate filesystems will help ensure that upgrades and new installations won't cause you to lose your data. Instead of creating two partitions for /home and /usr/local, you can also create only one. Create a directory /usr/local/home on this partition, and then make a sym-link from /home to /usr/local/home. This way, /home and /usr/local make use of the same partition, which means you don't have to decide which partition you want to make the largest. The next question is usually how big the various other partitions should be. This of course greatly depends on what you want to install and how you want to use your system. A full install of Slackware 10.x (with KDE) took some 4-5GB. Slackware-14.x grows to roughly 15GB, to which you will have to add some free space. So for a full install, you will need to give / at least 20GB (30GB would be better). You can of course use less if you don't do a full install. The rest of the hard disk can be split up between /home and /usr/local. It might help you gain additional insight to read A Quick Guide to Linux Partition Schemes, at http://www.maketecheasier.com/quick-guide-to-linux-partition-schemes/ How much swap space should I use? The trick is to know two numbers. First determine how much memory the system will use under its expected peak loads. Most often this number will be an educated guess under the best circumstances, so it's worth being generous here. Second, determine how much physical memory you can afford to put into the computer system, or that the system will be able to recognize and use. This may be already determined by the memory that is presently installed in the target system. Swap space should be at least as large as the difference between the above two numbers. There have been various "rules-of-thumb" over the years that swap space for a Unix or Linux system should be equal to an even multiple of the amount of physical RAM on the system (with, in some cases, an extra amount large enough to hold a copy of the system kernel). On operating systems that produce a kernel+core file when recovering from a system crash, such a rule of thumb is reasonably applicable, but Linux isn't such a system, so the only real requirement for swap space is determined by the difference between how much memory the system will need to use, and how much physical memory can be installed into it. Note that the Linux kernel's suspend option uses the swap partition to store the memory image. If you plan to use this feature, be sure to setup an appropriately-sized swap partition. Why are there so many stories about allocating swap space? Well, there *is* a logical reason for the rule of thumb that swap should be 2 times the amount of RAM, it just doesn't apply to Linux that's all. On systems derived from older versions of BSD (I'm not sure exactly which version of BSD, but Ultrix and SunOS 4 are examples of commercial UNIXen for which this is true) the swapping algorithm allocates swap space immediately for all memory allocated by the kernel. Which means when a program is loaded, swap space is encumbered. Also when a program calls brk() or sbrk() for more memory, swap space is immediately allocated. Hence at an absolute minimum, for the system to even use its RAM, there *must* *be* a 1:1 relationship between RAM and swap space. If the system is to have virtual memory beyond the limits of physical RAM, swap must be increased beyond 1:1. The size of virtual memory is exactly the size of swap. Hence the "Rule of Thumb: Swap should be twice the size of RAM", which allows just about exactly twice as much memory for loaded programs as there is physical RAM. (And that was about the maximum load it was reasonable to put on a Sparc Station 1 used for general purposes...) However, Linux has *never* used that algorithm for swapping/paging of memory. Linux doesn't allocate memory at all when brk() or sbrk() are called! It waits until that memory is actually *used*. Hence, no matter how much RAM or swap a system has, you can call malloc() (which calls sbrk() to get more memory) and get 2.1Gb of memory! (One way of looking at this, is that it is faster. Another way is that BSD is safer.) Each individual page of that memory will only be actually allocated if it is *used*. And the way Linux does that allocates either RAM or swap. Hence while the total virtual memory for BSD is the size of swap, for Linux it is the sum of RAM and swap. The immediately obvious result of that difference is that a BSD system with swap space twice the size of RAM has virtual memory twice the size of RAM, but a Linux system with swap space twice the size of RAM has virtual memory *three* times the size of RAM. OK, how do we calculate swap space for Linux? ============================================= (See "How much swap space should I use?" above) With the old BSD swap algorithm, swap space would be the amount of virtual memory desired, and that is actually unrelated to RAM size other than it must be greater than RAM. However, in a practical sense with typical systems and typical use patterns, it made little sense to have more programs swapped out than were running due to the slowness involved. And of course that "rule of thumb" was developed when disk space was relatively more expensive than it is now. (But RAM was more expensive too, and I've heard of Sun workstations that had 16MB of RAM and 300MB of swapping which were running modeling programs that took a month to finish. Today, I can do that on my home machine in what, an hour?) What happens if that rule is applied to Linux? ============================================== On todays systems a home workstation might have many GB of RAM and probably *never* go into swapping! Why would I want to allocate disk space for virtual memory that may never be used? The reason I bought gigabytes of RAM is because I've never ever used that much VM that I know of! On the other hand there are servers which might have hundreds of processes that are always running, but are inactive 99% of the time. Why put in 32GB of RAM, when only 4GB of those programs are actively being used? In that case it makes sense to use 4-8GB of RAM and have swap space available. Also, there are new tools to use RAM more efficiently, like RAM compression, with zRAM. How do I upgrade from a previous version of Slackware? Instructions, caveats, and notes for performing an upgrade between Slackware versions are provided in the file UPGRADE.TXT on the first disk of the Slackware distribution. This file should be your first source of information, followed closely by CHANGES_AND_HINTS.TXT on the same disk, but also check on the same disk for other .TXT files that may be relevant to your situation. Since Slackware 12.2, it is possible to do system upgrades using slackpkg script. A tutorial of this process is available at http://docs.slackware.com/howtos:slackware_admin:systemupgrade. Upgrades between major version releases, however, usually represent significant changes, and may be better to install the new version from scratch, on the same disk as the previous version you have been using. This may mean needing to take backups of certain directories, such as /home, /usr/local, /var/spool/mail, /var/spool/cron/crontabs, and others, and reloading them after the new OS has been installed. If it does, plan for the same situation to occur the next time you want/need to upgrade Slackware on your system, and adjust your partition layout accordingly. One suggestion would be to keep /home and /usr/local, and perhaps /var/spool/mail if you have many users or lots of email stored there, on separate partitions that are not involved when you perform the OS installation, but instead added to /etc/fstab later. You would still need to backup then restore files from /var/spool/cron/crontabs, (for example) and perhaps other directories. Whichever method you use, your best bet would be to have a well thought out plan before you start, and a complete backup of all files you consider important on your system, taken right at the moment before you start the upgrade. Even if you're keeping important files on separate disk partitions that won't be overwritten during the installation, having a backup will ensure that if you need to, you'll be able to recover from any mistakes. More importantly, not having a backup ensures that you'll wish you had taken one before starting. Where can I find packages built specifically for Slackware? If the package you're looking for is one that ships with Slackware, see the mirror nearest you from the list at http://www.slackware.com/getslack/ Software compiled and pre-packaged for Slackware, but not _by_ Slackware can often be found at http://pkgs.org/ Remember, you need to do your own checks to make sure you have the right libraries installed for packages you install, whether you obtained them from a Slackware mirror or from the Linux Packages site. installpkg won't do that for you. There are also build-script repositories where you can find scripts that will help you build Slackware-compatible packages on your own system for software that isn't included with Slackware. These enable you to audit the build process used to create the package and to avoid broken packages built on other systems with different libraries installed. They're also an easy way to install software that may not be available in pre-packaged form on your Slackware system. For a popular example, see the SlackBuilds.org project at http://slackbuilds.org/. There's also a really convenient front-end for the SlackBuilds.Org collection of scripts available at http://sbopkg.org/. Can I use RPMs with Slackware? Yes. There are a number of options for doing this. Slackware ships an rpm package with recent versions of the distribution, and also includes tools, "rpm2tgz" and "rpm2txz", to convert RPM packages into a format that can be installed with Slackware's own installpkg tool. There is also a package called Alien (https://alien-pkg-convert.sourceforge.io/) which will convert files between many package formats. It's worth considering, however, that you will have more control over what goes onto your system, how it's compiled, and where it's installed if you download and compile software from the original source code, or install it (if available) from the main Slackware archives. [FIX ME: is this still necessary, with Slackware's rpm package?] [--------------------------------------------------------------] If you *insist* on using RPMs with rpm, and are having troubles, here are some tips: Create the directory /var/lib/rpm Initialize RPM with rpm --initdb Install packages with the --nodeps switch [--------------------------------------------------------------] Is there a package manager for Slackware? Slackware's pkgtools package provides the tools for package management. The following is quoted from its description file: Included are the command line utilities "installpkg", "removepkg", "makepkg", "explodepkg", and "upgradepkg" that install, remove, build, examine, and upgrade software packages. Also included are "pkgtool", a menu based program for installing packages, removing packages, or viewing the packages that are installed on the system, documentation (man pages), and a few other system admin scripts. pkgtool is a front end to most of the other scripts, but those that are used most often are: installpkg: installs a Slackware package removepkg: removes an installed package upgradepkg: upgrades an installed package to a newer version Most of these scripts are in action when you first install your system, and are installed along with the rest of Slackware's packages. They are very easy to use: to install a Slackware package called "package.tgz", type "installpkg package.tgz". To remove it, type "removepkg package". Much more documentation is available in the manual pages for these scripts. There are also third-party package-management tools for Slackware, such as slackpkg, slapt-get, swaret, and others. Used carefully, any of these have been very helpful to some, but others have found that as much as they can help, they also can damage a Slackware installation if the user is not careful about certain details. As with most software, careful study of the included documentation will be required to get the most out of any of these package management tools. How do I uninstall software? If you installed the software as a standard Slackware package, you can use removepkg to remove the files in the package. Remember that removepkg doesn't do any dependency checking, so if you remove a package that your system depends on (such as glibc, but there are others) you will run into difficulties. If you installed the software from source, there are a few options. Sometimes there is an uninstall target, in which case you should issue a "make uninstall" command from within the package's source tree. If you haven't already installed software to help you manage software installations, any of the following might be worth your while to investigate. Look in Slackware's /extra packages on the installation CD for these or any other similar packages. CheckInstall: http://checkinstall.izto.org/ protopkg: ftp://ftp.slackware.com/pub/slackware/unsupported/packages/utils/ slacktrack: http://www.armedslack.org/projects/downloads/slacktrack-1.29_1-source.tar.gz Is there any updating tool in Slackware like Debian's apt-get or RedHat's up2date? Slackware doesn't rely an package updating tools, though some have been available for years. Most people download and update packages by hand or through a custom script, and doing things that way still works. (A search of the alt.os.linux.slackware archives on Google Groups will bring up a lot of scripts that you could utilize for your own uses). Newer Slackware versions (Slackware-12.2 and newer; or Slackware-9.1 to Slackware-12.1 in the "extras" package group) include slackpkg as the official package management tool, and it is helped by the usual pkgtools components (installpkg, upgradepkg, removepkg) and others. It's worth noting that patches and updates to Slackware are announced in the Changelog and/or the slackware-security mailing list, so it would be a good idea to keep an eye on both of these to find out about new updates. The slackware-security list can be found here: http://www.slackware.com/lists/ The changelog for the stable version of Slackware can be found here: http://www.slackware.com/changelog/stable.php?cpu=i386 and http://www.slackware.com/changelog/stable.php?cpu=x86_64 The changelog for the "-current" development version of Slackware can be found here: http://www.slackware.com/changelog/current.php?cpu=i386 and http://www.slackware.com/changelog/current.php?cpu=x86_64 Which package contains ? It's commonly considered the best way to find this information is through searching Slackware's MANIFEST.bz2 file. You can find this file on the Slackware CD in the slackware directory or on a Slackware mirror. (Note that in older distributions, the file is called MANIFEST.gz, and is found in the slakware directory). One way to search MANIFEST.bz2 is to type the following: less -p filename MANIFEST.bz2 (press n for next match found. Press q to exit. If you're not using Slackware to run this command, you may have to decompress the bz2 file with bunzip2 or "bzcat MANIFEST.bz2 |less".) Sometimes a file won't be listed in MANIFEST.bz2, (usually because it's created by a package's doinst.sh). In this case, see if it's installed on your system already, using the following command: grep -rl filename /var/log/packages Most of the time, if you are searching for a program, the following should produce more relevant results: grep -rl filename$ /var/log/packages Why doesn't my work in Slackware? It worked in ! In all distributions of Linux, hardware support is provided by the kernel or user-land software. If a hardware device doesn't work, then either a) the software that uses the device is misconfigured, b) hardware support for that device hasn't been built into your kernel (the driver might be experimental, so check for this if you need to build a new kernel), c) linux doesn't support your hardware at all, or d) the thing (or the connector) is broken. Examine these possibilities in the above order to diagnose the problem. If the device works with another distribution, items c) (probably) and d) (certainly) can immediately be ruled out. Various "Linux-on-CD" distributions can be useful for troubleshooting hardware problems. Most common hardware devices that have support in Linux are usually detected and configured by such distributions, and you might be able to learn how to make your Slackware Linux installation work with your hardware by reviewing relevant configurations from CD-based Linux distributions. There are various hardware-compatibility lists for the different components of a Linux system, (ALSA and X have their own hardware-compatibility lists, for example). There is a general (though perhaps outdated) hardware-compatibility list in the Linux Documentation Project web site: http://www.tldp.org/HOWTO/Hardware-HOWTO/ Where can I get information about what's installed on my system? The directory /var/log contains the subdirectories packages, scripts, removed_packages, and removed_scripts. The *scripts dirs contain the doinst.sh scripts that were run on install/uninstall. The *packages dirs contain the package lists from installed and uninstalled packages. These last files contain the package name, size, location it was installed from, description, and file list. These are plain text files, so using basic tools like grep, awk, and less will get you the information you need. I installed the latest kernel from the Slackware distribution. Where are the kernel modules for that version? If you install a kernel from "extras" or "testing" on the Slackware distribution CD, you will need to manually install the matching kernel modules from the same directory. Installpkg will install the package containing the kernel modules if you take this route. PART III: Slackware Linux system administration: Slackware is installed. Now what? You might want to harden your system, setup hardware, etc... The following URLs provide useful tips for fine-tuning and administering a Slackware Linux system: [FIX ME: let's put more links to tips & tricks pages here. the URL at www.therockgarden.ca isn't even Linux-specific, and could be replaced with one more specific to Slackware systems. ] [--------------------------------------------------------------] http://members.cox.net/laitcg/slack.htm http://www.therockgarden.ca/security/securing_unix.html http://www.cochiselinux.org/files/system-hardening-10.2.txt [--------------------------------------------------------------] How do I find out what updates are available? There is the slackware-security mailing list, http://www.slackware.com/lists/ The slackware-security mailing list also has a corresponding web page: http://www.slackware.com/security/ The changelog for the stable version of Slackware can be found here: http://www.slackware.com/changelog/stable.php?cpu=i386 Users testing Slackware-current can monitor the ChangeLog file at http://www.slackware.com/changelog/current.php?cpu=i386 Users of the S/390 port will likely want to monitor its changelog instead, at http://www.slackware.com/changelog/current.php?cpu=s390 What's the difference between Slackware startup scripts and System V startup scripts? Slackware's startup sequence is pretty clearly described at the following URLs: http://www-128.ibm.com/developerworks/linux/library/l-slack.html http://openskills.info/infobox.php?IDbox=1042 http://www.bilbos-stekkie.com/slack_init/en/index.html What follows may also help: Unlike most other Linux distributions, which use System-V style init scripts, Slackware's boot-time startup scripts are largely (though not entirely) based on the BSD-style rc.* scripts. At the same time, Slackware uses a System-V style init program, with numbered run-levels. It's an unusual combination, but it works well, and once understood, is very easy to manage. Both SysV scripts and BSD scripts are human-readable, in that they are shell scripts, not compiled programs. The main difference is in how the scripts are designed. System-V style scripts tend to be designed to start or stop a single service or system function per script, and take arguments like start, stop, restart, and others, depending on the service it's controlling. So you could say something like /etc/init.d/bind start to start BIND, and /etc/init.d/bind stop to stop BIND. SysV-style init scripts also tend to use symlinks in per-run-level directories to organize the boot sequence: in /etc/rc.d/rc.4/, there might be various symlinks to actual scripts in another directory. The symlinks are named like S10network, S25xdm, and so on, where the S is used to mean the service is started when the system enters that run level, and K means it is stopped ("killed"). The sorting order of the link names define the order that the scripts run. The example scripts mentioned here would have "S10network" run before "S25xdm". BSD-style scripts tend to place the startup commands for multiple related system functions and services into relatively few scripts. This makes it easy to setup the network interfaces and start network daemons, for example, from one or two scripts. In the BSD-style, processes are killed (with SIGKILL, which usually causes a graceful shutdown) when the system shuts down, without explicitly calling a series of scripts in any particular order to shut services down. Since Slackware uses a SystemV-like init program, however, a system shutdown is synonymous with switching to run-level 0 (or run-level 6 for a reboot, but from the point of view of the shutdown stage of a reboot, these are identical, and indeed Slackware's "rc.0" script is a symbolic link to "rc.6"), and there is an init script (/etc/rc.d/rc.0 for a shutdown, and /etc/rc.d/rc.6 for a reboot, but note that these are the exact same script in a stock Slackware installation) that runs when that run level is entered. This script takes care of gracefully shutting down any services that were started when the system booted. If a system administrator needs to change the order of the startup or shutdown sequence, on a BSD style system, the appropriate sections of a small number of scripts need to be modified, moved, added to, etc. On a SystemV-like system (including most Linux distributions), this change is done simply by renaming symbolic links in per-run-level directories, pointing to the init scripts. Disabling a service can easily be done by removing execute permissions on the appropriate init script, or renaming it so that the symbolic links in the per-run-level directories no longer point to it. Slackware's approach here is much closer to the BSD style, though in recent years, several individual per-service scripts have crept in, making it easier to disable the starting of a service by removing execute permission from the appropriate script, or renaming it, but changing the startup or shutdown sequence (which isn't likely to be done in most installations) still involves modifying the larger rc.* scripts. Where's /etc/X11/XF86Config!? As of Slackware 10, /etc/X11/XF86Config has been replaced with /etc/X11/xorg.conf. This is because Slackware 10 and later uses the X11 (X.org) system as opposed to XFree86. The syntax and layout for both files is virtually identical. How come I get "--MARK--" appearing in my syslogs every few minutes? How can I turn that off? It appears every 20 minutes (by default) as a way for the system to confirm that syslogd is running. This has some value on systems used as servers, but you may wish to turn it off (or change the time interval) on a desktop workstation. To do so, use the -m option to syslogd in /etc/rc.d/rc.syslog: -m 0 will turn off the message entirely, and -m 60 will change the interval to 60 minutes, for example. Check out man syslogd for more details. How come I can play sound as root, but not as a normal user? As of Slackware 9.2, sound devices belong to the audio group. Users are automagically part of this group (through /etc/login.defs), so all users should (hopefully) have access to the sound device by default. On older Slackware versions, simply adding users to the same group that owns the sound device(s) resolves this problem. See also the above answer to "Why am I unable to get sound after setting up a graphical login program". Graphical display managers do not apply settings in /etc/login.defs (they may have their own settings). Again, the simplest fix is to add users with physical access to the system to the same group that owns audio devices (group "audio" on a stock modern Slackware system). How can I start up my computer with an X login, rather than a console login? As with most things Linux, there's more than one way to accomplish this, and either method may seem more appropriate for some systems than for others. The most common method is to edit /etc/inittab. This file configures init which runs programs that use the virtual terminals (among other things). Change the line that says id:3:initdefault: to id:4:initdefault: Then cause init to re-read the file by signalling it with either of the following commands (run as root): kill -HUP 1 telinit -q It's also possible to use LILO to boot straight to an X login. (i.e Boot to runlevel 4). Create a stanza in /etc/lilo.conf that uses the "append" command to tell the system to boot into runlevel 4 (which Slackware uses for launching X at boot-time): image = /boot/vmlinuz root = /dev/hda1 label = Linux-GUI append = "4" read-only You can also tell LILO which runlevel to use at boot time. Assuming you have lilo configured to prompt and wait for a boot command, you can type