270 likes | 433 Views
INFN - Napoli 1 INFM - UDR Napoli 2 HEPiX/HEPNT 2003 – Vancouver. Rosario Esposito 1 Francesco Maria Taurino 1,2 Gennaro Tortone 1. APT for RPM Simplified package management for rpm based distributions. Linux.
E N D
INFN - Napoli 1INFM - UDR Napoli 2 HEPiX/HEPNT 2003 – Vancouver Rosario Esposito1 Francesco Maria Taurino1,2 Gennaro Tortone1 APT for RPMSimplified package management for rpm based distributions
Linux • 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
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
Dependencies • 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…
Scenarios • 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
Dependencies - Example • Installing a package “mod_test1” : • # rpm -Uvh mod_test1-xxx.rpmerror: 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…
Some solutions • 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...)
Up2date et al... • 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
Urpmi (1/2) • 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 (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
YUM • 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
APT • 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 – Using (1/3) [root]@[/] # apt-get install nautilus Reading Package Lists... Done Building Dependency Tree... Done The following extra packages will be installed: bonobo libmedusa0 libnautilus0 The following NEW packages will be installed: bonobo libmedusa0 libnautilus0 nautilus 0 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]
APT – Using (2/3) [root]@[/] # apt-get remove gnome-panel Reading Package Lists... Done Building Dependency Tree... Done The following packages will be REMOVED: gnome-applets gnome-panel gnome-panel-data gnome-session 0 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]
APT – Using (3/3) [root]@[/] # apt-cache search pdf kghostview - PostScript viewer for KDE tetex - 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.rpm Description: 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.
APT for RPM • 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 – repository creation • 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 source.list • 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 isrpm http://apt.na.infn.it redhat/7.3/i386 os updates
APT – Naples repository • 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
Distros and repositories • 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
APT - Benefits • 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...
InGRID - Installing GRID (1/4) • 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 (2/4) • 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
Installation “Gridification” Configuration InGRID (3/4) RH Kickstart APT LCFGng
InGRID (4/4) • We install a RH73 machine via kickstart • Then we run a script # ingrid CEto install all computing element packages 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
References • 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)