SLIM is a simple package manager that has some fairly big features. It is
designed entirely around the concept of automating the process of downloading,
compiling and installing source packages. Some of its features include:
- Install, update and delete packages
- Dependency calculation (both required and optional)
- Automatic download, patching and building of source packages
- Upgradeability (update packages and SLIM itself)
Some of the goals for SLIM are:
- Put the user in full control - One of the main goals for doing
this project was to allow the user to be in control. In Gentoo, for
example, installing VIM requires over 20 packages which I have never
used before. Granted, masks can be set to avoid certain packages, but
it is too difficult to figure which masks need to be set, etc. In SLIM,
the user is asked about other packages a package might use and
the user can decide how much or little to include at any time.
- Allow full user management - One thing I want to achieve is the
ability to use SLIM to keep a system up-to-date to avoid having to
rebuild an entire system every time. SLIM currently does this to a
certain extent. For example, practically any package can be updated
at any time (with the exception of Glibc, GCC and a few others).
- Simple to use - Using some tools (like RPM) is pretty darn hard
sometimes (figuring out the right option, or the right keyword, etc.)
SLIM is easy to use. Type slim and it will give you all the
options you can use. To install a package, you enter slim install
firefox, for example, and that's it. SLIM's output is also pretty
clean, showing you the major portions of the build process as they
happen without the ugly mess spewed by make and gcc. (All output is
saved to disk in case you need it too.)
SLIM is written in PHP 5. PHP 4 will not work.
The CLI version of PHP
must be available as /usr/bin/php. The Live CD
PHP 5 installed and can (and should) be used to build a new system. The SLIM
toolchain phase and base system include PHP 5 to ensure SLIM still works. You
also need something to download packages, such as wget (the default).
I first started using Linux From
(LFS) in 2001. I really liked the idea of having full control of
a Linux system. However, the goals of LFS were educational and not to help in
automation. Early into my LFS experience I started writing scripts that would
build packages automatically. Later on these scripts were too hard to maintain
and keep up to date. That's where SLIM came in.
I started on SLIM around 2003 but didn't really have much until late 2004. At
that time, the Do-It-Yourself Linux
project started which helped with the automation and the correctness of the
build. The SLIM system is based on DIY-Linux and LFS with some special
home-grown spices to make it a little bit unique.
Today I use SLIM in all of my servers at work and all my Linux systems at home,
ranging from KVM-based virtual servers, web servers, database servers, desktops,
laptops, MythTV boxes, etc.