Toast is yummy yummy breakfast, often made by toasting bread (hence the name) and spreading a dab of butter on it.
Oh, you meant this program? Well, read on.
From http://toastball.net/toast, we find that toast is “a simple, self-contained tool for downloading, building, installing, cleanly uninstalling, and managing software packages”. All these functions are done fairly transparently, and toast can figure out how to handle a package with no specification from the user (most of the time).
The maintainer of this repository uses it for two purposes:
-
Manage user-level packages without having to resort to the system’s package manager
-
Manage system-level packages not provided by the system’s package manager
In my experience, these are the two cases toast is designed for, and really shines.
Toast greatly simplifies the following steps that are often accompanied with installing packages from source:
-
Configuring the compilation system (autoconf,
./configure
, etc.) -
Compilation (usually just
make
) -
Installation
-
Easy enabling and disabling of packages (called ‘arm’ and ‘disarm’ in toast)
-
Handling multiple versions of packages
-
Uninstalling packages cleanly
-
Updating relevant environment variables to allow for transparent access of programs, manpages, libraries, etc.
In the rare circumstance where toast does not know how to handle a package, it offers persistent options that are fine-grained enough to tell toast how to handle the package within its framework.
As can be seen from http://toastball.net/toast, toast has been diligently maintained by Jacques Frechet since 2003, with the last update in mid-2012. I (Ram Raghunathan, the maintainer of this gitrepo) do not have any connection to Mr. Frechet, but forked toast to add in my enhancements and updates. To keep the commit history, I imported Mr. Frechet’s work as faithfully as I could into this gitrepo.
First, make sure you have these dependencies installed:
-
Perl 5.10 or newer
I realize the irony of having dependencies for a package manager, but you will need to install these on your own for now, however you wish. A bootstrapper will be included in a future version.
Once these dependencies have been satisfied, install toast by performing one of the three actions below:
-
Clone this repository and run
toast/toast arm toast
. -
Clone this repository and run
./configure --prefix=${HOME}/.toast/armed && make install
like you would most other programs you install from source. -
Run
curl 'https://github.com/llamacorp/toast/raw/master/toast' | perl - arm toast
. You can replace ‘curl’ with the equivalent ‘wget’ or ‘GET’ command to output the page to STDOUT.
All three methods achieve the same result of installing toast into
it’s directory structure under ${HOME}/.toast
. Toast can also be
installed as root to manage system-level packages. Please see the
manpage for more information about installation and the directory
structure.
Once you have installed toast, start off by either running toast
with no arguments, or looking at the manpage with man toast
,
however you roll. Remember that until you source the result of toast
env
, toast will not be in your $PATH
, so you will have to enter the
path to the executable yourself. Some of the more useful commands at
the beginning are arm
, disarm
, add
, remove
, and env
.
A question I too long wondered. As the original author (Jacques Frechet) explains in a fairly long blogpost here, he has a tradition of naming his computers ‘toastball’ and he created the program ‘toast’ to install software on them. I thought about changing the name, but honestly, toast is a short, sweet name that is unique enough to remember, and this is largely Mr. Frechet’s work after all!
LlamaCorp is a fictitious corporation solely owned and managed by
Ram Raghunathan. I created this github
organization to have better control over access rights, such as for
the token used in automatically reporting toast bugs upon running
toast bug
.
Sadly, I don’t know of an effective monkey repellent. That being said,
if you have a question or issue with toast,
open an issue here on
github! Alternatively, email me at toastbug@llama.is with the subject
prefix [toast]
so that I know to see your message.
Awesome! I like nothing more than to see that my work, (and Mr. Frechet’s, of course!) has helped you. If you would like to contribute back, please open up a pull request here on github and I’ll see what I can do!
Just a note: while toast is remarkable in its adaptability, it is quite the magician. After all, the program is over 8000 lines of code, written over more than a decade. Be careful where you tread, for here be dragons.