Debian users - and it’s derivative such as Ubuntu and Linux Mint users - must be familiar with APT (Advanced Package Tool). It’s a tool for package management. APT comes with several tools. Apt-get, apt-cache, apt-mark, apt-key are the examples. It's also used as an engine for another front-end such as Aptitude or Synaptic in GUI mode.
There is another front-end who uses APT as an engine. Its name is Wajig. A single Wajig command can ‘coordinating’ apt commands to process query that you are asking and then give the result to the user. So as a User, you don’t have to confuse about what apt tool you need to process your query. Is it apt-get, apt-cache, apt-mark or other apt command? Just give your query to Wajig, and let Wajig process it for you. Wajig can also run in user mode. But if wajig need more higher privileged, wajig will ask you to enter root password. Let’s start digging about Wajig.
To check if your system have Wajig or not, just type wajig on your console / terminal. If you see the output like below, then wajig is installed in your system.
If not, you can start install wajig using apt-get command.
$ sudo apt-get install wajig
Wajig can be run in two ways. Using wajig prompt as shown above, or directly put wajig parameter after wajig command.
To install packages, just run :
$ wajig install package_name
wajig > install gnome-do
From the picture above, we see that wajig command will install a package with name gnome-do into your system.
To remove packages, use remove parameter.
$ wajig remove package_name
Now from the picture above wajig command will remove a package named banshee from your system.
The difference between removing and purge is that purge also delete the configuration files while removing is not. Here’s an example to completely remove banshee package.
If we look at previous commands, it looks similar with apt-get command. To install packages using apt-get, the command are similar with apt-get install package_name or apt-get remove package_name to remove packages.
Here’s the interesting part which also the power of wajig.
Sometimes we want to install a software but we don’t know the software name exactly. Then we search. To search a package, simply run wajig search package_name . Let say we want to install a software name Terminator. We can use a command like this :
$ wajig search terminator
The picture below will show the output.
If we are using apt-get command to search the a package, we will have an error like this :
Wajig is smart enough to know that search is not apt-get parameter. It’s apt-cache parameter. If we run apt-cache search terminator, then we will have the correct output.
Display package description
When you have already founf the package that you want, but you want to make it sure before you install it or remove it, then you can use show parameter to fulfill that purpose. Let say we want to see the description of the package named terminator. You may use describe parameter. Then the command will be like this :
$ wajig describe terminator
or you can add -v parameter to have more information about the package.
$ wajig describe terminator -v
If you still want to know more details, use show parameter like this :
$ wajig show terminator
Using wajig detail terminator will also produces same output with wajig show terminator
List the package files
After the package is installed, you may want to know where exactly the package is installed. Or what files that are supplied with the package. Assume that the package is terminator package, then you can see it by typing :
$ wajig list-files terminator
To update the list of new and updated packages, simply type :
$ wajig update
How about if you want packages that are ready to upgrade? You can know it by simply typing :
$ wajig toupgrade
Here’s a sample output of that command.
If you only want to do upgrade packages which are related to security of your Linux system only, wajig provide a parameter named upgradesecurity. So you don’t have to manually select what packages which are related to security. Just type :
$ wajig upgradesecurity
Then wajig will do an update, compare the result to your installed packages, and select needed packages for you. Last, you need to confirm Yes or No to commit this upgrade process.
Upgrade and Distribution Upgrade
You may see there are two upgrade scenarios in Wajig. Upgrade and Distribution Upgrades. The difference is Upgrade will only upgrade existing packages. It won’t install new packages. Meanwhile, Distribution Upgrade will update existing packages and it may install new packages. Distribution Upgrade is usually meant if you want to upgrade your Linux version, such from Debian 6 to Debian 7. Here's the syntax :
$ wajig upgrade
$ wajig distupgrade
If you want to do an update process before doing distribution upgrade, wajig can do it with a simple command :
$ wajig dailyupgrade
Auto-clean vs Auto-remove
After you installing or removing packages, some packages may leave behind. You can clean it with autoclean and autoremove parameters. When you want to remove no-longer-downloadable .deb files from the download cache, you can use :
$ wajig autoclean
On the other side, you can also use :
$ wajig autoremove
To remove unused dependency packages.
It's also possible that you have orphans libraries in your system. Orphans libraries mean the libraries are not required by any installed packages. You can display the list by typing :
$ wajig oprhans
Orphans parameter require deborphan package to be installed in you system. If you don’t have it, you can install it by typing :
$ wajig install deborphan
Once you have the list of orphans libraries, you can purge them to save you storage space. You can do it using purgeorphan parameter. Here’s the command :
$ wajig purgeorphans
That’s some usage of wajig command on Linux. There are still a lot of interesting parameters that have not been covered in this article, such rpm2deb and rpminstall parameter. You can explore wajig deeper by typing man wajig on your console or visit the Wajig Overview page.