Skip to content

fabiomux/zypper-upgradedistro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zypper-Upgradedistro

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.

Installation

There are several options to install the service menus listed in this repository.

From the openSUSE Build Service 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.

From the GitHub repository

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.

Usage

$ 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.

Options

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.

The default editor

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 ...

Get help

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 help

More info is available at: