home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 May / Chip_2000-05_cd2.bin / docu / ascii / suselxen / slxen-15.txt < prev    next >
Text File  |  2000-03-11  |  46KB  |  979 lines

  1.          Part VI
  2.  
  3. SuSE Linux: Updating and
  4.     Special Features
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.                             357
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.                                                                            Chapter 15
  23.      Updating the System and Package
  24.                                                               Management
  25.  
  26. 15.1 Updating SuSE Linux
  27. SuSE Linux offers you the option of updating an existing system without
  28. having to reinstall everything. But it is important to distinguish between
  29. updating one, or a few packages, and updating the entire system to the latest
  30. distribution.
  31.  
  32.  It is quite normal for software to "grow". Thus we recommend you to have
  33.  a look at how full the partitions are, with df, before updating! If you think
  34.  there might be too little space available, you should consider making a
  35.  backup and repartitioning. There is no rule of thumb as to how much space
  36.  you need in particular cases. This depends on the existing partitions, the
  37.  software selected and which version you want to update SuSE Linux 6.4
  38.  from.
  39.  
  40. 15.1.1 Preparations
  41. Before you begin an update, make sure you have saved the old configuration
  42. files to a separate medium such as a streamer, removable drives, floppies or
  43. ZIP drives, just in case things go wrong. Normally these are the files in /etc
  44. and /var/lib (e. g. for News or xdm). In addition, no harm would be done
  45. if you wrote the current user data in /home (the "home directories") to a
  46. backup medium.
  47. Before you start the update process, remember to write down the device name
  48. of your root partition. In this case, /dev/sda3 would be your root partition.
  49. You can see this with the command:
  50.     earth: # df /
  51.  
  52.  
  53.   Filesystem 1024-blocks Used Available Capacity Mounted on
  54.   /dev/sda3          4167999 3253471          698856          82%     /
  55.   /dev/sda1              7496        1311        5785         18%     /boot
  56.  
  57.  
  58. This shows that /dev/sda3 is mounted in the filesystem in /.
  59.  
  60.                                                                                    359
  61.  
  62.  
  63.  
  64. 15. Updating the System and Package Management
  65.  
  66.                 Before updating PostgreSQL (package postgres) we recommend
  67.                 that you make a dump of the databases (see manpage for pg dump
  68.                 (man pg dump)). This is only needed, however, if you used PostgreSQL
  69.                 previously.
  70.  
  71.                Now you still need to decide if you want to update using the text-oriented
  72.                YaST or with the graphical YaST2. The decision is made for you if you want
  73.                to update from a SuSE Linux before version 6.0 ¡ in this case you should use
  74.                YaST and proceed as described in Section 15.1.3. From version 6.0 onwards
  75.                you can update using YaST2.
  76.  
  77.                15.1.2 Updating with YaST2
  78.                After the preparations mentioned in Section 15.1.1 on the preceding page,
  79.                you should first boot as described in the installation chapter 2.1 page 13.
  80.  
  81.                 You can only carry out an update with YaST2 if you want to update a
  82.                 SuSE Linux 6.x. For older versions (e. g.SuSE Linux 5.3) YaST1 is the
  83.                 right method; see Section sec:update.basissystem.
  84.  
  85.                If you have reached Section 2.1.7 page 17, choose the option `Update'.
  86.  
  87.                15.1.3 Updating with YaST1
  88.  
  89.                Updating the Base System
  90.                Because central components of the system (such as libraries) must be replaced
  91.                when updating the base system, this task cannot be performed during normal
  92.                operations, i.e. from the currently running Linux system.
  93.  
  94.                 It is helpful to read the file README or in DOS/Windows README.DOS
  95.                 on the CD; here additional changes are noted which may have been made
  96.                 after the handbook has been printed!
  97.  
  98.                You need to start the update environment ¡ normally using either the supplied
  99.                "boot disk" or by entering manually at the kernel boot prompt, as described
  100.                in detail in Section 2.2.1 page 24 (Note: from 6.3, CD 2 should be used!).
  101.                Essentially the following steps are necessary:
  102.                1. As soon as the kernel has booted, linuxrc is started automatically.
  103.                2. In the main menu of linuxrc, in the menu `Settings', you need to
  104.                   choose the language, monitor and keyboard and press `OK' when you
  105.                   are finished.
  106.                3. Now make sure that you load all the drivers you need by selecting `Ker-
  107.                   nel modules'. The exact procedure is given in the linuxrc description
  108.                   in Section 83 page 383.
  109.                4. After this has been done, selecting `Installation / Startup
  110.                   system' and `Startup installation' leads you to the selec-
  111.                   tion of your source medium (see Section 83 page 385).
  112.  
  113. 360
  114.  
  115.  
  116.  
  117.                                                                        15.1. Updating SuSE Linux
  118.  
  119. 5. linuxrc then loads the installation environment and starts YaST automat-
  120.     ically.
  121. In YaST's main menu you should select `Update existing system'.
  122. YaST then tries to determine the root partition and displays the result. Here
  123. you can now select your root partition, as mentioned above (for example:
  124. /dev/sda3 ).
  125. YaST then reads the existing "old" /etc/fstab and mounts the partitions
  126. it found in this file. Now select `Continue'.    
  127. After returning to the main menu by pressing  Esc  
  128.                                                          , choose `Updating
  129. your system' (Section 3.2 page 71). Your old system is now analysed by
  130. YaST and the results are displayed in a list.
  131. After this, all the central configuration files of the system are updated. YaST
  132. creates backup files of those files that have changed since the last installation.
  133. When the base system has been updated, you will find yourself in YaST's
  134. special update mode, where you can decide on which packages to update. In
  135. addition, old configuration files will be saved as .rpmorig or .rpmsave
  136. (see Section 15.3.1 page 370). This procedure is recorded in /var/adm/
  137. inst-log/installation-*, and may be consulted later on.
  138.  
  139. Updating the Rest of the System
  140.  
  141.  If you use loadlin for booting you will need to copy the new kernel and
  142.  possibly your initrd as well to the loadlin directory on your DOS
  143.  partition!
  144.  
  145. When the base system has been updated you will then be placed in YaST's
  146. special update mode. Here you may update the rest of your system as you
  147. please.
  148. YaST then builds two lists. The first list shows those packages YaST has
  149. recognized, and where it has decided that an update could be useful. The
  150. second list shows you those packages where this is not so straightforward
  151. (perhaps the old package still works, but provides no information about its
  152. version).
  153. Using these two lists, you can decide which packages should be updated.
  154. When you begin the update, all packages selected will be replaced by the
  155. new ones-whereby all files will be saved that have been changed since the
  156. last installation.
  157. After completing this task, you should proceed as with a first-time installa-
  158. tion. One of the things you will need to do is select a new kernel.
  159.  
  160.  If you use loadlin for booting you obviously need to copy the new kernel
  161.  and possibly your initrd as well to the loadlin directory on your
  162.  DOS partition!
  163.  
  164. If you do not want the system to be rebooted in its normal runlevel (see
  165. standard runlevel Section 17.2 page 396), but would like YaST to complete
  166. the installation, you should enter the following at the LILO prompt:
  167.  
  168.                                                                                             361
  169.  
  170.  
  171.  
  172. 15. Updating the System and Package Management
  173.  
  174.                   NO AUTO SETUP=true
  175.                This parameter is especially useful if you encounter problems when booting
  176.                again. These might occur, if you access important parts of your system, for
  177.                example via PCMCIA-SCSI. To continue with the prepared configuration, the
  178.                following steps could be taken:
  179.  
  180.                1. Enter the following parameter at the LILO prompt:
  181.                       NO_AUTO_SETUP=true
  182.  
  183.                2. Change to user `root' and start YaST with: yast --nomenu to
  184.                   complete its configuration tasks.
  185.                3. Start /lib/YaST/bootsetup.conf as `root'.
  186.  
  187.                Experienced Linux users might not want to start in the default runlevel, but
  188.                in the "single user mode". This can be achieved by entering single at the
  189.                LILO prompt.
  190.  
  191.                15.1.4 Updating Single Packages
  192.                With SuSE Linux, you can update single packages whenever you want. In
  193.                YaST's package list (see Section 3.4.3 page 84), you can move around as you
  194.                please. If you select a package which is needed for the system to run, you
  195.                will be warned by YaST. Such packages should be replaced only in update
  196.                mode. For example, many packages contain shared libraries which could
  197.                be in use when you want to run an update. Updating shared libraries on a
  198.                running system will inevitably cause problems.
  199.  
  200.                15.2 From Version to Version
  201.                In the following sections we will list details of things which have been
  202.                changed from one version to the next. In this overview such things as config-
  203.                uration file syntax changes and abnormal behavior of well-known programs
  204.                are listed. But only those anomalies are listed which might cause problems
  205.                for the administrator or user.
  206.                This list is probably incomplete. Please also consult the Support DataBase-
  207.                which can be found in the package sdb, series doc (cf. Section 1.4.1 page 5).
  208.                Known problems and other abnormal features of each version will be an-
  209.                nounced when they become known on the web server, at:
  210.                http://sdb.suse.de/sdb/en/html
  211.  
  212.                15.2.1 From 4.x to 5.0
  213.                Problems and special issues: see
  214.                http://sdb.suse.de/sdb/en/html/maddin_bugs5.html.
  215.  
  216.                 * Package management has been changed from TGZ to RPM (cf. Sec-
  217.                   tion 15.3 page 370).
  218.                 * New Bash. ¡ see SDB:
  219.                   http://sdb.suse.de/sdb/en/html/maddin_bash2.html
  220.  
  221. 362
  222.  
  223.  
  224.  
  225.                                                              15.2. From Version to Version
  226.  
  227.  * startx is no longer started in the background ¡ see SDB:
  228.    http://sdb.suse.de/sdb/en/html/maddin_xprompt5.
  229.    html
  230.  * To start Samba, set the variable START_SMB=yes in /etc/rc.
  231.    config.
  232.  * System-relevant cron jobs are now listed in /etc/crontab
  233.    (see Section 16.6.1 page 392).
  234.  * All users in the new group `dialout' who are allowed to execute
  235.    "dialout" programs (minicom, pppd, etc.) have been placed in the new
  236.    group `dialout'.
  237.  * The filesystem of the rescue system is now modelled on the layout of the
  238.    running system.
  239.  * Functionality of /etc/securetty is now handled by /etc/login.
  240.    defs.
  241.  
  242. 15.2.2 From 5.0 to 5.1
  243.  
  244. Problems and special issues: see
  245. http://sdb.suse.de/sdb/en/html/maddin_bugs51.html.
  246.  
  247.  * LILO , case 1: The loaders any_b.b and any_d.b are now obsolete
  248.    (see Section 12 page 111).
  249.  * LILO , case 2: In case of trouble when booting with SCSI host adapter
  250.    Adaptec 2940 (different types) you should no longer set the option
  251.    linear in /etc/lilo.conf (see Section 4.4.2 page 111) .
  252.  * "optional" software (e. g. KDE or Applixware ) is now installed in /opt
  253.    (see Section 2.8 page 59).
  254.  * For reasons of space, the package descriptions are no longer part of the
  255.    book, but are to be found on the first CD in /docu. The German files
  256.    are: pkg_German.dvi and pkg_German.ps, the English files are:
  257.    pkg_English.dvi and pkg_English.ps.
  258.  * The "Hardware chapter" no longer exists. Instead there is now the "CDB"
  259.    (Component DataBase: package cdb, series doc, or online at
  260.    http://www.suse.de/cdb/deutsch/ or
  261.    http://www.suse.de/cdb/english/ ).
  262.  * sendmail's m4 files are located in /usr/share/sendmail.
  263.  * The sources have been packed as so-called "Source RPMS" ¡ cf. in the
  264.    SDB:
  265.    http://sdb.suse.de/sdb/en/html/ke_source-rpm.html).
  266.  
  267. 15.2.3 From 5.1 to 5.2
  268.  
  269. Problems and special issues: see
  270. http://sdb.suse.de/sdb/en/html/maddin_bugs52.html.
  271.  
  272.  * YaST : the series ALL may be selected from `Series selection'
  273.            
  274.    with  F4  (= `Sort') (see Section 3.4.3 page 84).
  275.                                                                                       363
  276.  
  277.  
  278.  
  279. 15. Updating the System and Package Management
  280.  
  281.                 * The XSuSE servers are now part of the official XFree86 sources. Please
  282.                   use the standard servers from series x. Exception: XSuSE_Elsa_
  283.                   GLoria (package xglint), for Glint or Permedia based graphics de-
  284.                   vices.
  285.                 * Due to security reasons the X servers are no longer set to suid root (that
  286.                   is, without the `s' bit). You need to start the X Window System via the
  287.                   Xwrapper (via startx), or by using a display manager (xdm or kdm).
  288.                 * wuftpd has now been made the default FTP server in /etc/inetd.
  289.                   conf ¡ see SDB:
  290.                   http://sdb.suse.de/sdb/en/html/grimmer_ftpd.html)
  291.                 * The options for ps are no longer preceeded by a `-'. Please adapt your
  292.                   shell scripts accordingly ¡ see SDB:
  293.                   http://sdb.suse.de/sdb/en/html/maddin_ps52.html).
  294.                 * SuSEconfig (see Section 17.6 page 400) now understands some options
  295.                   which can speed up your work.
  296.  
  297.                15.2.4 From 5.2 to 5.3
  298.                Problems and special issues: see
  299.                http://sdb.suse.de/sdb/en/html/bugs53.html.
  300.                 * The initial installation of SuSE Linux or of an update is now more
  301.                   straightforward ("linear"). For those who want to use the "old" method,
  302.                   please select YaST's `Expert mode' (see Figure 2.6 page 29).
  303.                 * Besides the boot disk there is an optional modules disk containing ad-
  304.                   ditional modules. This is only needed for "exotic" hardware (see Sec-
  305.                   tion 16.3 page 382.)
  306.                 * The X servers are now stored in series xsrv (X-Server), and no longer in
  307.                   series x.
  308.                 * X servers for "brand new graphics devices" (XFCom_3DLabs (pack-
  309.                   age x3dlabs; former XSuSE_Elsa_GLoria, package xglint),
  310.                   XFCom_SiS (package xsis; former XSuSE_SiS) and XFCom_
  311.                   Cyrix (package xcyrix) have now been developed by SuSE.
  312.                 * Users who want to access terminal programs such as minicom or seyon
  313.                   need to be added to the group `uucp' ¡ see
  314.                   http://sdb.suse.de/sdb/en/html/ke_terminal-prog.
  315.                   html.
  316.  
  317.                 * Emacs comes as version 20.x. The adapted startup files in /etc/skel
  318.                   should be used ¡ see SDB:
  319.                   http://sdb.suse.de/sdb/en/html/ke_emacs-update.
  320.                   html.
  321.                 * The SGML parser tools from package jade dsl are now in their own
  322.                   package, package sp.
  323.                 * PostgreSQL (package postgres) consists of a number of sub-
  324.                   packages: database engine, database initialization and interfaces.
  325.                 * Man pages have been moved from package allman to different sub-
  326.                   packages ¡ see SDB:
  327.                   http://sdb.suse.de/sdb/en/html/ke_lpdmanxx.html.
  328.  
  329. 364
  330.  
  331.  
  332.  
  333.                                                                15.2. From Version to Version
  334.  
  335. 15.2.5 From 5.3 to 6.0
  336. Problems and special issues: see
  337. http://sdb.suse.de/sdb/en/html/bugs60.html.
  338.  * As provided for by the kernel sources, the boot kernel will now be in-
  339.    stalled to /boot. If you do an update make sure the paths in /etc/
  340.    lilo.conf are set correctly when YaST prompts you for the change.
  341.    If you still want to use the old kernel in /vmlinux you need to interrupt
  342.    the process and set up LILO accordingly.
  343.  * The system libraries have changed to glibc (also known as libc6). Up-
  344.    dating program packages from SuSE Linux should not cause any trouble.
  345.    You should recompile your own programs after the update and link them
  346.    against glibc. If this is not possible (e. g.you do not have the sources)
  347.    the solution is to install the package shlibs5 (libc5). Now "older"
  348.    programs should run.
  349.  * SuSE Linux comes with the latest teTeX version. As the teTeX version
  350.    is installed in accordance with the Filesystem Hierarchy Standard (FHS)
  351.    it needs additional space (approx. 15 MB) in the directory /var. teTeX
  352.    has been split up into several sub-packages, so if something is missing
  353.    after an update, you may need to check in the series tex to make sure
  354.    that everything really has been installed properly.
  355.  * The LATEX extensions package colortbl and package hyperref are
  356.    now part of teTeX.
  357.  * The DocBook style sheets are now located in package docbkdsl (series
  358.    sgm).
  359.  
  360. 15.2.6 From 6.0 to 6.1
  361. Problems and special issues: see
  362. http://sdb.suse.de/sdb/en/html/bugs61.html.
  363.  * The CD containing the "Live-Filesystem" is no longer included. This CD
  364.    may be purchased separately. Technical details of this CD may be found
  365.    in Section 3.6.4 page 96.
  366.  * Additional drivers that might be necessary for an installation or an update
  367.    (proprietary CD-ROM drives, drives on the parallel port, PCMCIA) are
  368.    located on the modules disk image (Section 2.2.3 page 25).
  369.  * The default interface for printing on the parallel port is /env/lp0 for
  370.    kernel 2.2.x, see Section 12.1 page 293.
  371. In the following sections we will list details of things which have been
  372. changed from one version to the next. In this overview such things as config-
  373. uration file syntax changes and abnormal behavior of well-known programs
  374. are listed. But only those anomalies are listed which might cause problems
  375. for the administrator or user.
  376. This list is probably incomplete. Please also consult the Support DataBase-
  377. which can be found in the package sdb, series doc (cf. Section 1.4.1 page 5).
  378. Known problems and other abnormal features will be announced at:
  379. http://sdb.suse.de/sdb/en/html
  380.  
  381.                                                                                         365
  382.  
  383.  
  384.  
  385. 15. Updating the System and Package Management
  386.  
  387.                15.2.7 From 6.1 to 6.2
  388.                Problems and special issues:
  389.                http://sdb.suse.de/sdb/en/html/bugs62.html.
  390.                 * rpm (see also Section 15.3 page 370) is now available as version 3.0. The
  391.                   format of the RPM database has changed; the database must be converted
  392.                   the moment rpm is installed. For a regular update of the (base) system
  393.                   using YaST this conversion is taken care of automatically.
  394.                 * The glibc system libraries are now available in version 2.1. As far as
  395.                   possible, components are provided which continue to allow glibc-2.0 pro-
  396.                   grams to be run; this causes problems, however, when attempts are made
  397.                   to access certain symbols. Therefore any programs of your own, or exter-
  398.                   nal programs, should in principle be recompiled.
  399.                 * The nscd Name Service Cache Daemon also belongs to the glibc and
  400.                   is configured via the /etc/nscd.conf; refer to manpage for nscd
  401.                   (man 8 nscd).
  402.                 * With glibc-2.1, conversion to "Unix98 PTY" devices is now complete.
  403.                   This means that the devpts filesystem also needs to be mounted; the
  404.                   following entry in the file /etc/fstab, for example, guarantees this;
  405.                   none         /dev/pts        devpts     gid=5,mode=620          0 0
  406.  
  407.                   See also the documentation in /usr/src/linux/Documentation/
  408.                   Changes in the kernel sources.
  409.                 * PAM Pluggable Authentication Modules: In addition to /etc/login.
  410.                   defs there are now the files /etc/securetty, /etc/security/
  411.                   limits.conf and /etc/security/pam_env.conf; see also
  412.                   page 100.
  413.                 * Language settings can be specified with variables in /etc/rc.config;
  414.                   see Section 88 page 401 as well as
  415.                   http://sdb.suse.de/sdb/en/html/ml_locale_implementation.
  416.                   html
  417.                   If you don't want to see German messages, you can write the following
  418.                   directly into .bashrc, for example:
  419.                   export LANG=C
  420.  
  421.                 * For a number of packages, the components needed for software develop-
  422.                   ment (libraries, headers, include files, etc.) have been given their own
  423.                   packages; in part, this also occurred in earlier versions. These develop-
  424.                   ment packages are only needed if you want to compile software yourself
  425.                   ¡ for example, more recent GNOME packages. These development pack-
  426.                   ages can be recognized from their name extensions of dev or d: package
  427.                   xformsd, package glibndev, package gtkndev, package imlib-
  428.                   dev, package gnlibsd, etc.
  429.  
  430.                15.2.8 From 6.2 to 6.3
  431.                Problems and special issues:
  432.                http://sdb.suse.de/sdb/en/html/bugs62.html and
  433.                http://sdb.suse.de/sdb/en/html/bugs63.html
  434.  
  435. 366
  436.  
  437.  
  438.  
  439.                                                               15.2. From Version to Version
  440.  
  441. * If you want to update SuSE Linux from a previous version to 6.4 you
  442.   should now use the special update-CD (Nr. 2) or the boot disks supplied,
  443.   to start the "update environment" (see Section 15.1.3 page 360).
  444. * Various optimized kernels are available for installation; these kernels use
  445.   an "initrd" Initial Ramdisk. When compiling your own kernel you should
  446.   be aware of this; refer to Section 16.2.5 page 381 and
  447.   http://sdb.suse.de/sdb/en/html/adrian_6.3_boot.
  448.   html.
  449. * The configuration file for the kernel modules is /etc/modules.conf
  450.   (previously: /etc/conf.modules).
  451. * Apart from the "userspace" NFS daemon (package nfsserv), the
  452.   kernel-based NFS daemon (package knfsd) is also available. kn-
  453.   fsd only has limited functionality, but it is able to lock files; this
  454.   is needed by StarOffice, for example. You should set the variables
  455.   USE KERNEL NFSD or NFS SERVER in /etc/rc.config.
  456. * The  Manpages are now located in /usr/share/man, as specified in
  457.   the FHS "Filesystem Hierarchy Standard"; see also the package fhs or,
  458.   on the web, http://www.pathname.com/fhs/.
  459. * Some software packages which were removed from the distribution:
  460.    ¡ package gnuhtml: outdated; the current info documents can be
  461.      viewed in HTML format via the SuSE-helpsystem (see also Sec-
  462.      tion 16.4 page 386).
  463.    ¡ package glimpse: An older version can be found in the directory
  464.      /unsorted on CD 1. For reasons of copyright we cannot include
  465.      the new version in SuSE Linux.
  466. * Tcl/Tk is available in new versions with new package descriptions.
  467.   Tcl/Tk 8.0 is the standard version.
  468. * OSS Open Sound System is now also available for multi-processor ma-
  469.   chines; the individual packages are package opso and package op-
  470.   sod up, as well as package opso smp and package opsodsmp; see
  471.   http://sdb.suse.de/sdb/en/html/oss-smp.html
  472. * The settings of sendmail have been moved from /etc/rc.config to
  473.   the file /etc/rc.config.d/sendmail.rc.config; see
  474.   http://sdb.suse.de/sdb/en/html/mneden_6.3_sendmail.
  475.   html.
  476. * for security reasons, the program WU-FTPD (package wuftpd, series
  477.   n) is no longer installed by default.
  478. * For leafnode, the directory for configuration files has changed from
  479.   version 1.9.2. It can now be found in /etc/leafnode instead of
  480.   /usr/lib/leafnode.
  481.   If you have changed your configuration file, a backup copy can be found
  482.   in /usr/lib/leafnode/config.rpmsave. Please enter your
  483.   customizations by hand to the new configuration file.
  484.   Warning: If you are updating from a previous version (before 1.9.3),
  485.   please run the shellscript /usr/doc/packages/leafnode/update.
  486.   sh first:
  487.  
  488.                                                                                        367
  489.  
  490.  
  491.  
  492. 15. Updating the System and Package Management
  493.  
  494.                       earth: # cd /usr/doc/packages/leafnode
  495.                       earth:/usr/doc/packages/leafnode # ./update.sh \
  496.                       /var/spool/news/ /etc/leafnode /var/lock/news/fetchnews.lck
  497.                   This causes the file groupinfo and a few others to be re-organized.
  498.                   groupinfo is no longer sorted in a "case-sensitive" order). If something
  499.                   should go wrong here, you can find the old file in /var/spool/news/
  500.                   leaf.node/groupinfo.old. If the script has run successfully, you
  501.                   can then delete this file (.old.
  502.                   Note: The program /usr/sbin/fetch has, from version 1.9.3, been
  503.                   renamed to /usr/sbin/fetchnews. Make sure you adapt "cron-
  504.                   jobs" or similar scripts (e. g. /etc/ppp/ip-up) accordingly.
  505.                   To install leafnode, refer to Section 6.9 page 179.
  506.                 * MySQL now runs with the UID `mysql' and with the GID `daemon',
  507.                   in order to provide and guarantee more security.
  508.                 * Fortify is now located in /opt/fortify; it can be easily de-installed
  509.                   after being applied.
  510.  
  511.                15.2.9 From 6.3 to 6.4
  512.                Problems and Special Features:
  513.                http://sdb.suse.de/sdb/en/html/bugs64.html.
  514.                 * Kernel. The package kernmod or package kernmods packages are
  515.                   no longer necessary. The accordingly optimized kernel modules are in-
  516.                   stalled "in one go" together with the kernel selected (see 3.6.2 page 92).
  517.                   The configuration files of the installed kernel are located in /boot as
  518.                   vmlinuz.config-pentium (Example!), vmlinuz.autoconf.
  519.                   h and vmlinuz.version.h. If you want, YaST will copy these files
  520.                   to the tree of the kernel sources.
  521.                 * Valid login shells are entered in /etc/shells; see manpage for
  522.                   shells (man 5 shells). If a user is allocated to /bin/true, then
  523.                   this user can only log in via the X Window System; he cannot obtain a
  524.                   shell. /bin/false as a "login shell" prevents any kind of log in.
  525.                 * package aaa base: For reasons of clarity, the maintenance work
  526.                   which is needed to be carried out daily on the system has been
  527.                   divided into a number of scripts.        In /etc/cron.daily there
  528.                   are now, apart from aaa_base, the components backup_rpmdb,
  529.                   clean_catman, clean_core, clean_instlog, clean_tmp,
  530.                   do_mandb, rotate_logs and updatedb; in addition aaa_base
  531.                   lreads cron.daily.local, where your own extensions can be en-
  532.                   tered. For more information on the Cron system, refer to Section 16.6.1
  533.                   page 392.
  534.                 * A newer version of tar (tar) has been included. The overwrite behavior
  535.                   when unpacking existing files has been changed. If you rely on the old
  536.                   mode, please use the option --overwrite.
  537.                 * Almost all programs in the package package nkita and package nkitb
  538.                   are in new versions. traceroute has been moved to the package package
  539.                   nkitb. A number of programs are already "IPv6 ready"; for this reason
  540.                   you should endure that DNS is correctly configured ¡ otherwise it is
  541.                   possible you might have to wait for the DNS timeout for IPv6 queries.
  542.  
  543. 368
  544.  
  545.  
  546.  
  547.                                                               15.2. From Version to Version
  548.  
  549. * On the package postfix: further setting options have been added; the
  550.   start variables have been moved to /etc/rc.config.d/postfix.
  551.   rc.config; see also Section 17.5 page 399.
  552. * The package squid, that is, version 1.x of the WWW proxy server,
  553.   is no longer included. Since the now established version version 2.x is
  554.   regarded as stable, it is generally recommended that you change to this.
  555.   During the update the package squid is not automatically replaced by
  556.   package squid2; it is at least necessary to delete the cache and check
  557.   the configuration files.
  558. * The recommended DHCP client is to be found in the package package
  559.   dhcpd; for special cases, the package package dhclient is included.
  560. * For reasons of security, anonymous FTP is no longer allowed automati-
  561.   cally. In order to allow anonymous FTP with the ftp daemon, in.ftpd
  562.   the comment sign `#' in /etc/pam.d/ftpd must be removed at the
  563.   beginning of the line:
  564.   auth       sufficient           /lib/security/pam_ftp.so
  565.  
  566. * Changing the password with PAM Pluggable Authentication Modules.
  567.   pam unix can also change NIS passwords and understands md5 hashes
  568.   as passwords. Caution: see Section 3.6.7 page 100.
  569.   There is now a new pam pwcheck module which takes over the verifi-
  570.   cation of new passwords. The old entry:
  571.   password required           /lib/security/pam_unix.so              #strict=false
  572.  
  573.   must be changed (in each case just one line, or with \ at the end of the
  574.   line):
  575.   password required           /lib/security/pam_pwcheck.so \
  576.                               nullok #use_cracklib
  577.   password required           /lib/security/pam_unix.so              \
  578.                               nullok use_first_pass use_authtok
  579.   This manual intrusion is only necessary if rpm is not allowed to change
  580.   the configuration files itself, because the system administrator has made
  581.   his own changes. This is, by the way, the case for all PAM configuration
  582.   files located in /etc/pam.d.
  583. * As well as the  manpages (see Section 15.2.8 page 367, the info pages
  584.   are now also located in /usr/share.
  585. * makewhatis (package makewhat) now uses the help program
  586.   manpath to locate the manpages. The environment variable MANPATH
  587.   should no longer be set in rc files.
  588. * The package ncurses packages is a new version, 5.0; version 4.2 of the
  589.   "shared library" is still included, so that as a rule pre-compiled programs
  590.   can be still be used.
  591. * The package apache package has been split up. If you need special
  592.   enhancements, you should also install the mod * subpackages. Docu-
  593.   mentation on PHP can be found in the package package phpdoc. For
  594.   organisational reasons the log files can be found in /var/log/httpd.
  595.  
  596.                                                                                        369
  597.  
  598.  
  599.  
  600. 15. Updating the System and Package Management
  601.  
  602.                 * Roxen is split up in the following way: The package roxen package
  603.                   without encryption and the package roxenssl is an addition with en-
  604.                   cryption support. This has the advantage that a separate package, package
  605.                   roxenint no longer has to be managed.
  606.                 * The package changes package was discontinued. The same information
  607.                   can be given by rpm:
  608.                   newbie@earth: > rpm -q --changelog <paket>
  609.  
  610.                15.3 RPM-the Package Manager
  611.                RPM (rpm), the "Red Hat Package Manager", was introduced in SuSE
  612.                Linux 5.0. The RPM database provides detailed information about the soft-
  613.                ware packages installed, making life easier for everyone: users, system ad-
  614.                ministrators and package builders.
  615.                rpm does the following:
  616.  
  617.                 * compiles software applications from so-called "pristine" sources and
  618.                   packages them for installation
  619.                 * installs, upgrades and cleanly uninstalls software packaged in the RPM
  620.                   format
  621.                 * supports queries, including dependencies, about packages and maintains
  622.                   the RPM database of installed packages
  623.  
  624.                The reader is referred to the manpage for rpm (man rpm) and the book
  625.                Maximum RPM, Bailey, 1997, Red Hat, for more information on building
  626.                RPM packages. The other capabilities of RPM are briefly described below.
  627.                Installable RPM archives are packed in a special binary format. These
  628.                archives consist of the program files to be installed, as well as certain meta-
  629.                information which is used during the installation by rpm to configure the
  630.                software package, or stored in the RPM database for documentation purposes.
  631.                RPM archives normally have the extension .rpm.
  632.  
  633.                15.3.1 Managing Packages: Install, Update and Uninstall
  634.                Normally, installing an RPM archive is as easy as this:
  635.                   earth: # rpm -i <package>.rpm
  636.                With this command, the package will be installed ¡ but only if its dependency
  637.                requirements are met and if it does not conflict with another package. With
  638.                an error message, rpm requests those packages it needs to be installed to
  639.                fulfill dependencies. In the background the RPM database ensures that no
  640.                conflicts will arise ¡ a specific file can only belong to one package. By
  641.                choosing different options you can force rpm to ignore these defaults, but
  642.                make sure you know what you are doing, otherwise you risk compromising
  643.                the integrity of the system, and you might jeopardize the ability to update the
  644.                system.
  645.                Use -U or --upgrade to update a package. This option will remove the
  646.                files of the old version and immediately install the new files. rpm updates
  647.                configuration files more cautiously:
  648.  
  649. 370
  650.  
  651.  
  652.  
  653.                                                                     15.3. RPM-the Package Manager
  654.  
  655.  * If a configuration file has not been changed by the system administrator,
  656.     rpm will install the new version of the appropriate file. No action by the
  657.     system administrator is required.
  658.  * If a configuration file was changed by the system administrator before the
  659.     update, rpm will save the changed file with the extension .rpmorig or
  660.     .rpmsave (backup file) and install the version from the new package,
  661.     but only when the originally installed file and the newer version are differ-
  662.     ent. If this is the case, you should compare the backup file (.rpmorig or
  663.     .rpmsave) with the newly installed file and make your changes again in
  664.     the new file. Afterwards, be sure to delete all .rpmorig and .rpmsave
  665.     files to avoid problems with future updates. 1
  666. The -U switch is not just an equivalent to uninstalling with the (-e) option
  667. and installing with the (-i) option. Use -U whenever possible.
  668.  
  669.  After every update, you should check all backup files created by rpm.
  670.  These are your old configuration files. If necessary, take over your cus-
  671.  tomizations from the backup files for the new configuration files. After this
  672.  process the files with the extensions .rpmorig and .rpmsave should
  673.  be deleted.
  674.  
  675. To remove a package, enter the command:
  676.     earth: # rpm -e <package>
  677. rpm will only delete the package if there are no unresolved dependencies.
  678. Theoretically it isn't possible to uninstall an old libc using rpm as long as
  679. another program still needs it to work properly-the RPM database guards
  680. against this.
  681.  
  682. 15.3.2 RPM Queries
  683. With the -q option, rpm initiates queries, making it possible to inspect an
  684. RPM archive (by adding the option -p) and also to query the RPM database
  685. of installed packages. Several switches are available to specify the type of
  686. information required (see Table 15.1 on the following page).
  687.  
  688.  
  689.   -i                        Package information
  690.   -l                        File list
  691.   -f <FILE>                 Query a package owned by <FILE> (the full path
  692.                             must be specified with <FILE>)
  693.   -s                        File list with status information (implies -l)
  694.   -d                        list only documentation files (implies -l)
  695.   -c                        list only configuration files (implies -l)
  696.  
  697.  
  698.                         Table 15.1: continued overleaf. . . ...
  699.  
  700. 1 rpm will choose .rpmorig if the file was unknown to the RPM database until now ¡ other-
  701. wise .rpmsave. In other words, .rpmorig files will be created while updating from a foreign
  702. format to RPM, and .rpmsave while updating one RPM package with another RPM package.
  703.  
  704.                                                                                                371
  705.  
  706.  
  707.  
  708. 15. Updating the System and Package Management
  709.  
  710.  
  711.                  --dump                   File list with complete details (to be used with -l,
  712.                                           -c or -d)
  713.                  --provides               Capabilities the package provides
  714.                  --requires, -R Capabilities the package requires
  715.                  --scripts                (Un-)installation scripts (pre/post install/uninstall)
  716.  
  717.  
  718.                  Table 15.1: The most important RPM query options (-q [-p]
  719.                  . . . <package>)
  720.  
  721.  
  722.                For example, the command
  723.                   earth: # rpm -q -i rpm
  724.                will display something like the following information:
  725.                Name            : rpm                                   Relocations: (not relocateable)
  726.                Version         : 3.0.3                                       Vendor: SuSE GmbH, Germany
  727.                Release         : 3                                      Build Date: Mit 21 Jul 1999 13:48:52
  728.                Install date: Mit 21 Jul 1999 18:44:33 MEST                     Build Host: euler.suse.de
  729.                Group           : unsorted                               Source RPM: rpm-3.0.3-3.src.rpm
  730.                Size            : 5108780                                    License: GPL
  731.                Packager        : feedback@suse.de
  732.                Summary         : RPM Package Manager
  733.                Description :
  734.                RPM Package Manager is the main tool for managing software packages
  735.                of the SuSE Linux distribution.
  736.                rpm can be used to install and remove software packages; with rpm it's easy
  737.                to update packages. rpm keep track of all these manipulations in a central
  738.                database. This way it is possible to get an overview of all installed
  739.                packages; rpm also supports database queries.
  740.                Option -f only works if you specify the complete filename with its full path.
  741.                You can name as many filenames as you want: for example,
  742.                rpm -q -f /bin/rpm /usr/bin/wget
  743.  
  744.                will lead to the following result:
  745.                rpm-3.0.3-3
  746.                wget-1.5.3-55
  747.                % rpm-2.4.1-1
  748.                % wget-1.4.5-2
  749.                If you know only a part of the filename, you will have to use a shell script
  750.                such as the following:
  751.  
  752.  
  753.                  #! /bin/sh
  754.                  for i in `rpm -q -a -l | grep $1 `; do
  755.                          echo you'll find  $i  in package:
  756.                          rpm -q -f $i
  757.                          echo ""
  758.                  done
  759.  
  760.                               File contents 15.3.1: Script to search for packages
  761.  
  762. 372
  763.  
  764.  
  765.  
  766.                                                             15.3. RPM-the Package Manager
  767.  
  768. With the help of the RPM database, verification checks can be made. These
  769. checks are initiated with the option -V (or -y, or --verify). With this
  770. option, rpm will show all files in a package which have been changed since
  771. first being installed. rpm uses eight character symbols to give some hints
  772. about the kind of change (see Table 15.2):
  773.  
  774.  
  775.   5      MD5 check sum
  776.   S      File size
  777.   L      Symbolic link
  778.   T      Modification time
  779.   D      Major and minor device numbers
  780.   U      Owner
  781.   G      Group
  782.   M      Mode (permissions and file type)
  783.  
  784.  
  785.                           Table 15.2: RPM verify options
  786.  
  787.  
  788. In the case of configuration files, the letter c will be printed. For example, if
  789. you have changed /etc/wgetrc from the package wget, you may see:
  790.        earth: # rpm -V wget
  791. S.5....T c /etc/wgetrc
  792.  
  793. The files of the RPM database are placed in /var/lib/rpm. If the partition
  794. /usr has a size of 500 MB, this database can occupy nearly 20 MB, espe-
  795. cially after a complete update. If the database is much bigger than expected,
  796. it is useful to rebuild the database with the option --rebuilddb. Before
  797. rebuilding, make a backup copy of the old database.
  798. The cron script cron.daily makes daily copies of the database (packed
  799. with gzip) and stores them in /var/adm/backup/rpmdb. The number
  800. of copies is controlled by the variable <MAX RPMDB BACKUPS> (the
  801. default is 5) in /etc/rc.config. The size of a single backup is approx-
  802. imately 2 MB. (This value is valid for a 500 MB /usr partition.) You must
  803. take this space requirement into account when deciding how large you want
  804. the root partition to be. If /var has its own partition, you don't have to worry
  805. about this.
  806.  
  807. 15.3.3 Installing and Compiling Source Packages
  808.  
  809. All source packages of SuSE Linux are located in the series zq (Source
  810. packages) and carry an .spm extension ("Source RPMS").
  811.  
  812.  These packages can be handled in just the same way as all other packages.
  813.  The packages, however, will not be found in the RPM database (and are
  814.  not marked with an [i] in YaST), as only "installed" software is listed.
  815.  
  816.                                                                                       373
  817.  
  818.  
  819.  
  820. 15. Updating the System and Package Management
  821.  
  822.                The directories of rpm in /usr/src/packages must exist (if none of
  823.                your own settings have been made, for example in /etc/rpmrc).
  824.  
  825.                SOURCES this is for the original sources (.tar.gz-files etc.) and for
  826.                    distribution-specific adjustments (.dif-files).
  827.                SPECS for the "spec" files, similar to a meta Makefile, which control the
  828.                    "build" process.
  829.                BUILD In this directory all the sources are unpacked, patched and compiled.
  830.                RPMS This is where the completed "binary" packages are stored.
  831.  
  832.                 Please don't experiment with essential system packages such as package
  833.                 libc, package rpm, or package nkit, etc.! This could lead to a mal-
  834.                 functioning system!
  835.  
  836.                When you install a source package from series zq with YaST , all the nec-
  837.                essary components will be installed in /usr/src/packages: the sources
  838.                and the adjustments in SOURCES, and the relevant .spec file in SPECS 2.
  839.                For our example we will choose the wget.spm package. After you have
  840.                installed the package with YaST you should have the following files:
  841.                    /usr/src/packages/SPECS/wget.spec
  842.                    /usr/src/packages/SOURCES/wget-1.4.5.dif
  843.                    /usr/src/packages/SOURCES/wget-1.4.5.tar.gz
  844.                rpm -b <X> /usr/src/packages/SPECS/wget.spec starts the
  845.                compilation. Here <X> is a wildcard for different stages of the build process
  846.                (see the output of the rpm --help or the RPM documentation). We will
  847.                show a few options here.
  848.  
  849.                -bp Prepare sources in /usr/src/packages/BUILD: unpack and
  850.                    patch.
  851.                -bc the same as -bp, but with additional compilation.
  852.                -bi the same as -bp, but with additional installation of the built software.
  853.                    Caution: if the package does not support the BuildRoot feature, you might
  854.                    overwrite configuration files.
  855.                -bb the same as -bi, but with the additional creation of the "binary" pack-
  856.                    age. If the compile was successful the binary should be in /usr/src/
  857.                    packages/RPMS.
  858.                -ba the same as -bb, but with the additional creation of the "source RPM".
  859.                    If the compilation was successful the binary should be in /usr/src/
  860.                    packages/SRPMS.
  861.  
  862.                --short-circuit lets you skip specific steps.
  863.                This binary RPM may now be installed by invoking rpm -i or even better,
  864.                with rpm -U (to make it appear in the RPM database).
  865.  
  866.                2 For "making packages" see [Bai97]. Further information can be obtained from the manpage
  867.                for rpm (man rpm)
  868.  
  869. 374
  870.  
  871.  
  872.  
  873.                                                          15.3. RPM-the Package Manager
  874.  
  875. 15.3.4 Other Tools for Working with RPM Archives
  876. The Midnight Commander (mc) is able to "browse" RPM archives and to
  877. operate on parts of them. This tool works on an RPM package archive as
  878. if the archive were a regular filesystem. Using mc, you can view HEADER
  879.                                                                    
  880. information with  F3  and you can copy parts of an archive with  F5  
  881.                                                                     .
  882. xrpm is a new graphical RPM manager, written in Python, which supports
  883. commands to FTP-accessed archives.
  884. KDE can use the tool krpm, a graphical interface in the X Window System,
  885. for RPM management. krpm is currently in an early development stage.
  886. Using the Alien (alien) Perl script, it is possible to convert or install an
  887. "alien" binary package. This tries to convert "old" TGZ archives to RPM
  888. before installing. This way the RPM database can keep track of such a pack-
  889. age after it has been installed. But beware: alien is still "alpha" software,
  890. according to its author.
  891. Last but not least, there is YaST . . .
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.                                                                                    375
  924.  
  925.  
  926.  
  927. 15. Updating the System and Package Management
  928.  
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.  
  960.  
  961.  
  962.  
  963.  
  964.  
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975. 376
  976.  
  977.  
  978.  
  979.