Software Management Tools
From The Chakra Project
Català ─ Deutsch ─ Ελληνικά ─ English ─ Español ─ Euskara ─ فارسی ─ Français ─ Galego ─ Italiano ─ Polski ─ Português do Brasil ─ Svenska ─ Русский ─ O'zbek ─ 中文(简体) ─ 中文(繁體)
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 already lots of things you can do with your new Chakra installation, but odds are you're going to need or want soomething that isn't installed by default. Trouble is, if you're new to Linux you probably don't know what's available or how to get it, and that's what this tutorial is all about. I've divided it 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
Chakra is a young project, and it's software management tools aren't fully developed yet. Everything works pretty well, but it has to be remembered that some of the tools you're using here are temporary, and will be replaced with something else fairly soon. For the moment Chakra is using Arch's software manager, known as "Pacman", for managing software packages, with the Apper interface to make it easy to use. The ISO's do not include Apper, since it is not intended to be used for system updates, so all users will have to get used to using pacman for that. All of this will change once the Chakra development team finishes work on Chakra's own software management system, which will be called Akabei.
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 get. 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:
- Core: The core system; this is the stuff you need to have a running, bootable Linux system.
- Platform: Extra software that doesn't require a graphical session, along with some dependencies for KDE.
- Desktop: The KDE desktop environment.
- Apps: Graphical applications.
- Games: This contains... you guessed it... games.
There's also the lib32 repository, which contains 32-bit software compiled to run on a 64-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 now has over thirty of them, and more are being added all the time. The available mirrors are already enabled in your default setup.
Installing Software with Apper
In system-settings, click on Software Management to launch Apper:
The first thing you ought to know about Apper 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 Apper, it's actually sending commands to Pacman. The second thing you should know is that Apper is temporary; the Chakra team is working on creating their own package management tool, with a graphical front-end to go with it. But that doesn't mean it's bad, it's just a clean and simple package manager.
Take another look at "Installed Software", which allows you to browse software by category. Anything that's installed on your system will have a check-mark in the checkbox to the left.
For more information about a piece of software click on it's entry to highlight it, and at the bottom of the screen an info box will appear. In this example I have Calligra-Krita highlighted. Once you're done browsing you can return to the main screen by clicking the little "return arrow in the top left corner.
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 I first open Apper I like to update your package list, so what I see on your screen accurately reflects what's on the online mirror. Just click on the "Update" button, and "Check for new Updates" on the next screen .
Installing a Package
Let's try installing something. I know just the thing, too; something almost everybody will use. Chakra comes with a good basic set of multimedia codecs that allow you to play music and video from a wide variety of formats, but the codecs that allow you to play encrypted DVDs are left out. The reason for this is that in certain areas (the US to name one) there are some legalities surrounding what constitutes a licensed DVD player. It's ridiculous, but the Digital Millenium Copyright Act nuked any reasonable definition of fair use. So the live CD doesn't come with the necessary codecs, but they are included in the online repositories so you can install them if you want. It's up to you to know the appropriate laws in the area in which you live! To be upfront about it, everybody I know who runs Linux, regardless of location, has these codecs installed. I have never heard of anybody getting in trouble.
The package we want is "libdvdcss". It falls under the "System" category, but if you're not sure what category to look under it's often easier to simply do a search. Type "libdvdcss" into the search bar:
Now click in the checkbox next to the "libdvdcss" package to select it for installation. Click the "Install" button. You'll get this screen when hitting "Apply":
And you'll be prompted for the root password.... monkeying around with software is not something a regular user is allowed to do on a Linux system. This may sound like an inconvenience, but it's one of the reasons that Linux is more or less impervious to malware. Then you'll get a nifty little progress box that shows you how the installation is doing. Libdvdcss 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 "Check and 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.
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 and re-install the previous version, although that's not something I'm going to get into in this 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 run:
sudo pacman -Scc
This will get rid of any packages in the cache that are not presently installed on your system.
Apper Odds and Ends
Take a look at Apper's top right wrench, there are a few nifty features we haven't covered yet. The "General Settings" tab will allow you to set the update frequency and choices for automatically installing updates. The "Software Origins":
Here you can select what repositories you want to use. Everything you need is already checked, but if you want to run stuff from the Testing or Unstable repos you'll have to click the appropriate check-boxes. I don't recommend doing this unless you want to contribute to the Chakra project by helping to test new software and filing bug reports! Since this guide is for beginners, I'm going to recommend leaving the stuff in here alone for the time being.
Pacman
I mentioned above that Apper 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. For the most part you can just use Apper if you want to, but remember that Apper is temporary and there may be some cases where you have to use Pacman directly. This also serves as a very good introduction to the command-line interface, because 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 have graphical interfaces; you logged into a text-only terminal and worked from there. You can still do that on modern Linux system, but you can also get a terminal login 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 Appset-QT 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 Appset-QT 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 then it'll give you a list of all the individual packages the metapackage is going to install, and asks you to select which ones you want. Just press enter to take them all. 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 Appset-QT at the same time as Pacman is running in the terminal, because all Appset-QT really does is run Pacman and two instances of Pacman can't be running at the same time.
Installing Multiple Packages 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. 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
Using Pacman for Upgrades
You can also upgrade your system using Pacman; in fact, for major upgrades (meaning anything announced in the news section) this is the recommended method. The command is:
sudo pacman -Syu
Apper 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 Apper. But if the graphical interface feels more comfortable to you, there's no reason not to use it whenever you can. 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 thing and run it!
The Bundle Manager
your tool for working with bundles is a simple little interface known as the Bundle Manager. In your Kickoff menu look under "Applications" and then "System", and click on the Bundle Manager to open it. It opens directly to a list of available bundles:
We'll get the GIMP photo editor, because it's an app I think a lot of people will find useful. Simply scroll down through the list of bundles until you find Gimp, and click the download button to the right. It'll take some time to download, and a little blue progress bar will allow you to keep track of where it's at. Once it's done the progress bar and the Gimp entry will disappear. Now scroll back up to the top of the list, and Gimp should be listed under "Installed Bundles":
To delete the program, click on the button with the trash can. To run Gimp, click on the Run button to the extreme right. Don't worry, you don't have to launch the bundle manager every time you want to run Gimp! You'll find it in your Kickoff applications launcher 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.
Believe it or not, that's it! Managing bundles is just about the easiest thing in the world. But like Appset-QT, the Bundle Manager is temporary. When Chakra's own package manager is unveiled, bundle management and package management will be combined into a single unified interface.
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.
CCR With the Terminal
Let's try using the command-line tools to install stuff from CCR. Once again I know of something that almost everybody is going to want.
Who doesn't online storage? Dropbox is one of the more well known options, which doesn't come in your base Chakra installation. It's not in the official repos, either, because it requires GTK, but no worries; there's a package for it in CCR.
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 dropbox
You're going to be prompted several times during this process. If CCR has to pull some dependencies from the official repos using Pacman it'll prompt you for the root password. 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. Once the process is complete you'll be able ti use Dropbox for uploading your files.
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.
To be honest, I find it easier to work with CCR using the command line instead of Appset-QT. Use whatever tool feels most comfortable for you.
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.