Software Management Tools

i18n


Dansk – English – Español – Français – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Português – Polski – Română – Slovenský – Suomi – Svenska – Türkçe – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어

Note: Most of the images on this page are thumbnails. To see the full-sized image simply click the thumbnail.

Contents

Need... More... Stuff...

There's not much you can do with your new Linux installation until we install a few things. Chakra comes out of the box with a very bare-bones KDE on top of a very bare-bones system, which is a good thing because it means there's not a lot of junk installed that you're never going to use. Instead of making your decisions for you, Chakra allows you to decide what gets installed on your computer. The only problem here is that you're new to this, and you probably have no idea what's available or what you need. That's where I come in. I've divided this tutorial into two sections. On this page I'll show you where to get software for your Chakra Linux system and how to install it, and on the next one we'll look at the major software categories and what's available in those categories.

The Good News

You're going to love Linux software management. Getting software is as simple as finding out the name of what you want, running a search for it in a package management utility, selecting it, and clicking install. No CDs, no wizards, no money (although free software projects love donations), and for the most part no license agreements. If there are several different software programs for the same purpose, it's very easy (and costs no money!) to install them all, try 'em out, and keep the one you like best.

And the Bad (well, not really)

Chakra is a young project, and it's software management tools are still under heavy development. Don't let that worry you; everything works pretty well, but there are going to be a few instances where we have to step outside of our graphical comfort zones and use the command-line shell. This is actually a good thing, not a shot back to the stone age. The shell has survived ever since computers were mainframes simply because it is simple, fast and efficient compared to the complex graphical interface. Your bad experiences with Windows' "command-prompt" toy may speak otherwise, but Linux's BASH shell an incredibly powerful and useful feature; one that Windows users have never experienced for themselves.

Don't fret; You'll rarely need to use it on a modern Linux system, but learning it can increase your work efficiency, and the handful of very simple commands you're going to need for software package management will make for a nice, easy introduction to the command-line shell and hopefully get you past any anxiety you might be feeling about it.

Nice package!

When software is developed for Linux it's usually made available in the form of human-readable source code. Back in the early days you'd download the source code, compile it into machine-readable binary code, and install it manually. You can still do that, but most modern Linux distributions make it available in the form of packages. A package is a bundle of the pre-compiled binary code along some scripts and whatever else is needed to automate the installation on your specific distro. The end-user then downloads and installs the software using a package manager, which is a utility for installing, upgrading, and removing software packages. The Chakra team is working on creating their own package management software from scratch, but for the moment they're using Pacman, which was developed for Arch Linux.

Dependencies

Some software (lots of software, actually) needs other software in order to compile, install, and run. When a piece of software needs another piece of software, we call the piece of software it needs a dependency. In the old days you'd have to track down all the dependencies yourself and install them manually, but most modern package managers, Pacman included, will resolve the dependencies automatically and install them along with the software you're actually trying to install. So if you ask it to install something and it brings in several other things along with it don't worry; it's just installing the dependencies for you.

Repositories

Packages are typically kept in online repositories. Chakra maintains five main officially supported repositories:

There's also the lib32 repository, which contains 64-bit software compiled to run on a 32-bit system. Then there's the testing repository, where software gets tested before being moved to the main repos. Some adventurous souls like to contribute to the Chakra project by running software from the testing repositories and reporting problems, but if you're new to Linux I would advise against it. Only the main repositories are enabled on a default Chakra installation, so no worries.

Mirrors

The repositories are hosted online by servers in various locations throughout the world; these are known as mirrors because if they're all up-to-date they ought to be identical. The more mirrors there are the less bandwidth is demanded of any one of them, and the faster users can generally download software. Chakra doesn't have a whole lot of mirrors yet, but that should change as the project moves forward. The available mirrors are already enabled in your default setup.

Appset-qt

Appset-qt has replaced cinstall as the software manager, the pictures need to be changed

Open your Kickoff menu and under "Favorites" click on Appset-Qt to launch it. You'll be prompted for the root password (installing software requires root privileges), and then Appset will open up:

The first thing you ought to know about Appset is that it's a front-end for the Pacman package manager. A front-end is a program that's tacked onto another program to provide an easier (or at least different) user interface. When you choose an action with Appset, it's actually sending commands to Pacman. The second thing you should know is that Appset is temporary; the Chakra team is working on creating their own package management tool, with a graphical front-end to go with it.

Updating the Package List

Packages in the Chakra repos are being upgraded all the time, and new stuff in constantly being added as well. When you first open Appset you'll want to update your package list, so then what you see on your screen accurately reflects what's on the online mirror.

To update your package list, just click on "Update Package List" in the top-left. You should do this every time you launch Appset.

Installing a Package

Let's try installing something. The KDE desktop usually ships with Konqueror as the default web browser, in fact, it's usually something you can't uninstall. But it's not in a default Chakra installation. Remember that Chakra started out as a project aimed at creating a more modular KDE with less stuff installed by default, so they stripped it out of there after the decision was made to go with Rekonq as the default browser. That's fine, but it turned out there was a problem: Rekonq uses modules from Konqueror for some of it's functionality. Specifically, the "Network" module is missing, which is what deals with cookies and the cache and stuff like that. It's kind of important, and right now the only way to get it back is to install Konqueror. I've been informed that work is in progress to move the necessary modules over to one of the KDE desktop packages, so in the future this won't be an issue.

To install Konqueror, type "konq" into the search bar at the top left-hand side of the Cinstall window, and select "kdebase-konqueror" from the list of packages:

Now look over at the right-hand side of the screen. The topmost pane contains information about the selected package:

You'll see the name of the package, the version number, and the upsteam URL. Upstream is the term we use for where the software came from; Konqueror is a KDE project, therefore KDE is the upstream developer, and their URL is the upstream URL. It'll also tell you what licenses the software is released under, what it's dependencies are, who the package maintainer is, and a bunch of other stuff.

Now click in the checkbox next to the "kdebase-konqueror" package (if you haven't already), and the actions you've selected will show up over in the bottom right-hand pane:

We've got one package selected to install, nothing to upgrade, and nothing to remove. Now click the big "Apply" button at the bottom of the window. You'll get a little popup that displays progress while the package is downloaded, checked, and installed. Konqueror has no dependencies that didn't come with your base installation, but if it did those would be downloaded and installed as well.

That's it! That's all there is to installing software from the Chakra repositories. To remove software you just de-select the checkbox next to the package name and click apply. You can do a lot of packages in one shot; just select or de-select all the stuff you want to install or uninstall, then when you're ready hit apply and it'll do 'em all at once. You can also use Cinstall to update individual packages, but in most cases it's easier to just do system upgrades with Yapan.

The Package Cache

After installing your packages for you, Pacman keeps a copy of the binary package you downloaded in a cache. If you wind up needing to re-install it later on the system won't re-download it; it'll just install it from the cache. That's a big time saver, but there are other benefits to the cache.

Suppose you bring in the latest package upgrades and they break something on your system, or there's something wrong with the latest version of your favorite app? You can go into the cache folder and re-install the previous version. We'll get to that in a later lesson. Having all the packages on hand provides other advantages for advanced users as well.

The problem with the cache is that it can get kind of big. So if you're satisfied with the software currently installed on your system you can open Appset and select "Clean Package Cache" at the top-left. This will get rid of any packages in the cache that are not presently installed on your system.

The Appset Search Filter

You can streamline the Appset search function by setting the options around the search bar:

On the left of the search bar is a dropbox allowing you to search three things: "Name", "Description", or "All" for both. On the right, you can set what kind of packages to show; "All", "Upgradable", "Installed", and "Not Installed". On the far right, there are two checkboxes for "Extra Info" and "Expert Mode", which change the view of the results.

Pacman

I mentioned above that Appset is a front-end interface for the Pacman package manager. It exists because Pacman by itself is strictly a command-line tool and doesn't feature a graphical interface at all. In most cases you will never need to leave Appset, but it will be faster, simpler, and maybe even easier to use Pacman directly.

So don't let the terminal scare you; Pacman is extremely easy to use! Just one command and with a few easy-to-remember options and you'll be in business.

The Terminal Emulator

Back in the early days of computing they didn't need graphical interfaces; you logged into a text-only terminal and did everything you wanted to do by just typing a simple command. You can still do that on modern Linux system, but you can also get a terminal line from within the comfort of your graphical desktop environment using a terminal emulator.

Konsole

The KDE terminal emulation program is called Konsole. To launch it open your Kickoff menu, and from "Favorites" click on Konsole to open it:

When you first open Konsole you're presented with a command prompt, followed by a flashing cursor. The prompt should start with your username, followed by the name of the computer we're working from. The tilde symbol (~) tells you that you're working from within your home directory. The last symbol you see there is known as the prompt. Right now it's a dollar sign ($), indicating a regular user prompt. A pound sign (#) would indicate a root user prompt.

Regular users can't install software, so we need root privileges. We could log into the terminal as root, but we can also run a command with root privileges without actually logging in as root. All you have to do is prefix the command with sudo, and then enter the root password when prompted. This would get kind of tedious if you were going to be working as root for any length of time, but if you're only going to be issuing one or two commands as root it makes more sense... that way you don't have to worry about remembering to log back out.

The “Pacman” Command

With the Pacman package manager you only need one command: "pacman"! You specify what you want Pacman to do by tacking on command options. A detailed explanation of Pacman and all of it's options is beyond the scope of this lesson, but you can check out the Pacman page of the excellent Arch Wiki for more details. In this lesson I'm just going to show you how to use Pacman to install software.

Installing Development Tools with Pacman

To demonstrate the use of Pacman for installing software, we'll pick up a few development tools. We'll need them a little later in this lesson, when I show you how to download and install software from the Chakra Community Repositories. So far we've been working with pre-built binary packages, but the stuff in the community repos has to be built from the original source code into binary and then wrapped up into an installable package... a process that will take place on your computer. Don't worry, the process is automated, but your computer is going to need some development tools installed in order to build and package that software. Different software needs different build tools, so we'll need an assortment. Everything we need is in the official repos.

The reason we need to access Pacman from the command-line for this job instead of using Cinstall is that we're going to be installing a meta-package. A meta-package isn't really a package at all; it's a script that installs a whole bunch of packages in one shot. For some reason Cinstall doesn't seem to recognize meta-packages (did I mention it's temporary?), so we have to use pacman directly. We're going to install a meta-package called base-devel, which installs a basic set of development tools.

The command to install software using Pacman is "pacman -S {package_name}. So to install base-devel using Pacman you'll enter:

[gene@chakra-pc ~]$ sudo pacman -S base-devel

The "sudo" prefix gives you root privileges for this command only, "pacman" is the program we want to run, the "-S" option tells pacman to synchronize with the online mirror, and "base-devel" is the software package we want to install. You'll be prompted for the root password, and you'll then be presented with a list of programs that are about to be installed along with how much hard drive space this is going to eat. Then you have to confirm that you really want to install all this stuff; type "y" for yes, hit "Enter", and let it run. This is a lot of stuff, and it'll take a few minutes. Note that you cannot run Cinstall at the same time as Pacman is running in the terminal, because all Cinstall really does is run Pacman and two instances of Pacman can't be running at the same time.

Installing Multiple Package with One Command

The base-devel package is just what the name implies: a good set of basic development tools. But it ain't everything, and there are a few others that are required to build quite a few different programs. I can think of three other build tools that you should probably install right off the bat: cmake, scons, and automoc4. While we're at it we might as well get ccr, which is the community repository management tool. Once again they're all in the official repos, so to get them we could just go into Cinstall, search for them, select them, and click "Apply". What we'll do instead is install them all using a single pacman command:

[gene@chakra-pc ~]$ sudo pacman -S automoc4 cmake scons ccr

Appset or the Terminal?

As you can probably see, if you know the exact names of the packages you want to install it's quicker to just get them with a "pacman -S" command rather than doing searches in Appset. But if the graphical interface feels more comfortable to you, there's no reason not to use it. I generally prefer to use the command line for package management, but use whatever tools work best for you. I'll be covering Pacman more thoroughly in a future lesson.

Bundles

Not all of the officially supported software available for Chakra comes as a binary package from the repositories. Software for Chakra is split into two categories: packages and bundles.

Why Bundles?

The reason for the bundle system is kind of complicated. There are two commonly used developer's toolkits for creating graphical applications to be used with Linux: GTK and QT (pronounced "cute"). GTK is usually associated with the Gnome desktop environment and it's native apps, while the KDE stuff is done using QT. The Chakra project is based on a belief in the superiority of the KDE desktop environment and the QT toolkit, and although I don't have a dog in the toolkit fight, it is true that GTK apps tend to install a lot of weird extra dependencies and system libraries, and some benchmark tests have indicated that a pure-QT KDE environment with no GTK stuff installed runs a little faster. The official Chakra package repositories do not, and never will, contain any GTK apps.

Trouble is, there are some GTK apps it's impossible to get away from. For instance, the GIMP photo editor is the best free app of it's kind by a long shot, and better than any proprietary app short of Adobe Photoshop (which costs like $500). Unfortunately it's also a GTK app, but anyone who does serious photo editing on a Linux box is probably going to need it.

That's what the bundle system is for. A bundle contains not only the app but a compressed filesystem that contains the files the app needs to run along with any GTK dependencies the app has. The app doesn't install itself to your Chakra installation's filesystem, but rather to the filesystem that comes with the bundle, which squats quietly on your hard drive and doesn't affect anything else until you go to use it. It also automatically accesses your package manager on the first run to install any non-GTK dependencies from there. It works really slick, and this way you can use GTK apps without actually installing them to your filesystem. Bundles are super-easy because you don't actually have to do install them; all you have to do is download the bundle and click on the downloaded file!

Downloading a Bundle

Using Cinstall

Before Appset, Cinstall was used as a graphical frontend to Pacman. It was a very "quick-and-dirty" temporary replacement for the buggy and collapsing Shaman, Chakra's original frontend.

Cinstall still retains one last function, bundle management. You can easily grab all your bundles from the repo in a few clicks, and remove them just as easily.

Add stuff here

Manually

We'll get the GIMP photo editor, because it's an app I think a lot of people will find useful. If you don't want it you can get rid of it easily enough. To get Chakra bundles go here, and check out the first paragraph of text. If you're running a 32-bit system you'll want to click on the "i686 bundles repo" link, and if you're running 64-bit you want "x86_64 bundles repo".

The link you click on will take you to a list of available bundles. Click on "Gimp-{version_number}" and when the "Save to" dialog box pops up just let it save to your home directory. Wait until the download completes.

Now get into your home directory either by clicking on the blue "Home" folder in the Folder View widget on your desktop, or doing the same thing from the "Computer" tab in your Kickoff menu. When your home directory is displayed in the Dolphin file manager, you should have a .cb file that looks like a post office package:

Click on it... and that's it! The .cb file will unpack, GIMP will launch, and the next time you open your home directory with a file browser the .cb file will have been replaced with a GIMP icon:

You can delete that if you want, because on the first launch the bundle also stuck an icon for GIMP into your application menu system; it's under "Graphics".

You may be wondering why you didn't have to log in as root to install this bundle; obviously installing software is a system administration function that should require root privileges! The answer is that you didn't really install it, and the bundled app is placed in a hidden folder right there in your own home directory. It doesn't touch any part of the root filesystem. You should be aware that the app is not installed globally, that is, it's not accessible to any other user account on the system. If the system has multiple user accounts each bundle must be downloaded and installed separately for each of them.

Bundle Management

So how do you get rid of bundles, or check for updates? Simple. In your application launcher menu under "System" click on the Bundle Manager to launch it:

It's a pretty simple interface. Click "Find Updates" to find out if any of your bundles have updates available, and if you've installed a bundle that you don't want anymore just select it and click the "Delete" button.

I think that the bundle manager is, like Cinstall, temporary. It's my understanding that the Chakra team wants to combine both package and bundle management into a single graphical front-end.

CCR

That does not stand for Creedence Clearwater Revival! I'm talking about the Chakra Community Repositories. I think I might have mentioned before that Chakra is a new project, with a fairly small officially supported repository. Most common-usage stuff is included, but there's a lot of more specialized apps that aren't there yet. This is where the community repositories come in. Anyone can contribute packages to CCR (I've made a few contributions myself), and if there's something you want that isn't there or in the official repos you can put in a request for it at the Chakra Forums, in the CCR sub-forum under "PKGBUILD Requests". Even GTK apps and their GTK dependencies are allowed here. If you like an app you can vote for it to be added to the official repos, and if it gets enough votes it'll be moved to the official package repos or, if it's a GTK app, turned into a bundle.

PKGBUILD Scripts

CCR doesn't actually have packages, it has PKGBUILD scripts that automate the process of building a package from source code. The software itself isn't in the repository; when you run a PKGBUILD it downloads the source code from the upstream source, compiles it into a machine-readable binary, and then creates a package that can be installed using the Pacman package manager. It also uses the Pacman package manager to install any dependencies that are in the official Chakra repositories.

The Tools

There isn't a graphical utility for installing CCR software, but there is a tool that largely automates the process, a software package from the repositories called "ccr". Also remember that the source code is going to be compiled into binary on your local machine, so your computer needs a selection of build tools to work with. If you've been following along here you've already installed all of this stuff, using the Pacman package manager from the command-line.

Getting the Goodies

Assuming you've got the build tools along with the ccr package installed, let's install something from CCR! I know just the thing, too; something that almost everybody is going to want.

Most desktop computer users need multimedia capabilities. I don't even own a stereo or TV anymore; I listen to music (all the time) and watch movies (very occasionally) using my computer. But a computer needs multimedia codecs in order to play movies or music, and Chakra doesn't install them by default. After all, not everybody will use their computer for multimedia stuff, and the Chakra philosophy says that if you're not going to use it, it shouldn't be installed on your system.

All of the necessary codecs are available from the official repositories, but it's an awful lot of stuff. Somebody recently contributed a meta-package to CCR that pulls in all of the various multimedia codecs (along with some other useful stuff) from the official repos, along with a couple of CCR packages. The package is called chakra-essentials, and it can be installed using the "ccr" utility.

The command to download, build, and install a package from the community repos is simply "ccr {package_name}. You don't need (or want) root privileges for this, so you won't use the "sudo" prefix. Just run the command "ccr" folowed by the package you want to install:

[gene@chakra-pc ~]$ ccr chakra-essentials

This is going to take awhile; there are a lot of packages being installed here, and a lot of them have dependencies. You can do some other stuff while this is going on, but you'll want to keep checking Konsole because you're going to be prompted several times during this process. The ccr utility is going to be pulling some stuff off of the official repos using Pacman, so you'll be prompted for the root password right away. When it builds the packages that come from CCR it'll do that as your regular user; it's dangerous to do it as root! It'll ask if you want to modify the PKGBUILD script for each CCR program; just enter "n" for no and it'll move on. Then you'll have to enter the root password again so it can use Pacman to install the packages.

What Was All That Stuff?

There was a lot of stuff in that meta-package! Most of it was multimedia codecs. Now that they're installed you can play just about any kind of digital media, including Windows media audio and video, encrypted DVDs, and MP3 files. Adobe Flash Player was also in there; you need it to view online flash content. Some of it was additional fonts, including the proprietary Microsoft fonts that'll make your documents look a little better if they're going to be viewed using Microsoft Office apps. There was also the gtk-integration module, which makes GTK apps like GIMP, which we installed earlier, look a little more natural in a QT environment. All good stuff.

Upgrading CCR Software

Just like the stuff in the official repositories, software in CCR gets upgraded as newer versions come out. At least that's how it's supposed to work; how quickly it gets done or whether it gets done at all is dependent on whoever is maintaining the package... don't forget that this is not an officially supported repo! To upgrade your CCR software use the following command:

[gene@chakra-pc ~]$ sudo ccr -Syu

And enter your password when prompted. You need the password because the ccr program will also call up Pacman and check the official repos for upgrades at the same time. There's no automatic notification tool for CCR updates; you just have to check once in awhile.

There may not be a point-and-click graphical utility for managing CCR software, but you've gotta admit that the existing command-line tools are pretty easy to use. Having the community repository around means that almost anything you're likely to need is readily available, without overloading the relatively small Chakra development team with an over-abundance of packages to maintain.

Not the End

Now that you know where to get Chakra software and how to use Chakra's software management tools, you're probably itching to get some apps installed. The next lesson is a guide to finding the right app for the job.

Back | Next | Beginner's Guide Index

tanasinn.info archive