Saturday, September 20, 2008

Wajig

Wajig is a simplified front end to Debian's package management tools including dpkg and APT. Wajig provides the functionality of apt-get, dpkg, dpkg-deb, apt-cache, and other tools, by launching these tools as a subprocess. Wajig also provides extra functionality beyond that of the stock apt and dpkg tools, for example, the command wajig sizes provides a listing of all installed packages and the amount of disk space they require, from smallest to largest.

The key reason to use wajig is that it provides a consistent and intuitive interface to all packaging commands instead of the eclectic mix of incantations used by apt/dpkg. Under the surface wajig maps commands to the appropriate apt/dpkg commands. wajig nicely brings an orthogonal or intuitive quality to the user interface.


Think of wajig as the harmonizer of apt commands

Moving from RedHat to Debian requires learning a new package system. If you only live in the GUI world, the synaptic package will do most anything you will want. Some of us have to administer systems over a command line interface and that poses a small problem.

While the debian apt/dpkg system is better than rpm, the command line interface can be confusing and lacks an Orthogonal or intuitive quality to the user interface. Thankfully, there is a package, called wajig, that cures that problem and more. Wajig is well worth any Debian command line users time to learn - if you don't you will spend even more time in man pages. You will also love the fact that it logs what you do so you have a trail of bread crumbs to back track with if you install something that breaks things.

The following table assumes that you have your /etc/apt/sources files and an /etc/apt/preference file that has your system pinned to the appropriate release. There are ways to override the release level (stable/testing/unstable), but that is not covered here. It is also assumed that you have wajig installed (apt-get install wajig). Once installed you won't want to run apt-get again!

One slick trick - suppose you want to install all the packages on one system to a new system? Do:

wajig listinstalled > installed.txt

move the installed.txt file to the new machine and:

wajig fileinstall installed.txt

Command Function comments wajig command
Equivalent Debian
Apt-get
or dpkg command
Redhat RPM command
Install a package

In Debian there is no reason to manually download a package - apt-get takes care of that for you

wajig install jpilot

or to specify version number

wajig install jpilot=0.99.2

or to specify stable/testing/unstable

wajig install jpilot/testing

apt-get install jpilot rpm -hiv jpilot-0.99.2-1.i386.rpm
Get basic package information wajig detail jpilot
wajig what-is jpilot
what-is is oneline description
dpkg -s jpilot rpm -qi jpilot
List all files in a package wajig listfiles rsync dpkg -L rsync rpm -ql rsync
What package owns this file? wajig whichpkg /bin/rsync dpkg -S /bin/rsync rpm -qf /usr/bin/rsync
Remove a package wajig remove rsync
apt-get remove rsync rpm -e rsync
List all packages
wajig list-names dpkg -l
rpm -qa
Find package based on partial string
wajig status-search rsync dpkg -l 'rsync*'
grep rsync
update system wajig dailyupdate apt-get update
apt-get upgrade
up2date -uv
Start, stop restart daemons wajig start sshd

wajig stop sshd

wajig restart sshd


services sshd start

services sshd stop

services sshd restart

[edit] wajig

wajig has three listing of documentation for its commands:

  • wajig help gives a very short list
  • wajig list-commands Has a oneliner for each command
  • wagig doc Provides some indepth information

Below is a table with the current one liner list - I would advise doing a "wajig doc >wajig_docs" and printing it out to read at night as you will want to become familiar with it I've marked the most important commands in red - somewhat important in bold and you will find a favorite in what is left over.

If you are looking for a package name and only can think of a string try wajig listall |grep string. (there will soon be a fix so you can add an argument to listall).

If you want to know the package some command in your path is from, replace command with the command you are looking for -- try:

wajig whichpkg `which command'

Command Description
addcdrom Add a CD-ROM to the list of available sources of packages
auto-clean Remove superseded deb files from the download cache
auto-download Do an update followed by a download of all updated packages
available List versions of packages available for installation
bug Check reported bugs in package using the Debian Bug Tacker
build Retrieve/unpack sources and build .deb for the named packages
build-depend Retrieve packages required to build listed packages
changelog Retrieve latest changelog for the package
clean Remove all deb files from the download cache
commands List all the wajig commands and one line descriptions for each
daily-upgrade Perform an update then a dist-upgrade
dependents List of packages which depend on the specified package
describe One line description of packages (-v and -vv for more detail)
describe-new One line description of new packages
detail Provide a detailed description of package (describe -vv)
detail-new Provide a detailed description of new packages (describe -vv)
dist-upgrade Upgrade to new distribution (installed and new rqd packages)
docs Detailed help listing for wajig
download Download package files ready for an install
edit Edit any file that root can edit
edit-sources Edit the sources.list file which locates Debian archives
file-download Download packages listed in file ready for an install
file-install Install packages listed in a file
find-file Search for a file within installed packages
find-pkg Search for an unofficial Debian package at apt-get.org
fix-configure Perform dpkg --configure -a (to fix interrupted configure)
fix-install Perform apt-get -f install (to fix broken dependencies)
fix-missing Perform apt-get --fix-missing upgrade
force Install packages and ignore file overwrites and depends
help Print documentation (detail depends on --verbose)
hold Place listed packages on hold so they are not upgraded
init Initialize or reset the wajig archive files
install Install (or upgrade) one or more packages or .deb files
install-r Install package and associated recommended packages
install-rs Install package and recommended and suggested packages
install-s Install package and associated suggested packages
install/dist Install packages from specified distribution (i.e. install/stable)
integrity Check the integrity of installed packages (through checksums)
large List size of all large (>10MB) installed packages
last-update Identify when an update was last performed
list List the status and description of installed packages
list-all List a one line description of every known package
list-alts List the objects that can have alternatives configured
list-cache List the contents of the download cache
list-commands
or
commands
List all the wajig commands and one line descriptions for each
list-daemons List the daemons that wajig can start/stop/restart
list-files List the files that are supplied by the named package
list-installed List packages (with optional argument sub-string) installed
list-names List all known packages or those containing supplied string
list-orphans List libraries not required by any installed package
local-dist-upgrade Dist-upgrade using packages already downloaded.
local-upgrade Upgrade using packages already downloaded, but not any others
move Move packages in the download cache to a local Debian mirror
new List packages that became available since last update
news Obtain the latest news about the package
new-upgrades List packages newly available for upgrading
orphans List libraries not required by any installed package
package Generate a .deb file for an installed package
policy Gets package versions for different release versions testing/stable
purge Remove one or more packages and configuration files
purge-depend Purge package and those it depend on and not required by others
purge-orphans Purge orphaned libraries (not required by installed packages)
recommended Install package and associated recommended packages
reconfigure Reconfigure the named installed packages or run gkdebconf
reinstall Reinstall each of the named packages
reload Reload daemon configs, e.g., gdm, apache (see list-daemons)
remove Remove one or more packages (see also purge)
remove-depend Remove package and those it depend on and not required by others
remove-orphans Remove orphaned libraries (not required by installed packages)
repackage Generate a .deb file for an installed package
reset Initialise or reset the wajig archive files
restart Stop then start a daemon, e.g., gdm, apache (see list-daemons)
rpm2deb Convert a RedHat .rpm file to a Debian .deb file
rpminstall Install a RedHat .rpm package
rpmtodeb Convert a RedHat .rpm file to a Debian .deb file
search Search for packages containing listed words
show Provide a detailed description of package [same as detail]
showdistupgrade Trace the steps that a dist-upgrade would perform
showinstall Trace the steps that an install would perform
showremove Trace the steps that a remove would perform
showupgrade Trace the steps that an upgrade would perform
size Print out the size (in K) of all, or listed, installed packages
sizes Print out the size (in K) of all, or listed, installed packages
source Retrieve and unpack sources for the named packages
start Start a daemon, e.g., gdm, apache (see list-daemons)
status Show the version and available version of packages
status-match Show the version and available version of matching packages
status-search Show the version and available version of matching packages
stop Stop a daemon, e.g., gdm, apache (see list-daemons)
suggested Install package and associated suggested packages
toupgrade List packages with newer versions available for upgrading
unhold Remove listed packages from hold so they are again upgraded
unofficial Search for an unofficial Debian package at apt-get.org
update Update the list of downloadable packages
update-alts Update default alternative for things like x-window-manager
upgrade Upgrade all of the installed packages or just those listed
whatis A synonym for describe
whichpkg Find the package that supplies the given command or file
Command line options

No comments:

Blog Archive