Re: Complete Guide to Installation in Ubuntu
2) Installing with CLI
Special note: Kubuntu users, go straight to 5b) Differences Across Versions and understand the differences (or keep them handy until brought up). I wrote this guide for Ubuntu and things are slightly different for you guys. Most if not all of this guide can still apply to you though.
So, first we will start with the command line means of installing. It will be easy to grasp the GUI method after I explain this, I will be including all the theory here and the GUI explanation will really just be equating things so you understand them from CLI. I do advise understanding both methods, just like knowing more languages lets you visit more countries on your own, knowing more methods of installing is always better.
First, we need the terminal (lexicon), it can be gotten to several ways. The first and most obvious is via the Applications Menu, specifically Applications > Accessories > Terminal. The second way is to use the run application box. You can get to this with Alt + F2. This handy keyboard shortcut is useful, the more you use applications the more use you will find out of it. it will let you get to them fast, to run any application all you need know is its terminal command. This is usually its name, for example, the gnome terminal, is "gnome-terminal". Usually, it is the name of the main package installed for the program. It has other options you can use,, but for our purposes it will suffice to simply know how to open the terminal with it.
Note: My pictures/screen shots from here on will likely look different than what you have on your system, I'm using a dark custom theme. Any differences are merely cosmetic.
This is what you should see in Ubuntu by default, it is the GNOME Terminal:
Now, you have a terminal open. There are many different variants with different looks, all are inherently the same though (they differ in their look but get you to the same CLI). The one thing you should see displayed is:
username @ hostmachine :~$
This is of course simple. Username will be whatever user you are logged in as (for example, starcraft), and @ hostmachine is telling you which machine you are logged into (you can remotely log into other machines, you need not be concerned with the host machine part, it is for advanced uses). By default your hostname should be Ubuntu unless you changed it during install. The last bit of this is :~$. The : simply separates your name and machine from the directory your working in. ~$ is a place holder, until you change directories. This concept may be a bit difficult, think of a directory as the folder your working in. When your in your Explorer in Windows you double click a folder and you go in it, each folder your in before you click the next is the directory your working in, except in the terminal there isn't any graphical indicator which folder your in (i.e. the top of the explorer tells you where you are). Thus, this line after your name serves as your indicator. For more information see Linux Command, specifically lessons 1, 2 and 3. I strongly urge you to read these 3 lessons, they will make everything that comes after this much easier. 4 and 5 are less important, read them at your discretion they can only help you in your understanding of CLI.
Now that we got that out of the way. Lets understand sudo. Sudo stands for superuser do. This is a security system in Ubuntu, it allows for a limited user (your default account) to do administrative tasks without logging in as administrator (in Ubuntu the administrator account is named root or root user). You have to tack on this command before all others (consider it like a prefix to the entire command) to allow a command root access. You normally need this when you want to do updates, install programs, or modify any system components that are important. For a complete description of sudo please read
this it may seem a bit complicated but you will understand as you use it more.
One warning, when it asks for your password the terminal will not give any visual feedback (i.e. You will not see ****s for every character of the password you type). This is normal, and is nothing to be alarmed about, your keyboard isn't broken just continue inputting your password and push enter.
To sum up, sudo should only be used when you have to (it is a security feature, staying constantly logged in as root or sudo is insecure) and must be used properly as follows (any time you see these boxes (the ones after this note) with commands in them, they are meant as example of what should be used in the terminal):
(note no <> around the actual command, I use that only for emphasis of the fact that command is just a placeholder for any command you know)
or for example:
(a common command, more on it later)
sudo aptitude update
Now, on to the next step, looking at your sources list. One of the key features of Linux is rather than using a registry to store all configurations of programs, it employs text files that can be edited manually or with programs. You can view it (the sources list) graphically with a word processor called gedit (It's a basic program just designed for simple edits to text files like the sources list) or you can use the terminal editors (They have no graphical component, and are entirely text based). I will show and explain both methods, though it is usually easier to use gedit.
2a) Graphical Editors and the Sources List
Issue this command to the terminal (by that I just mean type it in (or copy while your learning) and push enter):
IMPORTANT: You will be entering a tonne of commands, please note that in Linux it DOES matter a lot if it is capital or not (i.e. if you issue a command with "aPtITuDe" or even "Aptitude" instead of "aptitude", you will get nothing. The first/second are gibberish (to the terminal), the third is a command.). Be exact, and if you get an error check for typos. The same rule about capitalization applies to filenames and paths (lexicon), be precise.
gksudo gedit /etc/apt/sources.list
For a breakdown of this command, understand that gksudo stands for graphical sudo. It is intended to be used when opening graphical applications (such as gedit), you can use sudo instead but there are some graphical apps that simply don't open with sudo correctly, I advise you to try your best in remembering which is which. More on gksudo
here. Next is gedit, this is the application I (you) want to use (and by prefixing it with gksudo I am empowering it to edit files that only the root user should be able to). Lastly, is /etc/apt/sources.list, this is the path (lexicon) to the file I am wanting to edit. All commands follow this basic scheme, from most general (giving root power/the application) to most specific (path of the file).
Now, you should see this (this being gedit looking at the sources list):
This is gedit (full name is gnome editor). You'll use it often when editing text configuration files like the sources list. It is a stripped down word processor, there are only a few important features you should know about. The save button should only be pressed when you are sure the changes you've made are what you want, it will overwrite the file you opened. The open and new buttons are like all others of their kind, they open and make a new document respectively. One note on this is that it will usually (when its an important file like the xorg) make a dated back up upon saving, so your old version is preserved. Don't rely on this, when you need to back up (whenever you like, usually before serious changes to important files) please consult Linux Command lesson 5, simply use the cp command to copy the file and make a new copy with whatever name you like.
Other features are constant, Ctrl + C V or X get you copy paste and cut respectively. Ctrl + Z and Y get you undo and redo respectively. One other good feature is line numbers and the highlight feature, this makes it easier to figure things out. Go Edit > Preferences and check “Display Line Numbers” and “Highlight Current Line”. The former will assign each separate line of any open file with numbers (this is especially useful if an error is returned that says “error at line 35 of sources.list” or when conferring with people about your configuration file. The latter option highlights the current line your working on, I like both.
Now, on to understanding the sources file. Here is mine (only a partial excerpt, my actual list is very long) for example (your's will of course vary):
Now first thing to understand, all the lines prefaced with ## in front are simply text lines for you the end user. They are to explain at the beginning and to identify each repository. I have highlighted in red exemplar repository urls and in blue are the text and identification.
# deb cdrom:[Ubuntu 8.04 _Hardy Heron_ - Beta i386 (20080319)]/ hardy main restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://archive.ubuntu.com/ubuntu/ hardy main restricted
deb-src http://archive.ubuntu.com/ubuntu/ hardy main restricted
## Major bug fix updates produced after the final release of the
deb http://archive.ubuntu.com/ubuntu/ hardy-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu/ hardy-updates main restricted
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## universe WILL NOT receive any review or updates from the Ubuntu security
deb http://archive.ubuntu.com/ubuntu/ hardy universe
deb-src http://archive.ubuntu.com/ubuntu/ hardy universe
deb http://archive.ubuntu.com/ubuntu/ hardy-updates universe
deb-src http://archive.ubuntu.com/ubuntu/ hardy-updates universe
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://archive.ubuntu.com/ubuntu/ hardy multiverse
deb-src http://archive.ubuntu.com/ubuntu/ hardy multiverse
deb http://archive.ubuntu.com/ubuntu/ hardy-updates multiverse
deb-src http://archive.ubuntu.com/ubuntu/ hardy-updates multiverse
Now, comes the technical stuff. The first thing you should understand is commenting. This is a universal term that applies to almost all configuration files like the sources list. It refers to the act of putting a # in front of a line in the text file. This tells any and all programs that read this configuration file not to “read” or otherwise use the line in any operation, mostly these are comments either made by you the user or the original creator of the file to help you. They also identify the repositories. One or two #s makes no difference, they are equally unused. It's mostly just cosmetic.
Now, this commenting system doesn't just apply to text, it also applies to the software repositories themselves. Here is an example also from my sources list:
In green you see a software repository, it has no comment in front so you know it will be used when installing and updating or by any other program using this file. The Orange though has the comment in front, it will be ignored. Another thing I would like to note here, notice that both lines point to the same url, there is a difference though and I have underlined it. The first line will merely download the package or update. The second line will retrieve for you the source code (lexicon) it will download it to a particular folder in your system (the location escapes me at this moment).
deb http://archive.canonical.com/ubuntu hardy partner
# deb-src http://archive.canonical.com/ubuntu hardy partner
So, that is how the sources file works. Aptitude (most common application using it) will read it (all the uncommented urls) when it tries to find programs/install them/update them. It isn't complicated or mystical, and it does get the job done very well. Now then, what if you want to add sources to your list? Well, we can do that too.
To get the most out of Ubuntu you have to enable quite a few repositories, universe and multiverse for instance contain extra programs not in the main trunk but which are useful. They are in these sections for the express reason that they aren't directly supported by Canonical (Ubuntu's backing company).
You can add other sources to your sources.list - one such is from Medibuntu - this provides a way of distributing software which cannot be included in Ubuntu. This page gives a method of enabling these software sources.
This repository contains codecs and other restricted packages, they usually aren't free programs like your other ones. The reason it says it may contain illegal packages is because of the disputed legality of using codecs like the MP3 one without having paid for the right to use the “patented” codec. This should never worry you though, no one will hunt you down for using less than legitimate codecs its far less than active piracy like downloading software and music without paying. Consider it fair use (like ripping DVDs from their original disk to store a perfect digital archive for life).
Anyway, when you find sites with repositories listed that can be added to your own (like the Link) all you need do is open the sources list and copy the lines to the bottom of your list (there are other steps, this is the only one needed in the software sources list though). Always make sure your not (unless you really want it) downloading deb-src (the source code). If you don't plan on using it, it simply eats up space on your hard drive. Be careful when adding extra repositories, always make sure it's for the distribution (i.e. Ubuntu) and version (i.e. Hardy, Gutsy, Feisty ...) of your system, it is not advisable to mix and match.
Now, I have covered the basics, a technical break down of what each line of this sources list actually does is required. Here is an exemplar two lines from different parts of my sources list.
First up, see what I highlighted in blue. That is the country code of the repository, there are many mirrors for Canonical's servers and its more than likely your country has one too. The code could equally be (in place of us) ca and then it would go to the Canadian mirror. All mirrors store the same data, the only difference is where they are stored. The second url has no country code this one will simply hit the primary main site for its updates, this is fine.
# deb-src http://us.archive.ubuntu.com/ubuntu/ feisty main restricted
deb http://archive.ubuntu.com/ubuntu/ feisty-updates restricted main multiverse universe
# deb cdrom:[Ubuntu 7.04 _Feisty Fawn_ - Beta i386 (20070322.1)]/ feisty main restricted
Next, notice what I highlighted in green, notice how there is a space between each and it isn't part of the actual url, weird eh? That's because these don't make part of any standard url like you understand (the web browser kind). The truth is while I've been calling them urls (Uniform Resource Locators) they are really uri's (Uniform Resource Identifier). The difference is minimal for you, it means a lot to aptitude though and is reflected in the formatting. Basically the first chunk of the URI directs it to the location to find the repository. After that, the spaces refer to specific sections within that repository that it should look to get packages/indexes/information from. Take my first line for example, it will go to the repository indicated and then look up the feisty section (that is the distribution I am using) and then further look in the sections of main and restricted. My second line is a bit longer but the same, it will go to the repository indicated in orange and then to the feisty-update section, in there it will search for main restricted universe and multiverse packages. It's a very clean and efficient system of doing things. I invite you if you like to open a tab or window of Firefox and paste the url (orange one) in your location bar and push enter, you can then browse around the sections as you like. It isn't important to understand how the actual repository is sorted (it is a bit more complicated then I am letting on), merely that each of the terms is a section.
Now the last line of my example. Notice it is formed very distinctly from the rest (yours may vary), it is the line that indicates to aptitude you can install programs from the CD. This line when uncommented will tell aptitude to check for packages on the CD you installed with (it will prompt you to insert the CD every time you try to install something). This is somewhat limited for the average user, the basic CD doesn't contain many packages at all for you to install from except whats already installed. Some users get a hold of the DVD containing all of Ubuntu's repositories and thus add those, they then can install a much wider range of applications from that without a net connection. This has of course a severe limitation, the versions of the programs on the media (CD or DVD) is frozen, it will always be that same version and without net access at some point you will never get updates and newer ones. Most users can simply comment this line out, you won't have much use for it and the online versions will always be more up to date.
A full explanation of what the sections of these repositories hold is given in the GUI section, wait until you get there to understand what they all do. That is all for this section.
2b) CLI Editors and the Sources List
Sometimes, you don't have the GUI (i.e. Your not logged in with a graphical display manager (lexicon)) and you want to edit something. This of course has been solved for a long time (remember computing began without GUIs), there are text editors that are CLI based and don't rely on any graphics. They are more limited but still useful. I will just give you a quick guide to this, I won't repeat all the explanation as above. All the same things applying to this sources list, because your editing the same file. The only difference is how you edit it.
This command in the terminal will get you the Nano editor (there are others, explore at your own discretion):
Notice that this time I didn't use gksudo, thats because nano isn't a graphical application it works inside the terminal. Nano of course is simply the name of the CLI editor, and it is followed of course by the path to the file I want to edit.
sudo nano /etc/apt/sources.list
Here is a pic of what the Nano editor looks like.
Every time you see ^ it simply means push ctrl and then the key on the keyboard. ^G will get you the help menu and reexplain all the keys and functions available. ^X will exit the editor, it will prompt you to save if you made any changes. ^O is the write out command, it will let you save your changes to the same file (the path is displayed, by default it is the same as the one you opened) or to another place. One of the serious limitations of Nano is that copy and paste don't work the same, you can only copy one line at a time with ^K and paste it with ^U. Navigate around with the 4 arrow keys, and remember it will cut whatever line you are currently on. Oh and ^V and ^Y are page down and page up respectively.
Thats it. There isn't anything special to nano, its mostly for when you can't get to gedit and need to make changes (or if you want to quickly insert a single line). That wraps up editing the sources list, any extra information will be added to the end.
N.B. Kubuntu users, you do NOT have gedit or gksudo. Your respective programs are kate (editor) and kdesu (gksudo alternative in Kubuntu). A word of warning, you MUST launch kate to edit text files graphically with kdesu (you will get an error message if you fail to do so).
Xubuntu users, you can replace gedit with mousepad, gksudo will work for you though.
All Ubuntu derivations though come with nano, that is a standard editor that you can always use.
2c) Authentication Keys
So, now you added the repositories and your wondering how do I get the keys to access them. This is much less complicated and lengthy.
Firstly, the hardest bit is usually finding the key, it will usually be on the site near the repository. In the case of our previous example with the medibuntu repository the key (and command to import it) is provided on the web page
This example is from the original thread and has not been changed as the explanation which follows it is still good. The command should not be used and can be replaced by using those given on the Medibuntu link.
Now, a little explanation of the command is in order. Wget is the command for the terminal to download anything from any site (it is the CLI equivalent of right clicking a link and going save link as...). It is useful for downloading keys and other things when you don't want to open a browser and do so. -q means quiet mode, that simply means it won't give you any output from wget, it isn't really needed just means it won't clutter the terminal with lines. I would like to add that -q is a modifier (lexicon) to wget. The url follows, this can be interchanged with any other url (in this instance its the gpg (lexicon) key for the Medibuntu respository). This -O- | (the | is really just to separate the commands one from the other) is used to link the two commands together, the first half (before it) downloads the key with and the latter half command adds the key to the database so that it is available for the repository of choice. Sudo of course is the same sudo as discussed before. Apt-key is the command for modifying and changing keys, add of course is to tell it to add and then last – simply is a place holder for the key that was previously downloaded.
The site will not always provide the command with the key (this site was targeted at new Ubuntu users so it did). A more generic example used to be the Virtual Box site (it is a very good and free Virtual Machine solution, for those of you that know what that is, not important what it does just as an example).
These were the original commands needed to accomplish the task at hand -
It previously needed to be added into the sources list and having the key added, these were the commands needed to complete the addition of virtualbox prior to installing it. Again I have left the information as the syntax for adding similar keys would be similar to this.
In fact now virtualbox can be got from the repos using either apt-get, aptitude or synaptic - this results in an open source version being installed. It is also available from the virtual box site as a .deb which can be installed.
To install from the terminal using aptitude
To install the non open source alternative go to the vbox website and follow the links to the binaries platform.
sudo aptitude install virtulabox-ose
They of course provide repositories for feisty, edgy and dapper all versions of Ubuntu, as well as other distributions. Underneath they gave you the public key as well. They didn't really format it perfectly for you though. Pay attention and notice that they did link to the full url though (the “here”). This is what you need.
Debian-based Linux distributions: Add one of the following lines according to your distribution to your /etc/apt/sources.list:
deb http://www.virtualbox.org/debian feisty non-free
deb http://www.virtualbox.org/debian edgy non-free
deb http://www.virtualbox.org/debian dapper non-free
deb http://www.virtualbox.org/debian etch non-free
deb http://www.virtualbox.org/debian sarge non-free
deb http://www.virtualbox.org/debian xandros4.0-xn non-free
The innotek public key for apt-secure can be downloaded here. You can add this key with
apt-key add innotek.asc
Now, you can take our old friend the import key command (ya, I know I want you to understand but its a pain to write this one out each time. I keep the command in a text file on my desktop to copy and paste when I need it.) and change the old url for this key's one.
wget -q http://packages.medibuntu.org/medibuntu-key.gpg -O- | sudo apt-key add -
N.B. Yes, I know one key ends with gpg and this one ends in asc. Consult lexicon for explanation on this, it isn't an important difference, both are usable keys. This brings to a close my adding key section, you'll never really need to remove or otherwise manage keys so I won't cover that.
wget -q http://www.virtualbox.org/debian/innotek.asc -O- | sudo apt-key add -
Now, we have gotten to the good stuff. We are actually going to install something now. Wait. I know you want to get to installing stuff, but there is something you have to do first. Remember, we modified the sources list and added keys (even if you didn't actually do this physically, it is the example I am going with). Thus, you have to refresh aptitude so that it (your package manager) is aware of the changes made to both and retrieves the information of packages on those new repositories.
First thing I will point out is that there are two ways of installing, via apt-get and aptitude. They are both really the same now, I find my preference lies with aptitude but yours may differ. This is a discussion on it. You can find more on it elsewhere, it doesn't really matter that much though. I just bring it up for completeness.
Now, to refresh the indexes and update aptitude we will issue the following command:
No need to explain sudo again. Aptitude is the main command that manages packages in the command line, update tells aptitude to refresh the indexes (and recheck all the repositories listed in the sources list). If you wish to use apt-get do so at your own discretion, be consistent though (i.e. Use aptitude everywhere or apt-get everywhere).
sudo aptitude update
Next, I will explain how to manually trigger a CLI update for all the packages on your Ubuntu install. This command will do it.
Upgrade of course simply tells aptitude to check all packages installed in your system against the repository versions and if the repositories have a newer one, it will appear in a list telling you that you can upgrade. Push y and enter to accept the changes, you can reject them if you wish. To get other updates like new kernel (lexicon) versions and other serious modifications you will need another command however:
sudo aptitude upgrade
This will get you all upgrades available to your system at the time. Oh and no, it won't upgrade you to Gutsy, that is done via the package manager and you have to explicitly tell it to (the Graphical Update Manager, pops up in the notification area in top right by default).
sudo aptitude dist-upgrade
That takes care of updating things, now on to installing.
2e) Installing Software
Now that your all up to date with your new repositories, lets learn how to install.
First and foremost, the most basic of all things, the install command:
Take note, this is like all other aptitude commands it begins with sudo (your modifying the system) and aptitude (thats the main program your using, use apt-get if you wish). Install of course informs aptitude you wish to install the following packages, list them in order after that (i.e. PackageX packageY). Note, you can install as many packages as you like there is no limit, I just chose to only give 2 as example. Just remember that each package is separated by a single space.
sudo aptitude install packageX packageY
A properly formed install command will look like this (I will use k3b and libk3b2-mp3 as my generic packages for this entire session of explanations, its mostly examples):
So, there you have it (a note btw, the libk3b2-mp3 package is to enable MP3 support in K3b assuming you have the codecs already installed, it of course isn't natively supported without this.)
sudo aptitude install k3b libk3b2-mp3
Special Note: A very important package for all users to install is build-essential. This package contains essential tools for modifying key parts (like the kernel) of your OS (i.e when you install graphics drivers, a virtual machine, etc...) On any machine you ever set up, right after updating you should install this package. You now know how to do install so I will not supply the command, so install it when it suits you.
Next, what happens if you want to remove it (what you just installed if you put in that command), you use the remove command:
This command will specifically remove the packages I list from the computer, since I'm also using aptitude it will also remove all unnecessary dependencies (lexicon) installed on your computer. The configuration files for the user (those are usually stored in your home folder, they store preferences per account, like the registry) will be left behind to be used if you ever reinstall the program, they take little space.
sudo aptitude remove k3b libk3b2-mp3
So what if you want to remove the dependencies as well? You use another command of course!
This is an apt-get command ONLY, it isn't needed for aptitude (because aptitude will remove unneeded dependencies automatically with the remove command, apt-get will not until this command is run). You don't specify a package after autoremove, it will check all dependencies and remove those that are no longer needed by programs (because those programs were uninstalled).
sudo apt-get autoremove
Next, what if you want to remove all the configuration files associated with the removed packages as well, we have a purge command for that:
This command is the highest level of removal, it will remove all packages listed, their dependencies (due to the fact that it's aptitude) and forcibly remove all configuration files from home (and anywhere else on the drive). I don't recommend using it often, mostly only when a problem is occurring with a package and you want a clean start.
sudo aptitude purge k3b libk3b2-mp3
Next up, the reinstall command.
This one isn't too complicated. If you run into a problem with a specific program (or say you did something to corrupt it) you can tell aptitude to quickly remove it (this remove is not a purge, so it won't remove dependencies or config files) and reinstall the programs listed from the cached downloaded packages. I didn't explain this before but aptitude will cache all the downloaded installers for the various packages you want to install for later use (like reinstalling). It's useful and doesn't take that much space, more on this later.
sudo aptitude reinstall k3b libk3b2-mp3
Following that on the list, what if you want to look for a program? Well aptitude has a solution for that too. You can search for it. There are two ways, I will list both:
This method tells aptitude to search for any packages that includes the word k3b and it will search live across all of the repositories (i.e. Across the actual versions on the repositories, not those indexed on your computer locally in the cache). It will then return a list of possible matches. Another subtly of this method is that it by default really only looks at the package names and matches it to that. It's best when you know what you want (or maybe looking for a plugin for a specific program and only know the name of the program, very useful in those instances). Search for "beryl" and you will see what I mean by that, just an example where knowing the main name of the program can list all the associated packages/extensions.
aptitude search k3b
The second method is the following:
This command will search across all your downloaded and indexes lists of applications (packages). It is presented a bit differently (try both in terminal, you will see it) but ultimately it gets you about the same thing. This method only searches what's local on your machine and not the repositories. It also tends to return broader search results. There are probably more subtleties to them but I don't know exactly, someone feel free to tell me to include in the guide.
apt-cache search k3b
What if you want to see more information on this package quickly? Say k3b for instance (I am very unoriginal). Issue this command:
The output should be similar to this:
The blue, is all my notes on what each section means of the show command. It is very detailed, and will tell you lots of things (some are much more comfortable reading a GUI's properties though for this info, more on that later). Oh and yes you can use it on multiple packages, my recommendation is one or two at a time, the pages fill up REALLY fast with this command.
Package: k3b -This is the name of the package (remember, the package name doesn't always have to be the same as the program, it just usually is). It also is always completely lower case.
State: installed - This tells you if it is installed or not.
Automatically installed: no -This tells you if it was marked for automatic installation, advanced command you don't need to know right now... more on that later.
Version: 1.0-0ubuntu2+medibuntu1 - This is the version number.
Priority: extra - This is the priority, K3b is of course completely unnecessary to the daily function of Ubuntu. A Kernel, would have an extremely high priority though since just booting up a console or regular log in requires that always.
Section: free - Section of the repositories it is in.
Maintainer: Ubuntu Core Developers <email@example.com> - The people who compiled (Wiki entry on compiling) and maintain (i.e. make sure latest package is on repository) the package on the repository.
Uncompressed Size: 9761k - The total size it will occupy by itself on your drive (this is only the package for k3b, and excludes any dependencies or related packages.
Depends: kdelibs4c2a (>= 4:3.5.5-1), libacl1 (>= 2.2.11-1), libart-2.0-2 (>= 2.3.16),
libattr1 (>= 2.4.4-1), libaudio2, libc6 (>= 2.5-0ubuntu1), libdbus-1-3 (>= 0.94),
libdbus-qt-1-1c2 (>= 0.62.git.20060814), libdvdread3 (>= 0.9.6), libexpat1 (>=
1.95.8), libfontconfig1 (>= 2.4.0), libfreetype6 (>= 2.2), libgcc1 (>= 1:4.1.2),
libhal1 (>= 0.5), libice6 (>= 1:1.0.0), libidn11 (>= 0.5.18), libjpeg62, libk3b2 (>=
1.0), libmusicbrainz4c2a (>= 2.1.4), libpng12-0 (>= 1.2.13-4), libqt3-mt (>=
3:3.3.8really3.3.7), libsm6, libstdc++6 (>= 4.1.2), libx11-6, libxcursor1 (> 1.1.2),
libxext6, libxft2 (> 2.1.1), libxi6, libxinerama1, libxrandr2 (>= 2:1.2.0),
libxrender1, libxt6, zlib1g (>= 1:1.2.1), wodim | cdrskin, cdparanoia (>= 3a9.8),
genisoimage, kdelibs-data (>= 4:3.1.4-2), kdebase-bin, cdrdao (>= 1.1.7-5),
transcode, libdvdcss2 - These of course are ALL of the dependencies that this package requires to actually run on your system. Since I'm on Ubuntu, it requires a huge chunk of the KDE base to be installed. It also just natively depends on a lot of things.
Recommends: vcdimager (>= 0.7), dvd+rw-tools, kdebase-kio-plugins, kcontrol - Recommended packages that will add features I suppose or be used in conjunction, not directly needed like dependencies. Usually they are installed anyway.
Suggests: k3b-i18n, normalize-audio, toolame, sox, movixmaker-2, libk3b2-mp3 - These are suggestions, these won't be installed at all unless you do so. They are usually tied to the program (one way or another) and like recommendations will add to your experience with the program.
Description: A sophisticated KDE CD burning application - Medibuntu package
K3b is a GUI frontend to the CD recording programs cdrdao and cdrecord. Its aim is to
provide a very user friendly interface to all the tasks that come with cd recording.
It can be used to copy CDs and burn:
* audio CDs (from wav, mp3 or ogg vorbis files)
* data CDs and DVDs
* mixed-mode CDs (CD-Extra support)
* VCDs (1.1, 2.0 and SVCD)
* ISO files (Joliet/Rockridge and El Torito support)
* eMovix CDs
For more information, visit the homepage at http://www.k3b.org
This package is built with dvd ripping support. Therefore, it is in Medibuntu as it might
This package isn't supported by Ubuntu: DON'T REPORT BUGS TO UBUNTU!
Please report any bug to our bug tracker instead:
https://bugs.launchpad.net/medibuntu/+bugs - Description of the package, enough said.
That's all the basic and moderately advanced commands. Those will get you through 90% of life. I also hope the complete explanations here allow you to understand how it all works.
2f) Advanced Package Management
This section will contain advanced commands, these will likely be used much less often but I will cover them anyway. I won't need too much detail for these, by now I assume your comfortable with the general structure of aptitude commands. I'll just list the commands and give a brief explanation. Some of these commands can be done much easier with Synaptic, more on that later though.
This is the hold command. There are some instances where you need to freeze a package because you know an existing bug with the update in the repos will affect you, or some other reason (I've actually done this often enough). In short, holding a package prevents any attempt by aptitude to modify or change it. Do note, this is a permanent status your applying to the package it will persist until removed.
sudo aptitude hold k3b libk3b2-mp3
Of course if there is a hold command..... there is an unhold command.
Like it says, this will remove the frozen/hold status from the package and allow you to update it normally. That's all it does.
sudo aptitude unhold k3b libk3b2-mp3
Next is a bit of cleaning.
As I said before, aptitude will cache the installers of all the packages you install. It is a good measure for when you need to reinstall or take other such actions. Sometimes it starts to take up space and you simply want to get rid of all the cached installers. This command does just that, it clears out the whole cache in one go (no need to designate packages).
sudo aptitude clean
This command is much more useful. Rather than purging the entire cache, this one will simply remove installers for old and outdated packages, as well as those you've removed. Run this as often as you like, it's not often you go back to an old version.
sudo aptitude autoclean
There are 4 commands I won't be covering, I've never used them... they are: keep, markauto, unmarkauto and forbid-version. I don't see a reason for using these, if someone else wishes to explain their function and make the section I will be only too happy to add it.
Now, there is a really cool and yet a bit complicated feature of aptitude to explain. Up until now all commands have had a single purpose (i.e. you told aptitude to install all packages following or remove them all, whatever the action it applied to all packages the same.). This doesn't have to be the case interestingly enough. This is a bonus, that doesn't really bring anything new. Just makes doing lots of management easy.
I will explain this best with a giant example rather than breaking it down individually. Say I have 4 packages I want to modify with my commands, they are: k3b, vlc, gnomebaker and bittornado. I want to install k3b, remove vlc, purge gnomebaker (it's hypothetically been giving me trouble) and hold bittornado. I can do that all with one command, like so:
Voila, 4 different actions taken with one command. Notice, after vlc I put a minus, and after gnomebaker I put an underscore, bittornado an = (if it wasn't an install command at the beginning a + after k3b would have installed it). These are collectively called override specifiers, they do exactly what they say specify a command that overrides the default one (in my example the default is to install packages listed). Like all other commands there is no limit to how many packages and overrides you can use. Oh and remember there isn't any space between package and override, it always goes directly after. I will list the common overrides here in point form.
sudo aptitude install k3b vlc- gnomebaker_ bittornado=
- A + after a package will override and install the package.
- A - after a package will override and remove the package.
- A _ after a package will override and purge the package.
- An = after a package will override and place the package on hold.
That's it for the explanation on CLI commands. I've covered practically everything you will need to know. For any additional commands regarding aptitude please look at the manual page for it. That can be gotten from this command:
There are manual pages for any command (i.e. aptitude, wget, apt-key...) you can use in the terminal, consult them when you need a bit of extra help. A word of warning, they aren't written as explicitly as this guide and a base/moderate understanding is required usually, they can also sometimes be worded difficultly. There are a whole host of modifiers (lexicon) that I never covered, so feel free to look at those if your interested. Most of all, when it comes to commands I encourage you to experiment and try them all for yourself. Just like everything else the more you actually do and practice the better you will be at it.
That is all I have to explain when it comes to CLI, now on to GUI.