Sorcerer FAQ

This document is a work in progress,. It is taken from my Sorcerer notebook along with the input and help of the rest of the Sorcerer Tome team and the users. Like most FAQs it represents the distillation of helpful hints to the usual questions asked by users.

PART ONE - Ideas and structure

  1. Sorcerer, Grimoires, Casts, Augur, Leach; I've read the docs but, uh, What's going on here ?
  2. Is this Grimoire magic?
  3. Wizards, Sorcerers, Gurus?
  4. How can i find more information on my own?
  5. How come it is written in bash?
  6. Nah, seriously, why bash?
  7. A system adminstrator's distribution. Please explain.
  8. How does Sorcerer offer some of these choices?
  9. Why use a source based distribution?
  10. Why use Sorcerer?
  11. Why mount devfs on /devices instead of /dev?

  12. PART TWO - Beginners hints and issues

  13. How do I unzip this .iso file in Windows(tm)?
  14. How do I have my a module load at startup?
  15. I use DHCP, how do I get that running?
  16. How do I add/remove things from my kernel?
  17. My lilo is funky, could I look at yours and get a basic explanation?
  18. What is the default root password ?
  19. How do I alter the default time for answering questions, it seems a little long.?
  20. How can I have Sorcerer stop asking to view log reports?
  21. What do I do to update a program?
  22. What is the quick way to install a package?
  23. Where is the menu driven package management utility?
  24. How do I make programs in xterm and eterm display color?

  25. PART THREE - Specific hints and issues

  26. My new Sorcerer box won't boot.
  27. I am having problems booting into a working kernel.
  28. My modules won't work after a kernel upgrade.
  29. My timezone isn't being used by the system.
  30. My hardware (bios) click is set to local time, how do I get Sorcerer to adjust accordingly ?
  31. I need to send mail RIGHT NOW.
  32. What is the recommended configuration for Sorcerer ?
  33. What is the best procedure to use after getting Sorcerer to boot off of my hard-drive?
  34. What programs can I use to config my monitor, keyboard, and mouse for use in X ?
  35. How do I get kdm to be my login manager in X?
  36. I have an xconsole appearing everytime I log into KDE.
  37. I want to add on some additional compile time packages into KDE that were missing during the 'casting' of KDE.
  38. KDE and KDE programs do not displays .GIF graphic files.
  39. How can I use Konqueror as 'root' while another user?
  40. How do I download a program without loading it?
  41. I do not like a recent upgrade to a program. Can I go back to a previous version?
  42. I removed a program with dispel and would like to get it back again with a full rebuild (compile).
  43. Can I use the augur program to look at BUILD, DEPENDS, or DETAILS files that are part of a spell?
  44. O.K., so I tried to make my first spell, but sorcery doesn't seem to recognize it properly, even though I KNOW I placed it within the grimoire.
  45. How do I do a simple download and update of new a new sorcery and not have sorcery do an automatic update of those spells I don't have on "hold"?
  46. Are held programs EVER rebuilt automatically?
  47. I am confused about the differences between excluded and protected.
  48. What is this fuzzy download feature all about?
  49. Can I start casting a package while a cast for a program it depends on is casting?
  50. Okay, so now sorcery appears hung, what can i do?
  51. I have no audio as a user.
  52. Mozilla will not build.
  53. I hate the NVIDIA logo that appears with the new drivers. Can I remove it?
  54. I am having trouble compiling glibc.
  55. Why should I consider an encoded loopback filesystem?
  56. How do I make an encoded loopback filesystem on Sorcerer?
  57. How do I get the wheel working on my mouse in X for scrolling?
  58. How do I control my sound output levels?
  59. What about this branching stuff I keep hearing about?


  1. Sorcerer, Grimoires, Casts, Augur, Leach; I've read the docs but, uh, What's going on here ?
    Try this;

    Take a pen(cil) and paper and draw a five pointed star with lines extending from each point thru the center to each of it's two opposite points. Place one point at the top. Make sure you can see an upside down pentagram in the center with five triangles attached. It should look exactly like the star inside the circle on the book tux is holding on the home page of Sorcerer. Make sure you have made it large enough to write in information next to each point and in the center. Label the top point 'Grimoire', the points at the bottom; 'Augur' on the left, and 'Cast' on the right. The left-most point is labeled 'Leach' and the right-most point is labeled 'Dispel'. In the center on the star write 'Sorcery'. Now you have a visual aid to learning the relationships of the components that make up the Sorcery Packaging System. In the lore of witch-craft, spells were recorded in books called Grimoire. Sorcerer uses information in one or more ASCII files to define how a source program is configured, compiled, tracked, retrieved, and several other details. These files for a program are grouped together and called a "spell". Similar spells are grouped by function (like web or utils), and together all the "spells" comprise the 'Grimoire'. You can write 'book of spells' next to Grimoire on the top star point. Notice that this point connects to both the 'Augur' and 'Cast' points. That's because we can both "cast" and "augur" at a spell. Want to know what is the installed version of the Mozilla spell?, then type "augur maintainer mozilla"! Want to add Mozilla to the programs on your computer?, then "cast" the Mozilla spell by typing "cast mozilla". Notice that the other line extending from the 'cast's' point on the star extends to the 'Leach' point. Leach is the mechanism used to download sources and patches to upgrade existing sources to their current versions. The other line from from 'leech' extends to the 'dispel' point. Dispel takes the information leech stores to 'dispel' or remove a program (spell) from the file system. Together all five points are the 'sorcery' that a 'sorcerer', you, use to build and maintain your computer. 'Sorcery' is also the name of the menu driven program that uses these components and combines them, hence it's place in the center of the diagram.

    FLASH: Sorcerer has been recently updated to move the program downloading to a separate bash script called leech. At this time merely changing the above drawing to say cast-leech instead of cast will convey the full intent


  2. Is this Grimoire magic?
    A properly configured Unix/Linux box runs like magic. If it were truly magic then the package management software would be a catalog of spells. Spells are kept in spell books. Grimoires are spell books. And that is why the software catalog is called the grimoire.

  3. Wizards, Sorcerers, Gurus?
    Wizards Wizards build their own distributions. They know tremendous lore and use their skill to make the magic of a smooth running box.
    Sorcerers Sorcerers possess nearly as much lore as a Wizard does. Professionally sorcerers are considered Senior Sys-Admins. They can download, build, and install packages from source.
    Gurus They know a lot, definitely a competent Sys-Admin, but they rarely deviate from the confines of the binary distribution that they are using.

  4. How can i find more information on my own?
    Some time spent viewing and understanding what is inside of the sorcery tarball will help you understand the system with amazing detail, relatively quickly, as it is written entirely as bash scripts.

  5. How come it is written in bash?
    It amazes some people, but yes, you can do an entire modern tracking package system with all the bells and whistles in bash. Since bash is the most uniformly understood tool available that System Administrators (SA's) know, it is also the most fitting for a distribution and packaging system devoted to SA's.

  6. Nah, seriously, why bash?
    I wrote sorcery in Bourne Again Shell scripts for the following reasons:
    1. Almost all software compilation and installation takes places at a sh prompt.
    2. BASH script is easy to read, modify, debug.
    3. Most Senior Unix/Linux Sys-Admin knows BASH, fewer know C, C++, and PERL

  7. A system adminstrator's distribution. Please explain.
    Well Sorcerer is devoted to restoring the choice back to the SA. Choice in programs installed, where and how they are installed, which optimizations to use, how often they are upgraded, including optional dependencies, and the ability to make custom distros on the fly, along with a commitment to keep choice the first concern of the developer(s) of Sorcerer.

  8. How does Sorcerer offer some of these choices?
    Well, you can maintain custom changes to spells, and even entirely private spells. Changes within the grimoire and even special Grimoires are possible. And these 'special' additions and changes can also take advantage of upgrades and improvements made to the "public" grimoire that Sorcerer maintains.

  9. Why use a source based distribution?
    While compiling and installing programs takes longer than installing pre-compiled binaries there are advantages to a building a box from sources.

  10. Why use Sorcerer?

    8 Reasons to use Sorcerer

    1. Do you prefer to use the latest stable release of software when the software author declares it stable? Or would you prefer to wait months for your operating system vendor to add it to their stable distribution list, thereby making in months old and obsolete?

      With Sorcerer, there is no wait. See new versions of supported software announced on
      http://freshmeat.net today, and by tomorrow it is available in Sorcerer.

    2. The optional autofix feature can make certain when a library is updated that all software that depends on that library is updated if it is necessary.

    3. The optional mail reports feature enables/disables the mailing of sorcery generated reports to the person/s responsbile for the box.

    4. Does your distribution tell you the address of the website for the softare it installs? With sorcery it's as easy as typing
      augur homepage xfree86 or
      augur homepage mozilla

  11. Why mount devfs on /devices instead of /dev?
    The devfs file system is too useful to discard, yet too problematic to mount on top of /dev even with devfsd running. Devfs does not support autoloading modules in the same fashion that /dev does. /dev autoloading modules cease to automatically load. Additionally, one can not preserve the permissions and ownership for devices that are not loaded into the kernel, either directly compiled in or loaded as modules. A program can not probe a device, on the devfs file system, which is not there and have it's module load. Consequently, as the devfs is a useful and intuitive filesystem for devices it should be kept and used in conjunction with /dev instead of as a replacement. That is why the devfs filesystem is mounted on /devices in Sorcerer.


  12. How do I unzip this .iso file in Windows(tm)?
    "Power Archiver" is reported to work well. Another program also reported to work well is bzip2.zip and be gotten
    here.

  13. How do I have my a module load at startup?
    Open '/etc/modules' in a text editor. I prefer nano. If a '#' is at the first character of the line, then that line will be a comment. It wont be executed. To include a module simply type in its name. For example, if I wanted to include the vfat module so I could read my win95 floppy's, I would add:
            #Floppy Modules
            fat
            vfat
    You might have noticed that I included fat, as well as vfat. This is because that vfat requires that fat be ran as well. If you are unsure if you need another module to run the one that you want, simple run the command 'lsmod'. This lists all the modules currently running. If you have fat and vfat allready running, notice that at the end of the line of fat, that is has '[vfat]'. That means that vfat rely's upon fat. That is how you know what you need. You can use the command 'insmod' to insert a module into a running kernel. If you insmod vfat, it should automatically load fat as well. That is a keen way to figure out what you need, and add it to you modules file.

  14. I use DHCP, how do I get that running?
    Open your '/etc/init.d/networking.sh' file in a text editor. Search for the line: start) echo "$1ing networking." Put a '#' infront of all lines except for the echo and ;; line. Them remove the '#' from the 'dhcpcd $DEVICE'. Save and exit from the editor. Then type the command 'networking.sh restart'. That should connect you to the outer world. Congrats, you can now ping everyone to death if you want to.

  15. How do I add/remove things from my kernel?
    CD to the directory '/usr/src/linux'. Now run the command 'make menuconfig'. This will also allow you to backup your kernel settings or load kernel settings.

  16. My lilo is funky, could I look at yours and get a basic explanation?
    tds has given me his lilo.conf file, and has placed some good comments in it. As usual '#' means that line is commented out, and thus wont be executed. His file can be read
    here

  17. What is the default root password ?
    There is none, just hit the return key. Make sure you enter a new one using the passwd command.

  18. How do I alter the default time for answering questions, it seems a little long.?
    Type the command 'sorcery' . Press 'O' or goto the 'Option Menu'. Goto 'D' or 'Prompt Delay'. It should then ask for a number. That number will be the amount of seconds before it automatically assumes the default answer.

  19. How can I have Sorcerer stop asking to view log reports?
    Type the command 'sorcery' . Press 'O' or goto the 'Option Menu'. Goto 'F' or 'Feature Menu'. Now select 'V' or 'VIEW_REPORTS'. Press 'Space Bar' here, to remove that 'X' by it.

  20. What do I do to update a program?
    To update run the command 'augur update' as root.

  21. What is the quick way to install a package?
    cast cdrtools installs the tools for burning CDRs and CDRWs. cast bind installs Berkeley Internet Name Domain.
    etc.

  22. Where is the menu driven package management utility?
    sorcery invokes the menu driven package management utility.

  23. How do I make programs in xterm and eterm display color?
    To change from monochrome to color many find that echo "export TERM=xterm-color" >> ~/.bash_profile enables color.

  24. My new Sorcerer box won't boot.
    You can mount your partition(s) using the Install/Rescue CD. First boot-up with the CD and then enter the following at the prompt;
            mkdir /mnt/root
            mount /dev/hda1 /mnt/root   Or whatever your / partition is.
            chroot /mnt/root

    Next use your favorite editor to edit /etc/lilo.conf as follows;
            vi /etc/lilo.conf

    If you made a separate /boot partition:
            mkdir /mnt/boot
            mount /dev/hda0 /mnt/boot   Or whatever your / partition is.

    Finally:
            /sbin/lilo

  25. I am having problems booting into a working kernel.
    During kernel compilation select "y" to "Config_Experimental" in the file systems area. Then you will the see the devfs item.

  26. My modules won't work after a kernel upgrade.
    Sometimes you need to do the following;
            rm -rf /lib/modules/2.4.<whatever.the.number.you.used.last>
            and then go ahead and cast linux again.

  27. My timezone isn't being used by the system.
    Make sure your time zone is properly linked as follow;
            ln -s /etc/localtime /usr/share/timezone/<your.area>/<your.time.zone>

  28. My hardware (bios) click is set to local time, how do I get Sorcerer to adjust accordingly ?
    First see the answer to the above question, then add the following to the startup scripts, /etc/init.d/bootmisc.sh is suggested;
            hwclock --hctosys

  29. I need to send mail RIGHT NOW.
    ln -s usr/sbin/exim /usr/lib/sendmail

  30. What is the recommended configuration for Sorcerer ?
    There is no BEST configuration for Sorcerer, even long time users agree on this. However we do recommend the following;
            Make the first couple or so cylinders of your hard drive an ext2 partition mounted as /boot
            Use the remainder for your / partition with whatever file system suits you (that is supported by Sorcerer).
            Most users use either reiserfs or ext3 and use a SWAPFILE instead of a swap partition.
            Most important is that the swap + ram equal at least 1gB. Do not use less swap, as your ability to compile programs will be affected.

  31. What is the best procedure to use after getting Sorcerer to boot off of my hard-drive?
    A screen sorcery update-grimoire is first. Then run sorcery once to set and/or check your optimizations, then augur synch twice, next augur  update, then optionally sorcery rebuild, cast useful-profile, cast kde, and finally cast mozilla. You might also like to backup and then edit your /etc/inittab for the proper run level after running KDE as root for the first time to set users, and other options.

  32. What programs can I use to config my monitor, keyboard, and mouse for use in X ?
    You can use either xf86config or xf86cfg.

  33. How do I get kdm to be my login manager in X?
    Edit the "/etc/inittab" file and place # at the beginning of each of the other X login managers at the end of the file.

  34. I have an xconsole appearing everytime I log into KDE.
    KDM does not have its own config file in /etc. Instead comment out the xconsole statement in /etc/X11/xdm/xsetup-0.

  35. I want to add on some additional compile time packages into KDE that were missing during the 'casting' of KDE.
    qt must be first, followed by kdelibs and optionally: kdesupport, then kdebase next, then all of the rest in any order EXCEPT kdeaddons, which must be last.

  36. KDE and KDE programs do not displays .GIF graphic files.
    Unisys has written us and said that they will not allow us to essentially default on the qt supplied gif routines which has been the policy since before we received their written wishes. The qt supplied code (from Troll Tech) is available in the download and is also defaulted off, but many other distributions are enabling it by changing the /.configure from no-gif to qt-gif. We will continue to default off in our compile instructions (the kde spell(s)), as we have in the past, AND will be writing to qt to ask them to use the linungif in the next release so we may offer gif support without infringing on the Unisys's license.

  37. How can I use Konqueror as 'root' while another user?
    It can be very handy to use Konqueror as root from inside of a "regular" user's KDE environment. One way to do this is to bring up Konsole (a terminal window), su to log in as root, and then type konqueror. Before this will work it will be neccessary to add "export XAUTHORITY=$HOME/.Xauthority" to your ~/.bash_profile.

  38. How do I download a program without loading it?
    leech will download sources for spells to /var/spool/sorcery/ without compiling or installing them.

  39. I do not like a recent upgrade to a program. Can I go back to a previous version?
    Yes, dispel -d program version-number-desired will get you back to a fully loaded version if it was previously built and loaded into the system with the cast command. BTW, this is NOT recommended for use with the sorcery program(s) though.

  40. I removed a program with dispel and would like to get it back again with a full rebuild (compile).
    Typing cast program will get the last version compiled and loaded from /var/cache/sorcery/. Using the cast -c option will get the last download from /var/spool/sorcery and build it again.

  41. Can I use the augur program to look at BUILD, DEPENDS, or DETAILS files that are part of a spell?
    Yes, for instance to look at the DETAILS file for the ipsorcery program type the following: augur DETAILS ipsorcery .

  42. O.K., so I tried to make my first spell, but sorcery doesn't seem to recognize it properly, even though I KNOW I placed it within the grimoire.
    Make sure that the spell and the files it contains are all chown root.root AND are chmod 755.

  43. How do I do a simple download and update of new a new sorcery and not have sorcery do an automatic update of those spells I don't have on "hold"?
    cp /usr/sbin/cast /tmp    &&
            /tmp/cast sorcery

  44. Are held programs EVER rebuilt automatically?
    The purpose of holding a package is to see that it does not get rebuilt or otherwise replaced by a newer version. However it's files could become corrupted and this might be discovered during an "autofix" session by 'sorcery'. In this event sorcery will try to resurrect the packages' files by using the install cache for the version on hold. Failing a successful resurrection, sorcery will then do the equivalent of a cast -c (build) from the current Grimoire[s version.

  45. I am confused about the differences between excluded and protected.
    Excluded files and directories are not tracked in any way. Protected files and directories are tracked but will not be dispelled. The files that list such programs are located under /var/lib/sorcery.

  46. What is this fuzzy download feature all about?
    Fuzzy downloads refers to the ability of sorcery ("leech") to download either .tar.gz or .tar.bz2 or .tgz or .rpm's regardless of how the source file is listed in the DETAILS section of the spell.

  47. Can I start casting a package while a cast for a program it depends on is casting?
    While there are safeguards that prevent sorcery from simultaneously trying to install a package before all of it's dependencies are fulfilled, it is possible to break this feature. We strongly recommend that you do NOT do this. It is very unlikely you will achieve anything worthwhile for the time you will try to save.

  48. Okay, so now sorcery appears hung, what can i do?
    In another terminal, as root, look into the /var/lock/boost; then remove any $SPELL.reference in /tmp; and finally remove the lock.

  49. I have no audio as a user
    You have two choices here; either chmod /dev/dsp0 (or wherever /dev/dsp links to) appropriately, or add the user to the 'audio' group, which should be the group owner of /dev/dsp0.

  50. Mozilla will not build.
    Rebuild binutils and glibc using the cast -c command.

  51. I hate the NVIDIA logo that appears with the new drivers. Can I remove it?
    Place the following into the device section of /etc/X11/XF86Config; Option "NoLogo" "True".

  52. I am having trouble compiling glibc.
    Since nearly all compiled C programs depend on the glibc library attempting to install a new glibc on top of a previously installed glibc could fail. If you are not using /usr/local/lib for anything then start by cp -a /lib /usr/local. Make certain that /usr/local/lib is in /etc/ld.so.conf and then ldconfig. If the build fails and programs stop working then run ldconfig and try casting glibc again. In any case your box should not permanently break because the critical library files are in /usr/local/lib. Once you have glibc upgraded mv /usr/local/lib /tmp && ldconfig . If everything still appears to be working correctly, then you may rm -r /tmp/lib

  53. Why should I consider an encoded loopback filesystem?
    You have a BIOS/CMOS password, a LILO password, and a root password. But are your files secure? If someone stole your box, and mounted your hard drives in their box, they would gain instant access to all your data, with one exception. The files and filesystems that are encrypted would be safe.

    Do you have passwords, bank accounts, credit card numbers, financial information, personal information, company secrets, confidential, secret, or top-secret information? Perhaps you should strongly consider using strong encryption?

  54. How do I make an encoded loopback filesystem on Sorcerer?
    Fortunately, setting up and using encrypted file systems on Sorcerer is easy. At a root prompt:
            cast cryptoapi util-linux-crypto
    Now you have the kernel modules and tools to use encrypted file systems.

    You can make encrypted file systems out of devices like an entire drive, drive partition, or files. While encrypted drives or partitions can be almost any size, files must be less than 2 GB.
            dd if=/dev/urandom of="/root/. " bs=1M count=1024
    Now you have a 1 GB file nicely hidden in your /root named ". " so it is easily overlooked.

           modprobe cryptoloop
           modprobe cipher-aes
    Now you have loaded the crypto supported loop device kernel module, and the AES encryption method/cipher.

           losetup -e aes /dev/loop0 "/root/. "
           mkfs /dev/loop0
           mkdir /root/tmp
           mount /dev/loop0 /root/tmp
    losetup asked you for a keysize and password right? A larger keysize offers better protection at the cost of a slight decrease in performance/speed. You will use the same password each and everytime for this filesystem. Pick a password that is not dictionary crackable, yet easy to remember. Your file system is ready to be populated.

    When you are done with it, take it off line with the commands:
           umount /root/tmp
           losetup -d /dev/loop0


    Bring it back with the following commands:
           losetup -e aes /dev/loop0 "/root/. "
           mount /dev/loop0 /root/tmp

    For extra security memorize those simple commands, and do not put them in a script. Additionally, do not leave your password for your encrypted file system anywhere on disk. Once you have mastered a loopback encrypted filesystem for using a file, you may want to make a loopback encrypted file system for /home. Then you will have protected all your users' files in the event that your box or hard drives are stolen. What a thoughtful security minded SA you have become. Have fun.


  55. How do I get the wheel working on my mouse in X for scrolling?
    Try adding the following to .../XF86Config file (in the /etc/tree) in the mouse part of the "InputDevice" section:
           Option "ZAxisMapping" "4 5"
           Option "Buttons" "5"

  56. How do I control my sound output levels?
    Use aumix to set your volume levels. If during bootup you also see "no mixer config in /etc/asound.state", then as root type alsactl store .

  57. What about this branching stuff I keep hearing about?
    Since version numbers are not appended to spells names, we cannot directly manipulate them without first creating a custom spell OR doing a customized spell. However a branch may be already be available for that spell and may be selected for a spell by using typing $SPELL/$BRANCH. Normally branches are not specified however some spells have dev branches which is short for developmental. The default branch is referred to as default or none, which is usually what is cast if you do not specify a branch. There are also other branches for some of the spells in grimoire.

I welcome all input on how to make this Sorcerer Newbie's FAQ a better tool for the newcomer to Sorcerer. I can be reached at the address below and also have been known to frequent the irc.openproject.net on the #sorcerer channel.

Copyright 2001 and 2002 by Bob Finch - w9ya@amsat.org with assistance from nazadus and Kyle Sallee (These authors may retain their own rights.)