# The Sorcery package management tools

Sorcery is a set of scripts designed to manage all aspects of the sorcery spells. With it, you can install or delete packages with the sorcery GUI, which are compiled and installed on the fly.

## What is Sorcery?

Our package management system is written in bash, so it is easy to modify for your personal wishes. All package information is stored in text files in subdirectories (i.e. kde/kdelibs/DETAILS contains information about where to download "kdelibs" and some other information). Based on this information, along with customizable options (like what processor you are running, compilation options like high optimizations, binary stripping of debuggin symbols, compile for smaller size, etc.) are stored in text files as well and accessible through a curses (text) based menu system, with a few GUI's in beta form (one for GTK+2, the other for QT). The software downloads the source code for the package you wish to install from the author's site (we also provide mirrors, either listed on the author's site or provided by ibiblio and other users of SMGL, one of which is selected via netselect for the best speed to your location) and compiled with the optimizations you chose. This makes installation a little slower as opposed to binaries, since all those have to do is copy the already compiled binaries from their respective package into their install locations. With source-based, every single application is optimized for your system; we've seen up to 30% speed increase.

One of our best features is our self-repairing functionality and security. Every package has checksum information or GPG signature on the unpacked tarball to verify that you did, in fact, download a valid tarball from the author and that it hasn't been hacked into/changed. Every install is also tracked via installwatch or castfs, so that you may see what a package installs on your machine and where it went by looking at the install log. We also keep a gzipped/bzipped/xzipped tarball of all installed applications (this can be turned off, to save space). The latter comes in handy when you ask our package management system to check the system and fix anything that is broken, this includes missing libraries, symlinks, etc. If a package is found to be broken, our software will simply uncompress the saved tarball and reinstall the application as it was originally (so no recompile is needed), however, if the tarball is missing, then it will recompile the application for you.

There are other features, such as administering software on a cluster of machines via SSH from one machine, rebuilding every application on your system with one command, and others.

## Other Information

A full list of Sorcery commands.

API generated by bashdoc.