Mandriva Linux Rpmdrake and URPMI HOWTO (unreleased 0.3 test revision)

by Eskild Hustvedt (Zero_Dogg) - eskild [at] mandriva [dot] org

Revision 0.3

Copyright (c) 2005 Eskild Hustvedt.
Permission is granted to copy, distribute and/or modify this document under
the terms of the CreativeCommons Attribution-ShareAlike license version 2.5
A summary of the license can be found here, the full license here.

1 Introduction

2 Graphical (rpmdrake)

3 Console (urpm/rpm)

4 Other


1 INTRODUCTION

1.1 Introduction

This howto is written for users of Mandriva Linux that wants to learn (more?) about how to install, remove and update RPM's using the tools included in the Mandriva Linux distribution.

It is not universal and is only written for the Mandriva Linux distribution and does not apply to other distributions that use other package management systems.

1.2 What is RPM?

RPM is a packaging system for Linux originally developed by Red Hat (but now maintained independendly), and are used by many of the major Linux distributions, including (but not limited to) Mandriva Linux, RedHat, Fedora Core and SUSE. RPM is short for "RPM Package Manager". It makes installing and maintaining installed software in Linux easy. An RPM package contains either the entire compiled (binary) software, or in some rare cases the source code for the software so that you may compile it yourself (called a SRPM or Source RPM). Mandriva has developed some tools that makes keeping your system up-to-date, installing, removing and upgrading RPM's easier. All the tools described in this HOWTO are created by Mandriva with the exception of "rpm" wich is the original rpm tool.

On a technical note, an RPM is really a CPIO archive with gzip or bzip2 compression.

1.3 Graphical or console tools?

Choosing which tool you want to use is a matter of taste more than anything else. If you are new to Linux/Unix and not fammillar with using the commandline I would recommend that you start by using the graphical tools and perhaps move on to the commandline ones later. If, however, you are experienced with the use of the commandline you might want to use the console tools instead. With time, try them both and decide which one you like best, it's all a matter of preference.


2 GRAPHICAL (rpmdrake)

2.1 Quick description

COMMAND: Description: Section:
rpmdrake Installs RPM's from URPM sources

2.3

rpmdrake-remove Removes (uninstalls) installed RPM's

2.4

edit-urpm-sources.pl Edits URPM sources

2.5

MandrakeUpdate Updates your system

2.6

2.2 Introduction to rpmdrake

RPMDrake is divided into four tools, each of which has a different task as you can see above. Rpmdrake is the graphical way to install, remove and update packages on your system.

2.2.1 How to start rpmdrake

rpmdrake is the tool that installs software on your computer, you can start it by using one of the following methods:

- Open up your menu, select System -> Configuration -> Configure your computer
   Then choose: Software Management -> Install

- Open up your menu, select System -> Configuration -> Packaging -> Install Software

- Open up a terminal emulator and type: rpmdrake --root

2.2.2 How to start rpmdrake-remove

rpmdrake-remove is the tool that removes software from your computer, you can start it by using one of the following methods:

- Open up your menu, select System -> Configuration -> Configure your computer
  Then choose: Software Management -> Remove

- Open up your menu, select System -> Configuration -> Packaging -> Remove Software

- Open up a terminal emulator and type: rpmdrake-remove --root

2.2.3 How to start MandrakeUpdate

MandrakeUpdate is the tool that helps you update your installed software, you can start it by using one of the following methods:

- Open up your menu, select System -> Configuration -> Configure your computer
  Then choose: Software Management -> Update

- Open up your menu, select System -> Configuration -> Packaging -> Mandrakelinux Update

- Open up a terminal emulator and type: MandrakeUpdate

2.2.4 How to start edit-urpm-sources.pl

edit-urpm-sources.pl is the graphical urpm media configuration program. You can start it by using one of the following methods:

- Open up your menu, select System -> Configuration -> Configure your computer
  Then choose: Software Management -> Media Manager

- Open up your menu, select System -> Configuration -> Packaging -> Software Media Manager

- Open up a terminal emulator and type: edit-urpm-sources.pl

2.3 Installing

Installation in rpmdrake is really easy, first start rpmdrake.
You will then be presented with a window similar to this:
Screenshot of rpmdrake

[1] is where you select what you want to search. It can be package names, descriptions or files
[2] is where you enter what you want to search for.
[3] is where you select which packages you want to view. Selecting "Mandrakelinux choices" can be a good idea for beginners
[4] is where you can browse the available packages, clicking the square box on the left side of a package selects it for installation.
[5] is where information about the currently selected package will appear.
[6] is the button you click to install the packages you selected in [4].
[7] is the button you click to update your urpm sources, it's a good idea to click this once in a while in case some updates are out.

2.4 Removing (uninstalling) RPM's

Removing software using rpmdrake is just as easy as installing and the procedure is almost identical. First start rpmdrake-remove.
You will then be presented with a window similar to this:
Screenshot of rpmdrake-remove
[1] is where you select what you want to search. It can be package names, descriptions or files
[2] is where you enter what you want to search for.
[3] is where you select which packages you want to view. Selecting "Mandrakelinux choices" here might not have the desired effect since that might hide the package you are trying to remove.
[4] is where you can browse the available packages, clicking the square box on the left side of a package selects it for removal.
[5] is where information about the currently selected package will appear.
[6] is the button you click to remove the packages you selected in [4].

2.5 Update your system

Updating software using rpmdrake is also just about identical to installing/removing. First Start MandrakeUpdate.
A question box similar to this will then pop up:
MandrakeUpdate prompt

Make sure that you are connected to the internet then click "Yes".

If this is the first time you're running MandrakeUpdate, the following window will appear (if it isn't, skip ahead):
Screenshot of MandrakeUpdate's mirror list
Here you choose the mirror you want to download the updates from. Select the one that is closest to you geographically, then click "Ok".

Now you will need to wait a little bit while it updates your update source information.
How long this will take depends upon your connection, but you should have a pretty progress bar to look at.
Once that is done, you will see a screen similar to this one:
Screenshot of MandrakeUpdate
[1] is where you select what you want to search. It can be package names, descriptions or files.
[2] is where you enter what you want to search for.
[3] is where you select which type of updates you want to install. I suggest you select all of them.
[5] is where you can browse the available choices. I suggest you just select them all [4].
[6] is where information about the currently selected package will appear.
[7] is the button you click to download and install the updates.
[8] is the button you click if for some reason you want to update your urpm media information again.

2.6 Adding/removing URPM sources

Start the rpmdrake URPM source editing tool by choosing "Configuration->Packaging->Software sources manager" in your favourite window manager or desktop, or by entering edit-urpm-sources.pl in a console. When you have done this you may do any of the additional things described in this section. When you are done you may click "Save and quit" to do exactly that, or simply Quit to not save your changes.

2.6.1 Overview

Screenshot of the Mandrakelinux Media Manager
[1] If this is checked then the source is enabled. If it isn't then it's disabled.
    If you disable the media (by unchecking the checkbox) you will not be able to install from this media while it is disabled.
[2] This is the name of the media.
[3] Click this button to remove the selected media.
[4] Click this button to edit the selected media..
[5] Click this button to add a new urpm media, see sectin 2.6.2 for more information.
[6] Click this button to update the selected media.
[7] Click this button to manage your gpg keys, don't mess with this i you don't know what you're doing.
[8] Click this button to set up your proxy for use with rpmdrake.
[9] Click this button to configure paralell urpmi (distributed execution of urpmi). See the respective documentation for more information about this.

2.6.2 Adding new URPM sources
2.6.2.1 FTP Sources

Screenshot of Mandrakelinux Media Manager: Add a new urpm source
[1] Here you select which type of medium you want to add. This is usually ftp or removeable device.
    If you need to add a Security Update source, then you should just follow the instructions in section 2.5
    I will explain how to add ftp and removable sources here.
[2] Here you enter the name of the source you want to add - this can be just about anything you want.
[3] Here you enter the URL to the source you are adding, for instance:
    ftp://ftp.uninett.no/pub/unix/Linux/Mandrakelinux/official/10.1/i586/media/main
[4] Here you enter the Relative path to the HDLIST
[5] Here you enter the username/password to log into the ftp. This is rarely used.

2.6.2.2 Removable sources

Screenshot of Mandrakelinux Media Manager: Add a new urpm source
[1] This is where you enter the name of the source you awnt to add - this can be just about anything you want.
[2] This is where you either enter or browse your way to the directory on the CD-ROM/DVD-ROM that contains the RPMs.
    for instance: /mnt/cdrom/media/main
[3] Here you enter the Relative path to the HDLIST
    for instance: ../media_info/hdlist1.cz

2.7 Browsing the RPM Database as a user

When you are browsing the RPM database as a user, the interface is the same as explained in sections 2.3 and 2.4, but you will not have the ability to install or remove software, just browse it.
To start rpmdrake as a user you can use one of the following methods:

- Open up your menu, select System -> Configuration -> Configure your computer -> Browse Available Software

- Open up a terminal and type: rpmdrake


3 CONSOLE (urpm/rpm)

3.1 Quick description

COMMAND: Description: Section: Usage:
urpmi Installs local RPM's or RPMs from URPM sources

3.2

urpmi [packagename or file.rpm]
urpme Removes (uninstalls) installed RPM's

3.3

urpme [program]
urpmi.addmedia Adds a URPM source

3.5.1/3.5.2

urpmi.addmedia [name] [URL or Path] with [relative path to hdlist]
urpmi.removemedia Removes a URPM source

3.5.3

urpmi.removemedia [name]
urpmi.update Updates your URPM sources

3.6

urpmi.update [NAME or -a (to update all)]
urpmf Lists packages containing the file specified

3.7

urpmf [file]
urpmq Lists available URPMI packages

3.8/3.9

urpmq (-i for verbose info.) [package]

3.2 Installing

There are two ways to install an RPM using urpmi. You can either install a local rpm (an RPM on your hard drive) or you can install from a URPM source. Both of which you will probably use often so read both of those sections.

3.2.1 From a local RPM

When installing from a local RPM there are a few things you must make sure of first. The RPM must have "mdk" (or src) in it's name. This is because then you know that the rpm has been specially built for Mandrakelinux. Installing RPM's built for other systems it can mess things up a bit, and the software you installed may not work. I say can, because in many cases they don't mess anything up - but they can.
To install a local RPM you first have to open up a console. Then you enter "su" and when prompted, your root password. If the RPM is not saved in the current directory (which will be your home directory) you have to cd to the directory containing the rpm (you can give URPMI the complete path to it too but to cd to the dir is easier). If you don't know how to cd to a dir you probably should learn how to use a console a bit more (see section 4.1 for descriptions of some simple console commands). When you are in the directory containing the RPM, enter "urpmi ./[Name of RPM]".

urpmi will now prompt you for any additional dependencies it needs to install and if you accept the dependencies it will then install the RPM.

Example:


[user@localhost user]$ su
Password:
[root@localhost user]# urpmi ./someprogram-2.3.1.mdk.i586.rpm
installing ./someprogram-2.3.1.mdk.i586.rpm

Preparing...                      ##################################################
    1:someprogram            ##################################################

3.2.2 From a URPM source

If you are connected to the internet I reccomend that you use online URPM sources, rather than your own install CDs. Online sources contain more packages than your CDs and the update source provides you with the latest versions of the available packages. (see section 3.5.1 on how to add the  sources) To install from a URPM source, you as always open up a console, enter "su" and when prompted, your root password. Then you enter "urpmi [package]".

URPMI will now search the sources it has defined for the package you specified and prompt you for any additional dependencies it needs. If you accept the dependencies it will download and install both the package supplied and it's dependencies automatically.

Example:

[user@localhost user]$ su
Password:
[root@localhost user]# urpmi someprogram

     ftp://ftp.example.org/linux/mandrakelinux/official/10.1/i586/media/main/someprogram-2.3.1.mdk.i586.rpm
installing /var/cache/urpmi/rpms/someprogram-2.3.1.mdk.i586.rpm

Preparing...                      ##################################################
    1:someprogram            ##################################################

3.3 Removing (uninstalling) RPM's

To remove (uninstall) an rpm you use the "urpme" tool. As usually you open up a console and enter "su" then your root password. Then you enter "urpme [package to remove]". You will then be prompted if you really want to remove the package and all packages that depend on it. Remember to read the list of packages being removed in case you're removing something important or something you use.

Example:


[user@localhost user]$ su
Password:
[root@localhost user]# urpme someprogram

removing someprogram-2.3.1.mdk.rpm

3.4 Compiling a source RPM

When you get a source rpm (usually an RPM ending with *.src.rpm) you as usual open up a console and enter "su" and when prompted, your root password. Then cd to the directory containing the rpm. Then enter "rpm --rebuild ./[src.rpm]". It will now build the rpm, when it's done it will display a message a bit up on the sceen saying "somerpm was written to someplace" or "Wrote: /usr/src/RPM/someplace". "cd" to "someplace" and follow the normal installation procedures (section 3.2.1).

Example:


[user@localhost user]$ su
Password:
[root@localhost root]# rpm --rebuild ./someprogram-2.3.1.src.rpm
...Compile garbage...
...garbage...
Wrote: /usr/src/RPM/RPMS/i586/someprogram-2.3.1.mdk.i586.rpm
..more garbage...
[root@localhost user]# cd /usr/src/RPM/RPMS/i586/
...Perform normal local installation procedure (3.2.1)

You may end up with more than one RPM being saved to that spot, depending on what binary packages the one src.rpm provides. Examples include a pkgname-devel-4.i586.rpm, in which case if you wish to compile using functions of the package, you would also install this second package, and not just the first binary package.

3.5 Adding/removing urpm sources

  3.5.1 Adding online sources using "easy URPMI"

This is my preffered method to add URPM sources, it's quick and easy. You simply open up http://www.linuxfordummies.org/addmedia/ in your favourite webbrowser and from there on just follow the instructions on that page. Remember to check "Show specific sources too".
I recommend to add the "main", "contrib", "updates" and "plf" sources. I also recommend that you do a "urpmi.removemedia -a" (see section 3.5.3 for more information) before adding the sources as this will give you a nice and clean URPM setup.

Just one word of warning - to download any of these packages, you will have to be online. Also, if you do not have your CD sources listed, you MUST have the "main", "contrib" and "updates" sources mentioned to replace them with.

3.5.2 Adding Sources manually
3.5.2.1 Online sources

The first thing you have to do is find a mirror, you can do this on the download page at mandrakelinux.com. When you have found a mirror and the hdlist file for it you open up a console and enter "su" then your root password. Now enter "urpmi.addmedia [NAME] [URL] with [RELATIVE PATH TO HDLIST]". Where [NAME] is the name you want the source to have. [URL] is the URL to the directory containing the RPM's in one of the following ways:

http://[host]/[path]
ftp://[host]/[path]
ftp://[login]:[password]@[host]/[path]

And finally [RELATIVE PATH TO HDLIST] is the path to the hdlist file for the mirror (usually named hdlist.cz but on official mirrors is not in the directory contining the rpms (but in ../base/hdlist.cz for normal source and ../../i586/Mandrake/base/hdlist2.cz for contrib))

Example:


[user@localhost user]$ su
Password:
[root@localhost root]# urpmi.addmedia contrib ftp://ftp.sunet.se/pub/Linux/distributions/mandrake/9.1/contrib/RPMS with ../../i586/Mandrake/base/hdlist2.cz
added medium contrib
examining synthesis file [/var/lib/urpmi/synthesis.hdlist.main.cz]
examining synthesis file [/var/lib/urpmi/synthesis.hdlist.updates.cz]
examining synthesis file [/var/lib/urpmi/synthesis.hdlist.plf.cz]
retrieving description file of "contrib"...
retrieving source hdlist (or synthesis) of "contrib"...
    ftp://ftp.sunet.se/pub/Linux/distributions/mandrake/9.1/i586/Mandrake/base/hdlist2.cz
...retrieving done
examining MD5SUM file
examining hdlist file [/var/cache/urpmi/partial/hdlist.contrib.cz]
writing list file for medium "contrib"
built hdlist synthesis file for medium "contrib"
found 0 headers in cache
removing 0 obsolete headers in cache
write config file [/etc/urpmi/urpmi.cfg]

3.5.2.2 Local and removeable sources

Adding local sources is mostly the same way as adding online sources. Open up a console, enter "su" then root's password.

Now you enter "urpmi.addmedia [NAME] [PATH] with [RELATIVE PATH TO HDLIST]". Where [NAME] is the name you want the source to have, [PATH] is the path to the directory containing the RPM's in one of the following ways:

file://[path]
removable://[path]

and [RELATIVE PATH TO HDLIST] is the relative path to the hdlist file for the source, which, for a Mandrakelinux CD, will be in ../base/hdlist.cz for normal source and ../base/hdlist2.cz for the contrib source. The hdlist files are not usually stored in the same directories as the RPMs they are for.

Example:


[user@localhost user]$ su
Password:
[root@localhost root]# urpmi.addmedia CD2 removable://mnt/cdrom/Mandrake/RPMS2 with ./synthesis.hdlist2rpms.cz
examining synthesis file [/var/lib/urpmi/synthesis.hdlist.main.cz]
examining synthesis file [/var/lib/urpmi/synthesis.hdlist.contrib.cz]
examining synthesis file [/var/lib/urpmi/synthesis.hdlist.updates.cz]
examining synthesis file [/var/lib/urpmi/synthesis.hdlist.plf.cz]
copying source hdlist (or synthesis) of "CD2"...
...copying done
examining hdlist file [/var/cache/urpmi/partial/hdlist.CD2.cz]
examining synthesis file [/var/cache/urpmi/partial/hdlist.CD2.cz]
found 0 headers in cache
removing 0 obsolete headers in cache
write config file [/etc/urpmi/urpmi.cfg]

3.5.3 Removing sources

First, open up a console and enter "su" then root's password. Then enter "urpmi.removemedia [name]" where [name] is the name of the source you want to remove. If you do not know the name of the source you can enter "urpmi.removemedia" for a list of sources. Alternatively you can enter "urpmi.removemedia -a" which will remove all sources you have (this is especially useful when you're adding online sources to replace the local cd sources).

Example:


[user@localhost user]$ su
Password:
[root@localhost user]# urpmi.removemedia CD2
removing medium "CD2"
examining synthesis file [/var/lib/urpmi/synthesis.hdlist.main.cz]
examining synthesis file [/var/lib/urpmi/synthesis.hdlist.contrib.cz]
examining synthesis file [/var/lib/urpmi/synthesis.hdlist.updates.cz]
examining synthesis file [/var/lib/urpmi/synthesis.hdlist.plf.cz]
found 0 headers in cache
removing 0 obsolete headers in cache
write config file [/etc/urpmi/urpmi.cfg]

3.5.4 Updating sources

Yet again open up a console and enter "su" then root's password. Then you enter "urpmi.update [name]" where name is the name of the source you want to update. If you do not know the name of the source you can enter "urpmi.update" for a list. An even better way to do it is to use "urpmi.update -a" which will update all of your sources.

Example:


[user@localhost user]$ su
Password:
[root@localhost user]# urpmi.update contrib
examining synthesis file [/var/lib/urpmi/synthesis.hdlist.main.cz]
examining synthesis file [/var/lib/urpmi/synthesis.hdlist.contrib.cz]
examining synthesis file [/var/lib/urpmi/synthesis.hdlist.updates.cz]
examining synthesis file [/var/lib/urpmi/synthesis.hdlist.plf.cz]
retrieving description file of "contrib"...
retrieving source hdlist (or synthesis) of "contrib"...
...retrieving done
examining hdlist file [/var/cache/urpmi/partial/hdlist.contrib.cz]
writing list file for medium "contrib"
built hdlist synthesis file for medium "contrib"
found 0 headers in cache
removing 0 obsolete headers in cache
write config file [/etc/urpmi/urpmi.cfg]

3.6 Getting the latest updates

First open up a console and enter "su" and root's password. Then enter "urpmi.update -a && urpmi --auto-select". This will update your sources and get the latest versions of your installed RPM's. "urpmi.update -a" updates your sources as explained in section 3.5.4, while "urpmi --auto-select" auto-selects all new versions of your installed RPM's.

A trick if you're too lazy to update manually is to put up a cron job in /etc/cron.daily (or wherever you want it) which contains this bash script:

#!/bin/bash
urpmi.update -a
urpmi urpmi # Make sure we have the latest urpmi
urpmi --auto --auto-select

This will do the job for you. Remember to "chmod +x" it. Alternatively you can change "urpmi --auto --auto-select" to "urpmi --update --auto --auto-select" which then will only get packages from your update source(s).

3.7 Which package contains your file?

To find out which package contains a file, open up a console and enter "urpmf [file]".

Example:


[user@localhost user]$ urpmf someprogram
someprogram:/usr/bin/someprogram

3.8 List available URPMI packages

To list available URPMI packages, open up a console and enter enter "urpmq [name]". This will display all packages containing the supplied name (unless there is an exact match, where only the exact match will be displayed). If you want to list all available update packages enter "urpmq --update".

Example:


[user@localhost user]$ urpmq someprogram
someprogram
[user@localhost user]$ urpmq libxmms
libxmms1
libxmms1-devel
[user@localhost user]$ urpmq --update
someprogram

3.9 List information on a URPMI package

NOTICE: This requires Mandrakelinux 9.2 and newer (urpmi 4.4 or newer)
To list information on a package you open up a console and enter "urpmq -i [name]". This will display Name, version, release, group, size, architecture and summary.

Example:


[usere@localhost ~]$ urpmq -i urpmi
Name        : urpmi
Version     : 4.6.24
Release     : 3mdk
Group       : System/Configuration/Packaging
Size        : 3519910                      Architecture: noarch
Source RPM  : urpmi-4.6.24-3mdk.src.rpm      Build Host: n1.mandrakesoft.com
Packager    : Rafael Garcia-Suarez
URL         : http://cvs.mandrakesoft.com/cgi-bin/cvsweb.cgi/soft/urpmi
Summary     : Command-line software installation tools
Description :
urpmi is Mandrakelinux's console-based software installation tool. You can
use it to install software from the console in the same way as you use the
graphical Install Software tool (rpmdrake) to install software from the
desktop. urpmi will follow package dependencies -- in other words, it will
install all the other software required by the software you ask it to
install -- and it's capable of obtaining packages from a variety of media,
including the Mandrakelinux installation CD-ROMs, your local hard disk,
and remote sources such as web or FTP sites.
	

3.10 URPMI reference for apt users

As it has been a little while since I used apt (and dpkg) this list is not complete.
If you have any suggestions or see something missing, don't hesitate to contact me.
APT command: urpmi command:
apt-get install package urpmi package
apt-get remove package urpme package
apt-cache show package urpmq -i package
dpkg -i ./package urpmi ./package

/etc/apt/sources.list is replaced by a tool called "urpmi.addmedia" and "urpmi.removemedia".
If you really want to look at the config yourself it is at /etc/urpmi/urpmi.cfg


4 OTHER

4.1 Simple command descriptions

Command: Description:
cd X Changes the current working directory to X
man X Displays the man (manual) page for X
info X Displays the info page for X
exit Exit the console (or log out if in "su")
df Display filesystem info (such as free space)
su (x) When no X is specified, log in as root. If X is specified, log in as X.

For a larger command list see http://mandrakehelp.com/commands.html

4.2 FAQ

1 - What is PLF?
2 - How do I make urpmi not delete downloaded packages?
3 - How can I make urpmi use wget instead of curl?
4 - Can I use rpm's from cooker in a stable distribution?
5 - Can I upgrade my Mandrakelinux system to a newer Mandrakelinux release using urpmi?
6 - How can I upgrade a RPM?
7 - What is the "Relative path to the HDLIST"?

Question #1: What is PLF?
Answer: PLF stands for the Penguin Liberation Front. It is a RPM package repository that contains packages that cannot be included in the Mandrakelinux distro for legal reasons.
See http://plf.zarb.org/ for more information

Question #2: How do I make urpmi not delete downloaded packages?
Answer: To make urpmi keep the downloaded packages in /var/cache/urpmi/rpms, run urpmi with "--noclean".
Remember, you have to run urpmi with "--noclean" every time you run it, if you run it once without "--noclean" all the rpm's will be deleted.

Question #3: How can I make urpmi use wget instead of curl?
Answer: To make urpmi use wget instead of curl you have to run urpmi with "--wget".
If you don't have curl installed, urpmi will automatically use wget.

Question #4: Can I use rpm's from cooker in a stable distribution?
Answer: NO! Do not use RPM's from cooker on a stable distribution! It has the potential to seriously mess up your system.

Question #5: Can I upgrade my Mandrakelinux system to a newer Mandrakelinux release using urpmi?
Answer: It is possible to upgrade your system using urpmi, however this is not supported and may not work.
It is strongly recommended that you do not use urpmi to upgrade your system. Either use the installation cd-rom's or a netinstall floppy.

Question #6: How can I upgrade a RPM?
Answer: To upgrade a local RPM you do just the same as when installing (section 3.2.1).
Urpmi will notice that a older version of the package is installed and upgrade it automatically.

Question #7: What is the "Relative path to the HDLIST"?
Answer: To explain what the relative path to the hdlist is, I first have to explain what a relative path is.
Say that you have a directory called "bin" in your home directory which is /home/nobody/
In /home/nobody/bin/ you have a executeable called "gfsgl". You are in a commandline and your working
directory is /home/nobody/Documents/. There is two ways to start this file now (unless bin is in $PATH but in this example, it is not):
Either run the file with it's complete path which is /home/nobody/bin/gfsgl or by it's relative path.
The relative path is ../bin/gfsgl. ".." means the directory one level above your current working directory.

When urpmi/edit-urpm-sources.pl want's the relative path to the Synthesis/HDLIST it want's just that.
So if the ftp server's URL is "ftp://ftp.sunet.se/pub/Linux/distributions/mandrakelinux/official/10.1/i586/media/main" then
the "working directory" is "/pub/Linux/distributions/mandrakelinux/official/10.1/i586/media/main".
The HDLIST is at "ftp://ftp.sunet.se/pub/Linux/distributions/mandrakelinux/official/10.1/i586/media/main/media_info/hdlist.cz"
so the relative path to the HDLIST becomes "media_info/hdlist.cz".

In older versions of Mandrakelinux (pre-10.1) a FTP server's URL would look more like this:
ftp://ftp.sunet.se/pub/Linux/distributions/mandrakelinux/official/10.0/i586/Mandrake/RPMS
the HDLIST would then be at ftp://ftp.sunet.se/pub/Linux/distributions/mandrakelinux/official/10.0/i586/Mandrake/base/hdlist.cz
and the relative path to the HDLIST would be "../base/hdlist.cz"

4.4 Revision history

0.3 (?? ???? 2005)
FIXME! TODO! FIXME!

0.2 (30 December 2004)
* Minor changes to sections:
	* 3.2.1, 3.2.2, 3.5.1, 3.5.3,
* Rewritten sections:
	* 1.3
	* 2.3, 2.4, 2.5, 2.6
* Added sections:
	* 2.2, 2.7
* Added FAQ #7
* The rpmdrake (graphical) part (Section 2) now has screenshots (from Mandrakelinux 10.1)
* Replaced all instances of "Mandrake" or "Mandrake Linux" with "Mandrakelinux"

0.1-4
* Added section 4.2 - FAQ (and moved old 4.2 to 4.3)
* Rewrite of section 1.2
* Nearly rewritten section 3.5.1
* Minor changes to sections:
	* 1.3
	* 2.2 - 2.3 - 2.5
	* 3.2 - 3.2.1 - 3.2.2 - 3.5.3 - 3.5.4
* Fixed bad typo section 3.5.2.2 (removeable was suppose to be removable)
* Added section 3.9
* Now includes (in-document) links
* All examples in section 3 reworked.

0.1-3
* Converted to HTML and minor additions to some sections by Viking667

0.1-2
* Minor changes to sections:
	* 1.1 - 1.2 - 1.3
	* 2.1
	* 3.1 - 3.2.1 - 3.2.2 - 3.3 - 3.4 - 3.5.2.1 - 3.5.2.2
	* 4.1
* Added more examples for the Console sections
* Fixed grammar ;)
* Added section 3.7
* Added section 3.8

0.1
* Initial revision - 337 lines