I don't like RPM. Actually, RPM isn't that bad, its just that RedHat
(and most other people) seem to be incapable of writing RPMs
properly. Also, there are a few things I don't like about them, and
each new version of RPM seems to make it harder to configure the way
The .deb package format is much nicer (although maybe still not ideal)
and debian do seem to be quite good at writing .debs.
Unfortunately, dpkg is a pain in the metaphorical arse to use,
dselect is laughable, and apt, while an extremely nice idea, can
be nonintuitive at times.
So I decided to write my own package manager, and call it Opium, for
reasons that might become obvious if you think about it for long
Then I started getting really pissed off with RedHat's initscripts.
Debian's are even worse. Most other things are pretty similar to
one of those.
So I started working on my own init scripts. The aim is that they are
totally configurable, run in parallel where possible, and the user
doesn't have to care about order - it is figured out automagically
at run time.
Given a package manager and a set of initscripts, the only thing left to
identify the distribution is the set of packages. So, along came
- Opium Package Manager
- A powerful, configurable, easy to use, package manager. Comes with
the ability to create packages from RPMs, .debs and source
tarballs (assuming a set of minimum requirements). Does
dependancy checking, but is quite happy to be told not to.
Shouldn't break your config files. Requires a minimal amount of
work to modify existing packages. Happy to coexist with other
package managers. All source packages should compile as
nonroot, with no extra effort.
- Init scripts
- Allow you to set variables (eg IP address) dependant on runlevel.
Each service started as early as possible, in parallel with
others where appropriate. Order of scripts figured out at run
time based on "Requires" and "Provides" rather than
numerically. Single file for each runlevel to make editing
- Interactive startup
- Can specify an interactive startup which asks whether to start each
service rather than relying on any prebuilt configuration
files. Useful in emergencies.
- Up to date packages
- I'm using this distro, so I keep it fairly up to date. However,
since I'm using it, I know it works on at least one system.
- Minimal install
- Every package is optional, so a minimal install really is minimal.
It doesn't even have to have init (or even a kernel - but that
might be a tad useless).
- Can currently install, uninstall and recompile packages. Packages have
to be created by hand, which is nontrivial. Package file format
- Init scripts
- Designed, but none have yet been written.
- Waiting for the package format to be finalized
None yet - more will appear as things get to a vaguely working state.
Last modified: Sun Oct 1 12:03:46 BST 2000