Smart

From openSUSE Community Wiki

This article refers to the version '10.1' and it is now obsolete!
Please refer to this article's discussion page for more information.

Smart is a popular Package Manager that supports many different repository formats. It's quick, and has multiple interfaces for installing packages quickly and reliably. Smart also contains portable algorithms for solving adequately the problem of managing software upgrading and installation. In SUSE Linux 10.1, it serves as an excellent replacement to the problematic default package management system. Here's a few tips on basic usage.

Contents

Installing Smart

As of 10.1, Smart is available in the online openSUSE/SUSE repositories, and the Guru repository[1] always has the latest Smart packages out.

Adding Channels

To configure and install channels with Smart, see the Repositories page. If you use Guru's package, some recommended default channels will be added on first launch.

Using Smart

On the Console

Smart can be used to install local, HTTP/FTP, or other RPMs in any repository. Type smart -h on the Console to give you a brief overview of Smart's usage; here's the basic usage:

opensuse:~ # smart -h
Usage: smart command [options] [arguments]

Action commands:
   update
   install
   reinstall
   upgrade
   remove
   check
   fix
   download
   clean

Query commands:
   search
   query
   info
   stats

Setup commands:
   channel
   priority
   mirror
   flag

Run "smart command --help" for more information.

Options:
 --version             Show program's version number and exit
 --config-file=FILE    Configuration file (default is <data-dir>/config)
 --data-dir=DIR        Data directory (default is /var/lib/smart/)
 --log-level=LEVEL     Set the log level to level (debug, info, warning,
                       error)
 --gui                 Use the default graphic interface
 --shell               Use the default shell interface
 --interface=NAME      Use the given interface
 --ignore-locks        Don't respect locking
 -o OPT, --option=OPT  Set the option given by a name=value pair

Examples:
 smart install --help
 smart install pkgname
 smart --gui
 smart --gui install pkgname
 smart --shell

First, update all the channel lists by using the following command:

smart update

As you can see, we can easily install package(s) from any given repository by simply using the command like this:

smart install somepackage somepackage2 somepackage3

You can also link this in with local packages, or ones at a particular location, so:

smart install somepackage /home/user/some/local/package.rpm http://somedomain.com/online-package.rpm

To upgrade your system, simply do:

smart upgrade

Graphical Manager

The command line method, however, is not really the optimal way to install packages. Most reliable SUSE Packages are stored in the major repositories. As a result, you can simply use SMART to install from those repositories very easily. Simply open the Smart GUI, and use the Search function to find the package name (if you don't know the package name, Google may help). It can be opened either by hitting <Alt>+<F2> and typing smart or by opening it from the menus.

Image:SmartInstallPackage.png

Right click the package you wish to install, and select Install. As you can see, packages may also be removed this way. Click the Apply Marked Changes button (the cogs). Smart will automatically update/install any missing dependencies if it can find them, and add them to the list of changes it will display. Now simply accept these changes and Smart will install the packages!

Image:SmartCommitingTransaction.png

Links

  • Homepage: The Smart Package Manager homepage has a plethora of extended documentation for basic and advanced Smart usage, it also has a complete FAQ. See: http://smartpm.org
  • Comprehensive howto: This guide is but the very beginnings of what you need to get started. It is certainly not exhaustive. For more information and hints on Smart's powers, see http://labix.org/smart/howto