Since my experience with preupgrade on the desktop was not so great, I decided to take a chance with upgrading my Lenovo S10-3 netbook to fedora 17 using yum.
The additional steps of modifying the filesystem using dracut were not really complex.
Most of the packages had already been downloaded by preupdate, which I had preserved. I copied them into the cache of yum and executed:
# yum --releasever=17 --disableplugin=presto distro-sync
Unfortunately, after updating about 500 packages, yum seemed to be doing nothing. I killed the command. And ran yum-complete-transaction. It seemed to be using the repositories of Fedora 16 even though fedora-release files had been installed. So, I ran
# yum-complete-transaction --releasever=17
After a pretty long time, it told me that there were problems. I tried again with
# yum-complete-transaction --releasever=17 --skip-broken
An equally long wait and no better result. The problem was that rpm database had entries for both 16 and 17 versions for the packages which were updated.
The following command also did not help (Next time, I need to try with the -t option to see if it would have tolerated errors).
# package-cleanup --cleandupes
The problem was that packages which had not yet been updated depended on the duplicates. Had I allowed this script to run, it would have deleted most of the packages.
I found a python script I had written when an upgrade from FC7 had failed because of power failure. The script created a file with the list of older duplicates, which could be used as an input to rpm as below:
# rpm --nodeps -e `cat deleteList.txt`
Finally, I cleaned up the failed yum transaction and ran:
# yum --releasever=17 --disableplugin=presto distro-sync
This time, the upgrade finished cleanly. Although it took about the same time and effort as the preupgrade, I enjoyed solving these problems a bit more.
The additional steps of modifying the filesystem using dracut were not really complex.
Most of the packages had already been downloaded by preupdate, which I had preserved. I copied them into the cache of yum and executed:
# yum --releasever=17 --disableplugin=presto distro-sync
Unfortunately, after updating about 500 packages, yum seemed to be doing nothing. I killed the command. And ran yum-complete-transaction. It seemed to be using the repositories of Fedora 16 even though fedora-release files had been installed. So, I ran
# yum-complete-transaction --releasever=17
After a pretty long time, it told me that there were problems. I tried again with
# yum-complete-transaction --releasever=17 --skip-broken
An equally long wait and no better result. The problem was that rpm database had entries for both 16 and 17 versions for the packages which were updated.
The following command also did not help (Next time, I need to try with the -t option to see if it would have tolerated errors).
# package-cleanup --cleandupes
The problem was that packages which had not yet been updated depended on the duplicates. Had I allowed this script to run, it would have deleted most of the packages.
I found a python script I had written when an upgrade from FC7 had failed because of power failure. The script created a file with the list of older duplicates, which could be used as an input to rpm as below:
# rpm --nodeps -e `cat deleteList.txt`
Finally, I cleaned up the failed yum transaction and ran:
# yum --releasever=17 --disableplugin=presto distro-sync
This time, the upgrade finished cleanly. Although it took about the same time and effort as the preupgrade, I enjoyed solving these problems a bit more.
No comments:
Post a Comment