APT for RPMSimplified package management
for rpm based distributions
INFN - Napoli 1
INFM - UDR Napoli 2
HEPiX/HEPNT 2003 – Vancouver
Rosario Esposito1
Francesco Maria Taurino1,2
Gennaro Tortone1
HEPiX/HEPNT 2003 – Vancouver 2
Linux strengths allowed this operating system to gain a central place in the IT market
Package management played an important role in this process
The Linux system’s coherency is assured maintaining databases of installed files. In this way installing or removing programs gets an easy task
Nowadays only few programs are installed using source files
Linux
HEPiX/HEPNT 2003 – Vancouver 3
In more widespread linux distributions, programs are distributed in binary RPM, DEB or modified TGZ formats
RPM (RedHat Package Management) packages are used on RedHat, Mandrake, Suse, Conectiva
DEB are used on the open source distribution Debian and its forks
Modified TGZ are used on SlackWare
Packages
HEPiX/HEPNT 2003 – Vancouver 4
Dependencies management is a very useful feature of package management software
They keep systems in a consistent state and guarantee the applications to run in the expected way
rpm or dpkg commands have limited dependencies management features
They can report which library a package relies on, but the library can itself relies on other packages…
Dependencies
HEPiX/HEPNT 2003 – Vancouver 5
System Administrator After installation, usually an os needs some
updated packages Experiment
Experiment software has to be installed on machines
Grid Add grid programs to installed machines
Scenarios
HEPiX/HEPNT 2003 – Vancouver 6
Installing a package “mod_test1” : # rpm -Uvh mod_test1-xxx.rpm
error: failed dependencies:package-a1 is needed by mod_test1
# rpm -Uvh package-a1-xxxx.rpmerror: failed dependencies:
package-b2 is needed by package-a1 # rpm -Uvh package-b2-xxxx.rpm And so on…
Dependencies - Example
HEPiX/HEPNT 2003 – Vancouver 7
Up2date – RedHat RedCarpet – Ximian YOU (YaST Online Update) – Suse YUP (YellowDog Updater) – YellowDog PPC Urpmi – Mandrake YUM (YellowDog Updater Modified) APT (Advanced Packaging Tool) – Debian (and
rpm...)
Some solutions
HEPiX/HEPNT 2003 – Vancouver 8
Up2date, RedCarpet, YOU and YUP solve the dependencies and upgrade problems for rpm. RedCarpet is also available for Debian
They are bounded to RedHat, Ximian, Suse and YellowDog distribution servers, or their mirrors
They require expensive software in order to create ad-hoc software repository, so if a package is not available on their repositories it’s not installable with these tools
Typically they have an X or ncurses interface Usually they cannot be used in non-interactive
way
Up2date et al...
HEPiX/HEPNT 2003 – Vancouver 9
HEPiX/HEPNT 2003 – Vancouver 10
Urpmi is a wrapper for the rpm commands Available only for Mandrake distributions It’s possible to use package repositories
different from the Mandrake official ones It has a good graphical front-end, but all
functions are also available in command line and in non-interactive mode
There are several commands for various functions
Urpmi (1/2)
HEPiX/HEPNT 2003 – Vancouver 11
Urpmi (2/2)
urpmi.addmedia, urpmi.removemedia: add and remove a media used by urpmi
urpmq : query the package database urpmf : search the packages which contain the
given file name urpmi : package installation Automatic upgrade on a Mandrake machine
# urpmi.update update_source ; urpmi --auto --auto-select--media update_source
HEPiX/HEPNT 2003 – Vancouver 12
YUM is a fresh project, based on YUP It’s written in python and exploits some
portions of code of Anaconda, the RedHat installer
With YUM you can create ad-hoc packages repositories
Currently available only for RedHat Its logic is slightly different from APT YOUNG, BUT VERY POWERFUL… http://linux.duke.edu/projects/yum
YUM
HEPiX/HEPNT 2003 – Vancouver 13
APT is a system created in the Debian community to automatically manage the packages dependencies
APT can install, remove and upgrade packages, managing dependencies and downloading the packages
It’s a frontend to other tools, and it uses the underlying package management system, like the rpm or dpkg commands
It’s able to fetch packages from several media (cdrom, ftp, http, nfs), and it can be used to create ad-hoc software repositories
APT
HEPiX/HEPNT 2003 – Vancouver 14
APT – Using (1/3)
[root]@[/] # apt-get install nautilusReading Package Lists... DoneBuilding Dependency Tree... DoneThe following extra packages will be installed: bonobo libmedusa0 libnautilus0The following NEW packages will be installed: bonobo libmedusa0 libnautilus0 nautilus0 packages upgraded, 4 newly installed, 0 to remove and 1
not upgraded.Need to get 8329kB of archives. After unpacking 17.2MB
will be used.Do you want to continue? [Y/n]
HEPiX/HEPNT 2003 – Vancouver 15
APT – Using (2/3)
[root]@[/] # apt-get remove gnome-panelReading Package Lists... DoneBuilding Dependency Tree... DoneThe following packages will be REMOVED: gnome-applets gnome-panel gnome-panel-data gnome-
session0 packages upgraded, 0 newly installed, 4 to remove and 1
not upgraded.Need to get 0B of archives. After unpacking 14.6MB will be
freed.Do you want to continue? [Y/n]
HEPiX/HEPNT 2003 – Vancouver 16
APT – Using (3/3)
[root]@[/] # apt-cache search pdfkghostview - PostScript viewer for KDEtetex - The TeX text formatting system.xpdf - A PDF file viewer for the X Window System…
[root]@[/] # apt-cache show xpdf…Filename: xpdf-1.00-3.i386.rpmDescription: A PDF file viewer for the X Window System.Xpdf is an X Window System based viewer for Portable
Document Format (PDF) files. Xpdf is a small and efficient program which uses standard X fonts.
HEPiX/HEPNT 2003 – Vancouver 17
Brazilian distribution Conectiva ported the apt system on its linux distribution, which uses rpm packages
Apt is now available for all distributions using rpm, also thanks to the SourceForge project apt4rpm (http://apt4rpm.sourceforge.net)
Some features of Debian apt are not yet available, like package priority or requests to change configuration files, because of some differences in deb and rpm format
APT for RPM
HEPiX/HEPNT 2003 – Vancouver 18
Create the directory tree <arch>/RPMS.os, <arch>/RPMS.updates,
<arch>/base (for apt specific files)Ex: /linux/apt/redhat/7.3/i386/RPMS.os
In RPMS.os: copy the distribution rpms In RPMS.updates: copy the updates rpms
Give the command genbasedir --topdir=/linux/apt --bloat --bz2only
redhat/7.3/i386 os (for “os” section) genbasedir --topdir=/linux/apt --bloat --bz2only
redhat/7.3/i386 updates (for “updates” section)
APT – repository creation
HEPiX/HEPNT 2003 – Vancouver 19
Create an apache virtual host<VirtualHost *>
ServerName apt.na.infn.it
DocumentRoot /linux/apt
<Directory /linux/apt>
Options +Indexes
</Directory>
</VirtualHost>
The source.list file to access this repository is
rpm http://apt.na.infn.it redhat/7.3/i386 os updates
APT – repository source.list
HEPiX/HEPNT 2003 – Vancouver 20
We have an apt repository in our campus in Naples, accessible at
http://apt.na.infn.it
apt packages for RedHat 7.2, 7.3, 8 e 9 and corresponding sources.list files for os and updates are available on this site
Updates rpms and apt lists are updated every night
APT – Naples repository
HEPiX/HEPNT 2003 – Vancouver 21
YellowDog Linux PPC includes apt New RedHat beta distro includes apt Suse is plannig to include apt
Some public repositories for RedHat
www.freshrpms.net apt-rpm.tuxfamily.org apt.42h.de
Distros and repositories
HEPiX/HEPNT 2003 – Vancouver 22
Apt simplifies package management on rpm based distributions, even on RedHat, most used distribution in HEP environments
Systems update is possible with only two commands:# apt-get update; apt-get -y upgrade
Using a local repository is possible to upgrade machines using no external links
It is possible to include non standard packages in local repositories...
APT - Benefits
HEPiX/HEPNT 2003 – Vancouver 23
We are developing a procedure to install the Grid-IT distribution on RedHat 7.3 with kickstart, APT and LCFGng
Kickstart Unattended installations Known and well documented behaviour Perhaps more flexible than other tools
APT Simplified package management Automatic package download to satisfy
dependencies
InGRID - Installing GRID (1/4)
HEPiX/HEPNT 2003 – Vancouver 24
LCFGng University of Edinburgh project to setup and
maintain Unix systems It can configure many system files, execute
scripts, create users, etc Client-server architecture to manage many
systems from a single machine
InGRID (2/4)
HEPiX/HEPNT 2003 – Vancouver 25
Installation
“Gridification”
Configuration
RH Kickstart
APT
LCFGng
InGRID (3/4)
HEPiX/HEPNT 2003 – Vancouver 26
We install a RH73 machine via kickstart Then we run a script
# ingrid CE to install all computing elementpackages via APT
After the first reboot LCFG customizes all configuration files
This system is actually used to install grid resources in the INFN, INFM and Physics Department laboratories in Naples
InGRID (4/4)
HEPiX/HEPNT 2003 – Vancouver 27
Apt - http://packages.debian.org/apt Apt4rpm - http://apt4rpm.sourceforge.net FreshRPMS - http://www.freshrpms.net RedCarpet – http://www.ximian.com YUM - http://linux.duke.edu/projects/yum
LCFG – http://www.lcfg.org InGRID –
http://people.na.infn.it/~taurino/pres/ingrid/ingrid.ppt
(Italian only)
References