Another success story of APT usage in SUSE. I had two systems running SuSE 9.1, regularly updated with apt, and though i had newest KDE and GNOME, and other applications, i decided to upgrade to 9.3. The task was bit difficult, since some of installed packages were already "newer" than from the 9.3 ftp distribution. Also, i had numerous updates from packman, and other alternative package sources. Besides, i do lost of development, so my systems contained >1500 packages. before doing all the steps described below, you should get acquainted with what APT is, RPM, and other SUSE internals. PLEASE, NOTE: REPEATING THIS MAY DAMAGE YOUR SYSTEM APT IS NOT OFFICIALLY SUPPORTED BY SUSE-NOVELL! also, YAST update services may also not work properly after that. ! here is what i did: 1. backed up apt configuration, and other vital parts of the system. (such are /etc, users' data and mail, etc) 2. replaced /etc/apt/sources.list with a one from 9.3, and here is how it looked: rpm http://ftp4.gwdg.de/pub/linux/suse/apt/ SuSE/9.3-i386 rpmkeys rpm http://ftp4.gwdg.de/pub/linux/suse/apt/ SuSE/9.3-i386 base rpm http://ftp4.gwdg.de/pub/linux/suse/apt/ SuSE/9.3-i386 update rpm http://ftp4.gwdg.de/pub/linux/suse/apt/ SuSE/9.3-i386 kde rpm http://ftp4.gwdg.de/pub/linux/suse/apt/ SuSE/9.3-i386 misc rpm http://ftp4.gwdg.de/pub/linux/suse/apt/ SuSE/9.3-i386 x-ati rpm http://ftp4.gwdg.de/pub/linux/suse/apt/ SuSE/9.3-i386 mozilla rpm http://ftp4.gwdg.de/pub/linux/suse/apt/ SuSE/9.3-i386 packman-i686 rpm http://ftp4.gwdg.de/pub/linux/suse/apt/ SuSE/9.3-i386 packman rpm http://ftp4.gwdg.de/pub/linux/suse/apt/ SuSE/9.3-i386 security i tried to remove all "unstable" repositories from SuSE people and projects, enabling them diring this step could cause lost of tourbles. 3. i cleaned the apt-cache -- all files from /var/cache/apt/archives, leaving also empty directory /var/cache/apt/archives/partial and began the process root@host # apt-get update root@host # apt-get -f dist-upgrade notice: memorize the list of packages the apt is going to remove or to hold! and here my apt failed: the number of packages was too big, and it gave me an error message about that http trasport ended unexpectedly i could do nothing about it, but the solution was simple: i used SYNAPTIC, instead of console-based apt, it seems it has its own package trasport routines, so: i ran synaptic and did the following: 1. menu Edit -> Fix broken packages 2. menu Edit -> Mark All upgrades. 3. menu Edit -> Apply selected changes and synaptic started to download all packages -- soon all upgradable packages appeared in apt cache. now it is importrant to say some word about dependancy resolving: IT SHOULD BE DONE PRIOR TO APPLYING CHANGES IN SYNAPTIC: some packages might not be able to upgrade, because of dependacy issues. this can be resolved easily -- root@host # rpm -e --nodeps <name of package causing conflicts> in my case, i had to remove m4. and curl. Also, you may also need to resolve duplicated packages issues: root@host # rpm -e --nodeps --noscripts --allmatches <names of duplicated packages> when these packages are removed, apt (or synaptic) will install them atomatically if they are required by others. 4. so, if you are lucky, then synaptic will ugrade everything automagically, otherwise, it may fail, saying that some packages conflict with each other. in RPM it may be overcome by --force flag, i found no way to pass it into synaptic (for apt command it is --force-rpm flag), so i did the follwing: 1. i removed manually alll the packages that apt/synaptic was going to remove ( rpm --nodeps <package names>) 2. i installed all packages that synaptic dowloaded into apt cache: cd /var/cache/apt/archives rpm -Uhv --nodeps --force * 5. after that i ran once again: apt-get -f install // fixes some brken dependancies apt-get -f dist-upgrade // cleanup and rebooted the system. I still needed to fix some things manually, but overall, the upgrade went smoothly. APT - RULES! afther that you may enable other apt- repositories that you like, and use your sustem as before.
participants (1)
-
Vitaly Shishakov