Discovering apt

I had problems with setting the ftp addresses for YOU, to force it to search for updates/upgrades elsewhere. Then I ran accross apt-get and decided to give it a try. And I must say, it's simply great. Well, the first experiments I did were with the apt-get from within the console (without synaptic), and it let me learn a lot on its usage. By the time I'm about to publish this page (finally!), I've become completely addicted to apt-get, and I even don't use synaptic.

Installing and configuring

Page http://linux01.gwdg.de/apt4rpm/ gives all the description you need to install, run and troubleshoot APT for SuSE, and its graphical frontend Synaptic. Below is the recipe, as I did it, but for more details refer to the above page.

In section "Software Installation", click the link for 8.1 rpm and download the 3 apt rpms (optionally 4, with the howto). My download directory:

tanja> ls -al ~/Documents/installSources/apt/
total 4568
drwxr-xr-x    2 tanja    users        4096 2003-08-03 13:55 .
drwxr-xr-x    3 tanja    users        4096 2003-08-03 13:38 ..
-rw-r--r--    1 tanja    users     1646324 2003-08-03 13:40 apt-0.5.5cnc6-rb2.i386.rpm
-rw-r--r--    1 tanja    users       40825 2003-08-03 13:52 apt-howto-1.7.8-3.i386.rpm
-rw-r--r--    1 tanja    users     2491327 2003-08-03 13:43 apt-libs-0.5.5cnc6-rb2.i386.rpm
-rw-r--r--    1 tanja    users      236900 2003-08-03 13:44 lua-5.0-rb1.i386.rpm
tanja>

Install them in the following order: apt-libs, lua, apt, (apt-howto), synaptic. I did the installation from within Konqueror, with Yast (you can do from the console with 'rpm -i <all_package_names>). Check that the rpms have been installed correctly:

tanja> rpm -q apt apt-libs apt-howto lua
apt-0.5.5cnc6-rb2
apt-libs-0.5.5cnc6-rb2
apt-howto-1.7.8-3
lua-5.0-rb1
tanja>

NOTE: In section "Hints" of the apt homepage, there is a link for download of synaptic frontend for users prior to SuSE 8.2. However, the only available version of synaptic for SuSE <= 8.1 goes together with an older version of apt-get (apt-0.5.4), so I prefered having the up-to-date apt without the GUI. I'll try synaptic with SuSE 8.2, if I ever manage to update to it:-)

For all what follows, you should be root.

Apt has two files which tell it where to search for updates, and for what kind of updates. These are /etc/apt/security.list and /etc/apt/sources.list. The first one specifies only 'security' directory as the kind of update. The latter one is to be set according to what you want to update/upgrade. I want to keep everything in one file, so I first make copies of originals:

root # cp sources.list sources.list.orig
root # cp security.list security.list.orig

and then edit the two list files that apt will search:

root # cat /etc/apt/security.list
root #
root # cat /etc/apt/sources.list
# Uncomment if you want to use SuSE's patch rpms.
# rpm ftp://ftp.gwdg.de/pub/linux/suse/apt SuSE/8.1-i386 update-prpm security-prpm

# Uncomment if you want to install/download srpms
# rpm-src ftp://ftp.gwdg.de/pub/linux/suse/apt SuSE/8.1-i386 update-prpm update
kde suse-people security-prpm security base gnome2 xfree86 mozilla extra
usr-local-bin suser-kpietrz suser-tcousin funktronics packman packman-i686
mantel-kernel wine kde3-stable

# Uncomment if you want to install (probably) highly experimental stuff
# rpm ftp://ftp.gwdg.de/pub/linux/suse/apt SuSE/8.1-i386 suse-people mantel-kernel

# A very basic sources.list line.
rpm ftp://mirrors.mathematik.uni-bielefeld.de/pub/linux/suse/apt SuSE/8.1-i386 update security
rpm ftp://ftp.uni-erlangen.de/pub/Linux/MIRROR.suse/apt SuSE/8.1-i386 updates security
rpm ftp://ftp.gwdg.de/pub/linux/suse/apt SuSE/8.1-i386 update security

# The list can be found at: http://linix01.gwdg.de/apt4rpm
rpm ftp://ftp.gwdg.de/pub/linux/suse/apt SuSE/8.1-i386 base kde kde3-stable xfree86 mozilla extra
usr-local-bin suser-kpietrz suser-tcousin funktronics packman packman-i686 gnome2 wine

root #

Using apt-get

General rule 1

Before proceeding to any updates, become root and always do the following two things:

  1. Edit the content of the /etc/apt/sources.list file as a function of what upgrade/install you want to perform (i.e., comment or uncomment some of the directories); pay attention not to repeat a directory for the same ftp source. And,
  2. Synchronise the apt-get package database on your machine (/var/cache/apt/archives) with the database provided by the server, according to the options you've specified in the /etc/apt/sources.list file:
    root # apt-get update
    

For the very first time, it took about 5-10 min to complete over 256k ADSL modem. If there is a connection problem to some of ftp sites and some directories are contained only in that site, rerun the same command later. Otherwise (other sites provide the same directories), you can just ignore the message. Other possible messages of apt-get update probably mean that you have some of search directories at more than one place in the /etc/apt/sources.list file.

General rule 2

After the installation of an rpm (i.e., after successful upgrade/install) there may be a *.rpm[save | new | orig] file created. Always do the following two things (note: .rpmsave and .rpmorig are the backup copies of their old counterparts; .rpmnew is the newly created configuration file, while the old original has been left intact):

  1. Compare the *.rpm[save | new | orig] file with its counterpart installed after update/upgrade. You might want to copy some of the settings into the new configuration file.
  2. Then remove the *.rpm[save | new | orig] file, to not disturb the further rpm update/upgrade reasoning.

You can find more on this in the SuSE admin guide (should be installed in /usr/share/doc/packages/suselinux-adminguide_en/SuSE-Linux-Adminguide-8.1.0.0dx86.pdf).

General rule 3

Always run the simulation first, i.e., add option -s to apt-get. For example:

root # apt-get -s dist-upgrade

If the apt-get reports broken packages, then try with the rpm wrapper:

root # apt-rpm --test install <package/s>

It should report you a bit more than apt-get, but still in --test mode, i.e., without actually installing anything. Note that apt-rpm will ask [yes/no] to continue. When you choose yes, it will automatically download (if necessary) the packages, and then simulate the installation. So, if you have many packages to install, think of the time you'll need for download. Unfortunately, I don't know the way to disable this download, if desired. On the other hand, it's a handy shortcut when you try to solve conflicts in small steps, as you'll find below.

Upgrading SuSE 8.1 with apt-get

Note that I've already performed the clean install of SuSE 8.1, and all what was available with Yast-online-update (YOU).

First of all, I update the apt database, and then simulate the full upgrade:

root # apt-get update
root # apt-get -s dist-upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
Calculating Upgrade... Done
The following packages will be upgraded
<...here the list of 490 packages...>
The following packages will be REPLACED:
  gpg (by gnupg)  kdeaddons3-internet (by kdeaddons3-konqueror)  kdebase3-konqueror
  (by kdebase3)  keramik (by kdelibs3)  mysql-navigator (by mysqlnavigator)  ttmkfdir
  (by XFree86)  unrar (by rar)  xf86 (by XFree86) xf86_glx (by XFree86-GLX)  xfnt100
  (by XFree86-fonts-100dpi)  xfntcyr (by XFree86-fonts-cyrillic)  xfntscl (by
  XFree86-fonts-scalable)  xloader (by XFree86-server)  xman (by XFree86-man)
  xmodules (by XFree86-server) xshared (by XFree86-libs)
The following packages will be REMOVED:
  eog2 galeon gedit2 glade2 gnome-games2 gthumb
The following NEW packages will be installed:
  XFree86 XFree86-GLX XFree86-fonts-100dpi XFree86-fonts-cyrillic
  XFree86-fonts-scalable XFree86-libs XFree86-man XFree86-server
  cabextract divx4linux fontconfig fribidi fvwm2 gnupg gtkhtml-1.1
  icons-xpm kdeaddons3-konqueror lame libstroke mysqlnavigator rar
  soup sox w32codec xvid
The following packages have been kept back
  k_deflt
490 packages upgraded, 25 newly installed, 16 replaced, 6 removed and 1 not upgraded.
E: Conf Broken gnupg
E: Conf Broken XFree86-libs
E: Conf Broken XFree86-GLX
E: Conf Broken kdelibs3
E: Conf Broken kdebase3
E: Conf Broken XFree86
E: Conf Broken XFree86-server
E: Conf Broken mysqlnavigator
E: Conf Broken XFree86-fonts-100dpi
E: Conf Broken XFree86-fonts-cyrillic
E: Conf Broken XFree86-fonts-scalable
E: Conf Broken XFree86-man
E: Conf Broken kdeaddons3-konqueror
E: Conf Broken rar
root #

This is a bit too much, plus the broken packages, so I try with only base and security.

apt-get (security, base)

I modify /etc/apt/sources.list file to search only base and security directories, run apt-get update, then apt-get -s dist-upgrade. It's impressive, that only those two directories cause as many as 465 packages to be upgraded, needing 531MB of archives! On the contrary to the full upgrade above, there is no newly installed packages, and no removed packages. As before, the kernel (k_deflt) has been kept on hold, since it is specified so in /etc/apt/apt.conf file.

To be sure that everything necessary will be installed, it is a good idea to always try with apt-get -s install, since it will discover all the dependencies for packages that are enumerated after 'install'. Therefore, I copy all of the packages enumerated by apt-get -s dist-upgrade (including k_deflt), except hsflinmodem (which broke the 56k modem in a previous installation) in a text file so they are all on the single line. To have them on the single line, when copying from the terminal window, before pressing the mouse at the beginning of the selection, press Ctrl-C and hold it while dragging the mouse to the end of the list.

Since I haven't downloaded anything of more than 500M yet, I first want to check whether something else should be installed due to dependencies:

root # apt-get -s install <k_deflt 3ddiag CheckHardware ...>

and the answer is no. So I want to download everything and still once simulate the installation, to insure there are no conflicts, and for that I use apt-rpm:

root # apt-rpm --test install <k_deflt 3ddiag CheckHardware ...>

Since I had not downloaded anything yet, I can do apt-rpm --test install, which will first download everything, and then simulate the installation, without actually installing anything. If there are conflicts, apt-rpm is more verbose than apt-get. After some 6h ("Fetched 553MB in 5h56m25s (25.8kB/s)"), everything was downloaded and there were no conflicts reported with the test installation, so I install now:

root # apt-rpm install k_deflt 3ddiag CheckHardware DirectFB FlightGear
MPlayer MyODBC-libiodbc MyODBC-unixODBC OpenOffice_org   OpenOffice_org-en
OpenOffice_org-en-help SDL SDL_image SDL_mixer WindowMaker-applets WindowMaker-themes
aaa_base aaa_skel aaa_version aalib abiword acl alsa alsa-tools apmd ash at atk attr
audiofile autoconf   automake avifile avifile-qt awesfx bc bind9-utils binutils bison
bonobo bonobo-activation bonobo-conf   bootsplash bootsplash-theme-SuSE bug-buddy2
build bzip2 calctool capi4linux cdk cdparanoia cdrdao checkinstall   cocoon compat
control-center control-center2 convert cpio cpp cracklib crafty cron ctags cups-drivers
cups-drivers-stp curl cyrus-sasl db deb devs dialog diffutils docbook_4 dos2unix
dosbootdisk dosfstools doxygen   e2fsprogs ed eel eel2 eject enigma enscript eog2
esound expat f2c fam fbset file-roller filesystem fileutils   fillup findutils finger
fltk freeciv freetype gail gal galeon gamix gawk gcc gcc-c++ gcc-g77 gcc-info gconf
gconf-editor gconf2 gdb gdbm gdk-pixbuf gdm2 gedit2 ghostscript-fonts-other
ghostscript-fonts-std   ghostscript-library ghostscript-x11 gimp glade2 glchess gle glib
glib2 gmp gnome-applets2 gnome-audio   gnome-common gnome-games2 gnome-libs gnome-media2
gnome-mime-data gnome-panel gnome-print gnome-session   gnome-utils2 gnome-vfs gnome-vfs2
gnome2-SuSE gpg gphoto gpm grep groff gsl gthumb gtk gtk2-engines gtk2-themes   gtkglarea
gtkhtml gtop guile gv gxmhtml gzip hdparm hermes hotplug htdig html2txt htmldoc hwinfo
i4l-isdnlog i4lfirm icons ifnteuro imlib imwheel inetd inf2htm initviocons intlfnts
iproute2 iptables iputils   irda isapnp iso_ent ispell ispell-american ispell-british
jakarta-ant jakarta-tomcat java2 java2-jre jfsutils   joe joystick k3b kdbg kde2-compat
kdebase3-SuSE keramik kinternet kprof krpmbuilder krusader kssh ksymoops   kwatch l2h
l2h-pngicons l2hhtml less libPropList libart_lgpl libavc1394 libbonobo libbonoboui libcap
libdv   libdvdread libexif libgcc libghttp libgimpprint libglade libglade2 libgnome
libgnomecanvas libgnomeprint   libgnomeprintui libgnomeui libgphoto2 libgtkhtml libgtop
libidl libiodbc libjpeg liblcms libmikmod libmng   libmpeg3 libogg libpcap libquicktime
libraw1394 librep librsvg librsvg2 libstdc++ libstdc++-devel libtiff libtool libungif libunicode
libusb libvorbis libwmf libwnck libxcrypt libxml libxml2 libxslt libzvt2 lilo linc
linux-atm lirc listexec logrotate lsof lukemftp lvm m4 mad mailx make man-pages
mdadm medusa mesa mesaglu   mesaglut mesasoft metacity metacity-setup metacity-themes
mhash mjpegtools mktemp mm modutils mozilla mtools   mysql-navigator nautilus-themes
nautilus2-gtkhtml ncurses nedit net-tools netcat netcfg netscape-plugins ngpt
oaf openldap2-client openmotif opera orbit orbit2 pam pango parted patch pciutils pcmcia
pcre pcsc-lite perl   perl-DBI perl-Data-ShowTable perl-Msql-Mysql-modules perl-Tk
perl-gettext permissions pico pin pixieplus-kde   portmap powertweak procmail providers
ps pspell python qt qt3 qt3-non-mt racer racerdata raidtools recode   reiserfs
release-notes rpm2html rpmfind rrdtool rsh sash sax2 saxident saxtools scpm screen
scrollkeeper sed   sensors setserial sgi-fonts sgml-skel sh-utils simutrans sitar
sitecopy slang smpeg smpppd sodipodi src_vipa   strace sudo suse-build-key
suselinux-userguide_en susetour susetour_en susewm susewm-kcmyast sysvinit tar
taskjuggler tcm tcpd tcsh te_latex telnet terminfo tetex texinfo textutils tix
ttmkfdir unclutter unixODBC   unrar usbutils usbview utempter vacation valgrind
vim wine wireless-tools words wvdial xanim xaw3d xbanner   xchat xdmbgrd xemacs
xemacs-info xf86 xf86_glx xf86tools xfine xfnt100 xfntcyr xfntl2 xfntscl xfntscl2
xhtml-dtd xloader xlock xman xmlcharent xmms xmodules xpenguins xscreensaver xtermset
yast2 yast2-backup   yast2-control-center yast2-country yast2-firewall yast2-installation
yast2-ldap-client yast2-mouse   yast2-nfs-client yast2-nfs-server yast2-nis-server
yast2-nisplus-client yast2-packager yast2-pam   yast2-powertweak yast2-printer
yast2-printerdb yast2-profile-manager yast2-restore yast2-runlevel yast2-scanner
yast2-security yast2-sound yast2-storage yast2-support yast2-sysconfig yast2-trans-en_US
yast2-transfer   yast2-tune yast2-tv yast2-update yast2-users yast2-x11 yast2-xml yelp
yp-tools ypbind zip ziptool zsh
apt-rpm executing: apt-get -o rpm::options::=--test install k_deflt 3ddiag CheckHardware ...
The following packages will be upgraded
  3ddiag CheckHardware DirectFB FlightGear MPlayer MyODBC-libiodbc MyODBC-unixODBC
  OpenOffice_org OpenOffice_org-en OpenOffice_org-en-help SDL SDL_image SDL_mixer
  WindowMaker-applets WindowMaker-themes aaa_base aaa_skel aaa_version aalib abiword
  acl alsa alsa-tools apmd ash at atk attr audiofile autoconf automake avifile avifile-qt
  awesfx bc bind9-utils binutils bison bonobo bonobo-activation bonobo-conf
  bootsplash bootsplash-theme-SuSE bug-buddy2 build bzip2 calctool capi4linux
  cdk cdparanoia cdrdao checkinstall cocoon compat control-center control-center2
  convert cpio cpp cracklib crafty cron ctags cups-drivers cups-drivers-stp curl
  cyrus-sasl db deb devs dialog diffutils docbook_4 dos2unix dosbootdisk
  dosfstools doxygen e2fsprogs ed eel eel2 eject enigma enscript eog2 esound
  expat f2c fam fbset file-roller filesystem fileutils fillup findutils finger
  fltk freeciv freetype gail gal galeon gamix gawk gcc gcc-c++ gcc-g77 gcc-info
  gconf gconf-editor gconf2 gdb gdbm gdk-pixbuf gdm2 gedit2 ghostscript-fonts-other
  ghostscript-fonts-std ghostscript-library ghostscript-x11 gimp glade2 glchess gle
  glib glib2 gmp gnome-applets2 gnome-audio gnome-common gnome-games2 gnome-libs
  gnome-media2 gnome-mime-data gnome-panel gnome-print gnome-session gnome-utils2
  gnome-vfs gnome-vfs2 gnome2-SuSE gpg gphoto gpm grep groff gsl gthumb gtk
  gtk2-engines gtk2-themes gtkglarea gtkhtml gtop guile gv gxmhtml gzip hdparm
  hermes hotplug htdig html2txt htmldoc hwinfo i4l-isdnlog i4lfirm icons ifnteuro
  imlib imwheel inetd inf2htm initviocons intlfnts iproute2 iptables iputils irda
  isapnp iso_ent ispell ispell-american ispell-british jakarta-ant jakarta-tomcat
  java2 java2-jre jfsutils joe joystick k3b k_deflt kdbg kde2-compat kdebase3-SuSE
  keramik kinternet kprof krpmbuilder krusader kssh ksymoops kwatch l2h l2h-pngicons
  l2hhtml less libPropList libart_lgpl libavc1394 libbonobo libbonoboui libcap libdv
  libdvdread libexif libgcc libghttp libgimpprint libglade libglade2 libgnome
  libgnomecanvas libgnomeprint libgnomeprintui libgnomeui libgphoto2 libgtkhtml
  libgtop libidl libiodbc libjpeg liblcms libmikmod libmng libmpeg3 libogg libpcap
  libquicktime libraw1394 librep librsvg librsvg2 libstdc++ libstdc++-devel libtiff
  libtool libungif libunicode libusb libvorbis libwmf libwnck libxcrypt libxml
  libxml2 libxslt libzvt2 lilo linc linux-atm lirc listexec logrotate lsof lukemftp
  lvm m4 mad mailx make man-pages mdadm medusa mesa mesaglu mesaglut mesasoft
  metacity metacity-setup metacity-themes mhash mjpegtools mktemp mm modutils mozilla
  mtools mysql-navigator nautilus-themes nautilus2-gtkhtml ncurses nedit net-tools
  netcat netcfg netscape-plugins ngpt oaf openldap2-client openmotif opera orbit
  orbit2 pam pango parted patch pciutils pcmcia pcre pcsc-lite perl perl-DBI
  perl-Data-ShowTable perl-Msql-Mysql-modules perl-Tk perl-gettext permissions pico
  pin pixieplus-kde portmap powertweak procmail providers ps pspell python qt qt3
  qt3-non-mt racer racerdata raidtools recode reiserfs release-notes rpm2html rpmfind
  rrdtool rsh sash sax2 saxident saxtools scpm screen scrollkeeper sed sensors
  setserial sgi-fonts sgml-skel sh-utils simutrans sitar sitecopy slang smpeg smpppd
  sodipodi src_vipa strace sudo suse-build-key suselinux-userguide_en susetour
  susetour_en susewm susewm-kcmyast sysvinit tar taskjuggler tcm tcpd tcsh te_latex
  telnet terminfo tetex texinfo textutils tix ttmkfdir unclutter unixODBC unrar
  usbutils usbview utempter vacation valgrind vim wine wireless-tools words wvdial
  xanim xaw3d xbanner xchat xdmbgrd xemacs xemacs-info xf86 xf86_glx xf86tools xfine
  xfnt100 xfntcyr xfntl2 xfntscl xfntscl2 xhtml-dtd xloader xlock xman xmlcharent xmms
  xmodules xpenguins xscreensaver xtermset yast2 yast2-backup yast2-control-center
  yast2-country yast2-firewall yast2-installation yast2-ldap-client yast2-mouse
  yast2-nfs-client yast2-nfs-server yast2-nis-server yast2-nisplus-client yast2-packager
  yast2-pam yast2-powertweak yast2-printer yast2-printerdb yast2-profile-manager
  yast2-restore yast2-runlevel yast2-scanner yast2-security yast2-sound yast2-storage
  yast2-support yast2-sysconfig yast2-trans-en_US yast2-transfer yast2-tune yast2-tv
  yast2-update yast2-users yast2-x11 yast2-xml yelp yp-tools ypbind zip ziptool zsh
465 packages upgraded, 0 newly installed, 0 removed and 1 not upgraded.
Need to get 0B/553MB of archives.
After unpacking 3460kB of additional disk space will be used.

Executing RPM (-Uvh)...

Updating etc/gshadow...unchanged
gpg: Warning: unsafe permissions on file "root/.gnupg/suse_build_key"
gpg: Warning: unsafe permissions on file "/root/.gnupg/pubring.gpg"
gpg: key 9C800ACA: not changed
gpg: Total number processed: 1
gpg:              unchanged: 1

k_deflt                     ##################################################
using "/dev/hda9" as root device (mounted on "/" as "ext3")

creating initrd "/boot/initrd" for kernel "/boot/vmlinuz"
(version 2.4.19-4GB)
- insmod jbd                 (kernel/fs/jbd/jbd.o)
- insmod ext3                (kernel/fs/ext3/ext3.o)
- insmod ide-scsi            (kernel/drivers/scsi/ide-scsi.o)
- splash picture (1024x768)
config file missing (//usr/share/splash/themes/current/config/bootsplash-1024x768.cfg).

creating initrd "/boot/initrd.shipped" for kernel "/boot/vmlinuz.shipped"
(version 2.4.19-4GB)
- insmod jbd                 (kernel/fs/jbd/jbd.o)
- insmod ext3                (kernel/fs/ext3/ext3.o)
- insmod ide-scsi            (kernel/drivers/scsi/ide-scsi.o)
- splash picture (1024x768)
config file missing (//usr/share/splash/themes/current/config/bootsplash-1024x768.cfg).
using grub, re-install of bootloader not required.

warning: /etc/isdn/isdn.conf saved as /etc/isdn/isdn.conf.rpmsave
root #

Let's see the messages to pay attention to:

  1. "config file missing (//usr/share/splash/themes/current/config/bootsplash-1024x768.cfg)." - In effect, there is no directory /usr/share/splash/themes/current, but I found where the file is:
    root # find / -name bootsplash-1024x768.cfg
    /usr/share/splash/themes/SuSE/config/bootsplash-1024x768.cfg
    root #
    
    I have no idea whether the missing "current" directory is a problem, and what to do with this, but it's been noted.
  2. "warning: /etc/isdn/isdn.conf saved as /etc/isdn/isdn.conf.rpmsave" - After comparing the two, there is no difference, except for more comments in the new file, so I remove the old:
    root # rm /etc/isdn/isdn.conf.rpmsave
    
  3. After installing java2-jre and java2, SuSEconfig.java has not been run, because the new packages installed are just a bug-fix release of 1.3.1 (already installed), so it replaces the existing one. I guess that if the new release is installed, apt will run SuSE.alljava. Note also the following:
  4. After updating the kernel (k_deflt), apt had run mk_initrd, since it is configured to do so by default (just relevant parts of the file shown below):
    root # cat /etc/apt/apt.conf
    // with "apt-config dump" all settings can be viewed
    .......
    RPM
    {
    ......
       // Run a post configure script, like SuSEconfig?
       PostConfigureScript true;
    }
    ......
    SystemConfig
    {
      // BootMgr /sbin/lilo;
      KernelPkg k_deflt,k_smp,kernel;
      ConfigureScript /sbin/SuSEconfig;
    }
    
    root #
    

    Boot manager lilo line is commented out, since I'm using grub (or, since SuSE 8.1 by default uses grub?). If you are using lilo, be sure to uncomment the above line, or at least to run lilo manually, otherwise you couldn't boot!

  5. After certain other updates, apt had run SuSEconfig, because it is also configured to do so by default - see the file excerpt above.

So, everything seems ok now, and I'll reboot.

At the boot, I had no boot splash screen, and after loging in, mozilla didn't work. I concluded that I should probably run SuSEconfig, to really update everything. So I ran it:

root # SuSEconfig
......
updating mozilla registry ...
-> Java2: no change (link valid or JRE not available)
-> RealPlayer: no change (link valid or not available)
-> AcrobatReader: no change (link valid or not available)
-> Flash: no change (link valid or not available)
......
Finished.
root #

Now mozilla works and inspecting /usr/share/splash/themes directory, I notice there is now a directory current (which is symbolic link to SuSE). I reboot to check whether bootsplash is also ok, but it isn't. I conclude that I should probably run mk_initrd:

root # mk_initrd

This time, there was no message "config file missing (...)". I finally rebooted once more, and in effect, I had a nice boot splash :-)

Bottomline:

  1. Every time after installing something with apt-get/apt-rpm, run SuSEconfig
  2. If that something is k_deflt, run also mk_initrd. If using lilo bootloader, run also lilo.

apt-get (all)

I modify /etc/apt/sources.list file to search all the directories, run apt-get update, then apt-get -s dist-upgrade:

root # apt-get update
root # apt-get -s dist-upgrade
The following packages will be upgraded
  SDL aalib abiword alsa alsa-tools arts atk audiofile autoconf automake avifile
avifile-qt bonobo-activation bonobo-conf bug-buddy2 capi4linux cdrdao cdrecord
control-center2 curl docbook_4 eel2 evolution expat file-roller fltk freetype2
gail gal gconf-editor gconf2 gdm2 ghostscript-library gimp glib2 gnome-applets2
gnome-common gnome-desktop gnome-media2 gnome-mime-data gnome-panel gnome-print
gnome-session gnome-utils2 gnome-vfs2 gtk2 gtk2-engines guile hdparm hsflinmodem
i4l-isdnlog i4lfirm k3b kdbg kdeaddons3-kate kdeaddons3-kicker kdeaddons3-sound
kdeadmin3 kdeartwork3 kdeartwork3-sound kdebase3 kdebase3-extra kdebase3-kdm
kdebase3-ksysguardd kdebase3-nsplugin kdegames3 kdegames3-arcade kdegames3-board
kdegames3-card kdegames3-tactic kdegraphics3 kdegraphics3-extra kdegraphics3-fax
kdegraphics3-kamera kdegraphics3-postscript kdegraphics3-tex kdelibs3 kdelibs3-cups
kdemultimedia3-midi kdemultimedia3-sound kdemultimedia3-video kdenetwork3
kdenetwork3-chat kdenetwork3-mail kdenetwork3-news kdepim3 kdepim3-organizer kdetoys3
kdeutils3 kdeutils3-laptop kprof krpmbuilder krusader kssh kwatch libart_lgpl
libbonobo libbonoboui libdv libdvdread libglade2 libgnome libgnomecanvas
libgnomeprint libgnomeprintui libgnomeui libgtkhtml libidl librsvg2 libusb libwnck
libxml2 libxslt libzvt2 linc metacity metacity-setup mjpegtools mkisofs mozilla
nautilus2 nautilus2-gtkhtml orbit2 pango qt3 qt3-non-mt sax2 saxident saxtools
scrollkeeper sgml-skel taskjuggler valgrind wine xchat xf86tools yelp
The following packages will be REPLACED:
  gpg (by gnupg)  kdeaddons3-internet (by kdeaddons3-konqueror)  kdebase3-konqueror
(by kdebase3)  keramik (by kdelibs3)  mysql-navigator (by mysqlnavigator)  ttmkfdir
(by XFree86)  unrar (by rar)  xf86 (by XFree86) xf86_glx (by XFree86-GLX)  xfnt100
(by XFree86-fonts-100dpi)  xfntcyr (by XFree86-fonts-cyrillic)  xfntscl (by 
XFree86-fonts-scalable)  xloader (by XFree86-server)  xman (by XFree86-man)  xmodules
(by XFree86-server) xshared (by XFree86-libs)
The following packages will be REMOVED:
  eog2 galeon gedit2 glade2 gnome-games2 gthumb
The following NEW packages will be installed:
  XFree86 XFree86-GLX XFree86-fonts-100dpi XFree86-fonts-cyrillic XFree86-fonts-scalable
XFree86-libs XFree86-man XFree86-server cabextract divx4linux fontconfig fribidi
fvwm2 gnupg gtkhtml-1.1 icons-xpm kdeaddons3-konqueror lame libstroke mysqlnavigator
rar soup sox w32codec xvid
137 packages upgraded, 25 newly installed, 16 replaced, 6 removed and 0 not upgraded.
..............
E: Conf Broken XFree86-libs
E: Conf Broken XFree86-GLX
E: Conf Broken XFree86-server
E: Conf Broken kdelibs3
E: Conf Broken kdebase3
E: Conf Broken XFree86
E: Conf Broken mysqlnavigator
E: Conf Broken XFree86-fonts-100dpi
E: Conf Broken XFree86-fonts-cyrillic
E: Conf Broken XFree86-fonts-scalable
E: Conf Broken XFree86-man
E: Conf Broken gnupg
E: Conf Broken kdeaddons3-konqueror
E: Conf Broken rar
root #

I try to update the packages told to be removed (to insure having the latest versions):

root # apt-rpm --test install eog2 galeon gedit2 glade2 gnome-games2 gthumb
The following packages have unmet dependencies:
  galeon: Depends: mozilla (= 1.2.1) but 1.4-1 is to be installed
  gnome-games2: Depends: libguile.so.9 but it is not installable
E: Broken packages
root #
root # apt-rpm --test install mozilla=1.2.1
E: Version '1.2.1' for 'mozilla' was not found
root # 

REM: galeon: I'd like to have the latest mozilla, and I normally don't use galeon at all. Before letting apt remove it, I check with apt-cache show galeon what it provides and find it's only one library. Then for the library it provides and for the package itself, I search with apt-cache search <lib_name> and apt-cache search gnome-games2 - the two strings appear only in galeon package, so there should be no broken dependencies.

REM: gnome-games2: By searching with apt-cache search libguile.so, I find that guile package provides it, and with apt-cache show guile, I find that the version provided is libguile.so.12. I guess that many gnome applications will need this library so I don't want to downgrade it. Then I searched the web with the string for "gnome-games2 libguile.so.12 suse" and found that the package is an rpm for SuSE 8.2, so I'll have to wait until I do the upgrade to SuSE 8.2. Before letting apt to remove it, I check with apt-cache show gnome-games2 what it provides, and then for all the 3 libraries it provides and for the package itself, I search with apt-cache search <lib_name> and apt-cache search gnome-games2 - all the four strings appear only in gnome-games2 package, so there should be no broken dependencies.

By now, I retry install of the other 4 packages, and removal of gnome-games2 and galeon. It shows no conflicts, so I run the command for real, and after that SuSEconfig:

root # apt-rpm install galeon- gnome-games2- eog2 gedit2 glade2 gthumb
gthumb is already the newest version.
The following packages will be upgraded
  eog2 gedit2 glade2
The following packages will be REMOVED:
  galeon gnome-games2
3 packages upgraded, 0 newly installed, 2 removed and 138 not upgraded.
Need to get 0B/1868kB of archives.
Executing RPM (-e)...
Executing RPM (-Uvh)...
root #
root # SuSEconfig

I retry dist-upgrade, and the result is the same as above (except for galeon and gnome-games2 that has just been removed).

There are still the same packages to be removed. Ok, I try now to upgrade only those packages told to be replaced (to insure having the latest versions). Test mode gives no conflicts (only package gpg is upgraded), so I do it for real, and then run SuSEconfig:

root # apt-rpm install gpg kdeaddons3-internet kdebase3-konqueror keramik
mysql-navigator ttmkfdir unrar xf86 xf86_glx xfnt100 xfntcyr xfntscl
xloader xman xmodules xshared
kdeaddons3-internet is already the newest version.
kdebase3-konqueror is already the newest version.
keramik is already the newest version.
mysql-navigator is already the newest version.
ttmkfdir is already the newest version.
unrar is already the newest version.
xf86 is already the newest version.
xf86_glx is already the newest version.
xfnt100 is already the newest version.
xfntcyr is already the newest version.
xfntscl is already the newest version.
xloader is already the newest version.
xman is already the newest version.
xmodules is already the newest version.
xshared is already the newest version.
The following packages will be upgraded
  gpg
1 packages upgraded, 0 newly installed, 0 removed and 137 not upgraded.
Need to get 0B/1010kB of archives.
Executing RPM (-Uvh)...
gpg                         ##################################################
root #
root # SuSEconfig

I retry dist-upgrade and there are still the same problems. Well, I try now with apt-rpm --test install with all the packages to be upgraded and all to be newly installed, on the same line (this will also do the download and show conflicts, if any):

root # apt-rpm --test install <all from "upgraded" and all from "NEW installed", on one line>
.......... <output same as above, with apt-get -s dist-upgrade>
137 packages upgraded, 25 newly installed, 16 replaced, 4 removed and 0 not upgraded.
Need to get 256MB of archives.
After unpacking 148MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Fetched 256MB in 4h37m51s (15.4kB/s)
Executing RPM (-e)...
Executing RPM (-Uvh)...
file /sbin/conf.d/SuSEconfig.fonts from install of xf86tools-0.1-539
conflicts with file from package aaa_base-2002.10.14-0
file /opt/kde3/share/mimelnk/image/x-pcx.desktop from install of kdelibs3-3.1.3-22
conflicts with file from package pixieplus-kde-0.3-298
file /etc/fonts/fonts.conf conflicts between attemped installs of fontconfig-2.1-3 and xf86tools-0.1-539
file /etc/skel/.Xdefaults from install of XFree86-4.3.0-17
conflicts with file from package aaa_skel-2002.10.14-0
file /etc/skel/.xinitrc from install of XFree86-4.3.0-17
conflicts with file from package aaa_skel-2002.10.14-0
file /etc/skel/.xsession from install of XFree86-4.3.0-17
conflicts with file from package aaa_skel-2002.10.14-0
E: Sub-process /bin/rpm returned an error code (59)
root #

There are 6 conflicts shown. We can avoid the second one:

REM: pixieplus-kde: After searching on the web, and checking dependencies, I decided to remove this package, and to reinstall it once I upgrade SuSE to 8.2:

root # apt-rpm remove pixieplus-kde
The following packages will be REMOVED:
  pixieplus-kde
0 packages upgraded, 0 newly installed, 1 removed and 137 not upgraded.
Do you want to continue? [Y/n] y
Executing RPM (-e)...
root #
root # SuSEconfig

The other conflicts are impossible to avoid, so it will be necessary to force the install. However, it is just files, so I guess there should be no broken packages.

Note 1: If you don't plan to upgrade the system to SuSE 8.2, you could save somewhere those nice SuSE icons which will disappear with KDE 3.1 in SuSE 8.1: they are in /opt/kde3/share/icons/crystal.

Note 2: If you do plan to upgrade the system to SuSE 8.2, read the section "Small downgrade of some SuSE 8.1 KDE 3.1 packages" first, then come back here. If the 4 conflicting packages to be installed have the version mentioned, you'd better specify downgrade versions explicitly before actually doing the upgrade that follows.

Finally, I want to be sure that the only conflicts are those shown above, and I want also to see what causes the 4 gnome packages to be removed. By simulating apt-rpm --test install with the packages above (add a few and simulate, add a few more and simulate, and so on), I found those which cause conflicts. To summarize:

So, the conflicts are caused by the two packages (xf86tools updated after fontconfig, and XFree86 newly installed). I first simulate with --force-rpm-install option, and there are no conflicts, so I can proceed with the real install, and cross fingers (at this point, I'm still quite beginner with apt):

root # apt-rpm --force-rpm-install install SDL aalib abiword alsa alsa-tools arts atk
audiofile autoconf automake avifile avifile-qt bonobo-activation bonobo-conf
bug-buddy2 capi4linux cdrdao cdrecord control-center2 curl docbook_4
eel2 evolution expat   file-roller fltk freetype2 gail gal gconf-editor gconf2 gdm2
ghostscript-library gimp glib2 gnome-applets2 gnome-common gnome-desktop gnome-media2
gnome-mime-data gnome-panel gnome-print gnome-session gnome-utils2   gnome-vfs2 gtk2
gtk2-engines guile hdparm i4l-isdnlog i4lfirm k3b kdbg kdeaddons3-kate
kdeaddons3-kicker kdeaddons3-sound kdeadmin3 kdeartwork3 kdeartwork3-sound kdebase3
kdebase3-extra   kdebase3-kdm kdebase3-ksysguardd kdebase3-nsplugin kdegames3
kdegames3-arcade kdegames3-board kdegames3-card kdegames3-tactic kdegraphics3
kdegraphics3-extra kdegraphics3-fax kdegraphics3-kamera kdegraphics3-postscript
kdegraphics3-tex kdelibs3 kdelibs3-cups kdemultimedia3-midi kdemultimedia3-sound
kdemultimedia3-video   kdenetwork3 kdenetwork3-chat kdenetwork3-mail kdenetwork3-news
kdepim3 kdepim3-organizer kdetoys3 kdeutils3   kdeutils3-laptop kprof krpmbuilder
krusader kssh kwatch libart_lgpl libbonobo libbonoboui libdv libdvdread libglade2
libgnome libgnomecanvas libgnomeui libgtkhtml libidl librsvg2 libusb libwnck libxml2
libxslt libzvt2 linc metacity metacity-setup mjpegtools mkisofs mozilla nautilus2
nautilus2-gtkhtml orbit2 pango qt3 qt3-non-mt sax2 saxident saxtools scrollkeeper
sgml-skel taskjuggler valgrind wine xchat yelp XFree86-GLX XFree86-fonts-100dpi
XFree86-fonts-cyrillic XFree86-fonts-scalable XFree86-server cabextract divx4linux
fontconfig fribidi fvwm2 gnupg gtkhtml-1.1 icons-xpm   kdeaddons3-konqueror lame
libstroke mysqlnavigator rar soup sox w32codec xvid xf86tools XFree86 XFree86-libs
XFree86-man
The following packages will be upgraded
  SDL aalib abiword alsa alsa-tools arts atk audiofile autoconf automake avifileavifile-qt
bonobo-activation bonobo-conf bug-buddy2 capi4linux cdrdao cdrecord control-center2
curl docbook_4 eel2 evolution expat file-roller fltk freetype2 gail gal gconf-editor
gconf2 gdm2 ghostscript-library gimp glib2 gnome-applets2 gnome-common gnome-desktop
gnome-media2 gnome-mime-data gnome-panel gnome-print gnome-session gnome-utils2 gnome-vfs2
gtk2 gtk2-engines guile hdparm i4l-isdnlog i4lfirm k3b kdbg kdeaddons3-kate
kdeaddons3-kicker kdeaddons3-sound kdeadmin3 kdeartwork3 kdeartwork3-sound kdebase3
kdebase3-extra kdebase3-kdm kdebase3-ksysguardd kdebase3-nsplugin kdegames3
kdegames3-arcade kdegames3-board kdegames3-card kdegames3-tactic kdegraphics3
kdegraphics3-extra kdegraphics3-fax kdegraphics3-kamera kdegraphics3-postscript
kdegraphics3-tex kdelibs3 kdelibs3-cups kdemultimedia3-midi kdemultimedia3-sound
kdemultimedia3-video kdenetwork3 kdenetwork3-chat kdenetwork3-mail kdenetwork3-news
kdepim3 kdepim3-organizer kdetoys3 kdeutils3 kdeutils3-laptop kprof krpmbuilder krusader
kssh kwatch libart_lgpl libbonobo libbonoboui libdv libdvdread libglade2 libgnome
libgnomecanvas libgnomeui libgtkhtml libidl librsvg2 libusb libwnck libxml2 libxslt
libzvt2 linc metacity metacity-setup mjpegtools mkisofs mozilla nautilus2
nautilus2-gtkhtml orbit2 pango qt3 qt3-non-mt sax2 saxident saxtools scrollkeeper
sgml-skel taskjuggler valgrind wine xchat xf86tools yelp
The following packages will be REPLACED:
  gpg (by gnupg)  kdeaddons3-internet (by kdeaddons3-konqueror)  kdebase3-konqueror
(by kdebase3)  keramik (by kdelibs3) mysql-navigator (by mysqlnavigator)  ttmkfdir
(by XFree86)  unrar (by rar)  xf86 (by XFree86)  xf86_glx (by XFree86-GLX) xfnt100
(by XFree86-fonts-100dpi)  xfntcyr (by XFree86-fonts-cyrillic)  xfntscl
(by XFree86-fonts-scalable)  xloader (by XFree86-server)  xman (by XFree86-man)
xmodules (by XFree86-server)  xshared (by XFree86-libs)
The following NEW packages will be installed:
  XFree86 XFree86-GLX XFree86-fonts-100dpi XFree86-fonts-cyrillic XFree86-fonts-scalable
XFree86-libs XFree86-man XFree86-server cabextract divx4linux fontconfig fribidi
fvwm2 gnupg gtkhtml-1.1 icons-xpm kdeaddons3-konqueror lame libstroke mysqlnavigator
rar soup sox w32codec xvid
 134 packages upgraded, 25 newly installed, 16 replaced, 0 removed and 3 not upgraded.
Need to get 0B/255MB of archives.
After unpacking 156MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Executing RPM (-Uvh)...

scrollkeeper                ##################################################
sbin/conf.d/SuSEconfig.scrollkeeper: line 16: /etc/xml/catalog: Permission denied
.....................
Registering /opt/gnome/share/omf/evolution/evolution-C.omf
Registering /opt/gnome/share/omf/evolution/evolution-no.omf
Registering /opt/gnome2/share/omf/file-roller/file-roller-ru.omf
OMF file [/opt/gnome2/share/omf/glade-2/glade-faq-C.omf] does not validate against
ScrollKeeper-OMF DTD: /usr/share/xml/scrollkeeper/dtds/scrollkeeper-omf.dtd
Unable to register /opt/gnome2/share/omf/glade-2/glade-faq-C.omf
OMF file [/opt/gnome2/share/omf/glade-2/glade-turbo-start-C.omf] does not validate against
ScrollKeeper-OMF DTD: /usr/share/xml/scrollkeeper/dtds/scrollkeeper-omf.dtd
Unable to register /opt/gnome2/share/omf/glade-2/glade-turbo-start-C.omf
OMF file [/opt/gnome2/share/omf/glade-2/glade-user-guide-C.omf] does not validate against
ScrollKeeper-OMF DTD: /usr/share/xml/scrollkeeper/dtds/scrollkeeper-omf.dtd
Unable to register /opt/gnome2/share/omf/glade-2/glade-user-guide-C.omf
.....................
root #
root # SuSEconfig
.....................
Executing /sbin/conf.d/SuSEconfig.gconf2...
warning: failed to load external entity "/etc/opt/gnome2/gconf/schemas/multiload.schemas"
Failed to open `/etc/opt/gnome2/gconf/schemas/multiload.schemas': No such file or directory
cp: cannot stat `/etc/opt/gnome2/gconf/schemas/multiload.schemas': No such file or directory
warning: failed to load external entity "/etc/opt/gnome/gconf/preconf/schemas/multiload.schemas"
Failed to open `/etc/opt/gnome/gconf/preconf/schemas/multiload.schemas': No such file or directory
cp: cannot stat `/etc/opt/gnome2/gconf/schemas/multiload.schemas': No such file or directory
warning: failed to load external entity "/etc/opt/gnome/gconf/su/schemas/multiload.schemas"
Failed to open `/etc/opt/gnome/gconf/su/schemas/multiload.schemas': No such file or directory
.....................
Finished.
root # 

The only thing to fix is the line "sbin/conf.d/SuSEconfig.scrollkeeper: line 16: /etc/xml/catalog: Permission denied". I inspected the file /sbin/conf.d/SuSEconfig.scrollkeeper at the line 16, and found that a wrong variable is used. I commented out the buggy line and copied it, while fixing the variable name:

# file /sbin/conf.d/SuSEconfig.scrollkeeper
......
# commented line 16 and fixed the variable: $xmlcatalog --> $xmlcatbin
#if $xmlcatalog /etc/xml/catalog "-//OASIS//DTD DocBook XML V4.1.2//EN" \
if $xmlcatbin /etc/xml/catalog "-//OASIS//DTD DocBook XML V4.1.2//EN" \
......

Now, update the configuration:

root # SuSEconfig

Note: Before rebooting, it might be a good idea to remove KDE and Gnome user configuration directories, because both window managers will create the defaults when you login the next time. I didn't do it here, but later (after the upgrade to SuSE 8.2) - that's why I guess I should have done it already here. Note that with this all the configuration of the desktop, Konqueror, KMail, etc. is deleted, so you have to configure everything again. But I believe it is worth since some old files, not anymore used with KDE 3.1 and Gnome 2.2 will be cleaned. So, logout and login as root, then in your normal user directory (/home/tanja/) delete:

Finally, reboot and enjoy!

Conclusion: full upgrade of SuSE 8.1 with apt

After upgrade to SuSE 8.2, I will re-install gnome-games2 and pixieplus-kde, and install synaptic.