Command line script which works as an assistant for the Linux openSUSE Leap distribution upgrade.
The main goal is to guide through the process step by step as in the article from Freeaptitude blog, handling the common problems and trying to find a proper solution.
It heavily rely on the zypper-upgraderepo application to check and upgrade repositories, so you must install it first.
There are several options to install the service menus listed in this repository.
This application has been packaged in my personal OBS repository so you can install It as a common RPM package:
- Add the repository URL in your list;
- install the package from Yast or Zypper.
Being the repository URL slightly changing from a version to another, I included all the steps in the related project page on my blog.
Once cloned the repository locally:
$ git clone https://github.com/fabiomux/upgradedistro.git
Enter the project folder:
$ cd zypper-upgradedistro
Run the Makefile task to install it:
$ make install
Or uninstall it:
$ make uninstall
It will automatically install the script and the Zypper plugin with the related man page.
$ upgradedistro [<options>]
Or as zypper plugin:
$ zypper upgradedistro [<options>]
Being an interactive script it is enough to launch the script and follow the steps.
Output messages will appear from time to time to:
- inform about the current action;
- ask for confirmations where needed;
- notice errors and provide a solution.
The messages should be helpful enough to drive through the process safely.
The optional switches provided have the sole purpose to skip one of the steps that might block the completion of the upgrade, or the already completed tasks.
Using the --resume
option will automatically restart the script from the latest
completed task.
This is the full list of the available options:
- --allow-unstable (-U):
- Allow unstable releases to be considered as an option
- --load-overrides :
- Load the repository overrides FILE
- --no-version-check (-v):
- Skip the release version check
- --no-system-update (-s)
- Skip the system update
- --no-repository-check (-c):
- Skip the repository check procedure
- --no-repository-upgrade (-u):
- Skip the repository upgrade procedure
- --no-repository (-r)
- Skip both the repository check and upgrade procedures
- --no-packages (-p)
- Skip the download of the packages to be upgraded
- --resume
- Restart from the last step left
Skipping the steps individually should be well ponderated, and reserved to specific situations, for example:
- when the openSUSE server is temporarily off and doesn't provide the page where the last release number is served, we can skip this step if we know that a new release is available;
- A no critical repository is offline and can't get updates, instead of disable it we can decide to skip the update task and still upgrade it;
- A no critical package can't be upgraded without a new download, thus we can skip the upgrade of that package and fix it later.
When repositories don't get a valid URL by the zypper-upgraderepo script, a list of invalid but still enabled repositories is exported in an INI file to disable or update the URLs without interrupting the script. To do that, the editor in the $EDITOR variable will be used, if none, vim will be the default choice. If you want to switch to a more familiar editor you must override this variable before lauching the upgradedistro command:
$ EDITOR='nano' upgradedistro ...
Or
$ EDITOR='nano' zypper upgradedistro ...
When this plugin is correctly installed you can see it in the list of subcommands:
$ zypper help subcommand
Read the man page with:
$ zypper help upgradedistro
For a quick help:
$ upgradedistro --help
More info is available at:
- the project page on Freeaptitude blog;
- the article Upgrading with zypper-upgradedistro on Freeaptitude blog;
- the article Upgrading openSUSE with Zypper on Freeaptitude blog.