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:
- 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,
- 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):
- 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.
- 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:
- "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. - "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
- 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:
- 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!
- 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:
- Every time after installing something with apt-get/apt-rpm, run SuSEconfig
- 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:
- I don't want to upgrade hsflinmodem (the upgraded version will not work)
- I don't want to upgrade libgnomeprint and libgnomeprintui (they cause the 4 gnome packages to be removed)
- if I keep back packages xf86tools (for upgrade), and newly installed packages XFree86, XFree86-libs and XFree86-man (the latter two depending on XFree86), I have no conflicts at all.
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:
- directories: .kde, .kde2, .qt, .fonts, .thumbnails, .gnome2_private, .gnome, .gnome-desktop, evolution, .gnome2, .gconf, .gconfd, .metacity, GNUstep
- files: .gtkrc-1.2-gnome2, .skel/kdebase3
Finally, reboot and enjoy!
Conclusion: full upgrade of SuSE 8.1 with apt
- I did it after the clean (DVD) install of SuSE 8.1, and the full update with YOU (Yast-online-update).
- It went rather smoothly, for a beginner I was.
- It let me learn how to better use apt-get/apt-rpm/apt-cache, how to check dependencies, etc.
- I had to remove only 3 packages: galeon, gnome-games2 and pixieplus-kde.
- Even if dist-upgrade suggests something to upgrade, I need not do it if it causes other things to be removed. If the list of suggested upgrades is long (as above), it just takes some time to find out which are the packages to remove from the install list (to avoid removal of other packages). Finding it means playing with 'apt-cache search <string>', 'apt-cache show <pkg>', 'apt-cache depends <pkg>', and 'apt-rpm --test install <pkgs>'.
- With the latest version of apt available for SuSE 8.1, I couldn't install synaptic (apt's GUI front-end).
- I must say that I didn't test many applications after the upgrade, neither have I configured anything in particular, simply because I was impatient to go for upgrade to SuSE2. For this purpose, I used apt, ADSL modem, Konsole teminal, Konqueror in superuser mode, KWrite, Konqueror browser and Mozilla browser, Mozilla composer (to write this as I progressed), Kmail - all these worked perfectly. I can't state more for the rest: you'll have to check yourself.
- I didn't try Gnome desktop at all (in the past, I remember it was broken after installing WinXP TrueType fonts)
- KDE 3.1 looks great