Zypper-Upgraderepo app

Ruby application born as a complement for zypper command line, helps on automatizing the repository’s URLs check and upgrade procedure for openSUSE Leap. It provides a set of commands to better accomplish that tedious task: from the repository backup to the discovery attempt of an alternative URL in case something in the URL schema changed. Among the last operations added there are the current repository availability and the repository downgrade.

  • Name:
  • Language:
  • Type:
    CLI Application
  • License:
    GPL v.3
  • Platform:
    Linux openSUSE Leap
  • Requirements:
    ruby, libzypp, zypper
  • First release:
    1.0.0 (June 26, 2018)
  • Current release:
    1.8.0 (February 03, 2023)
  • Links:

Main Features

  • Checks the availability of the online openSUSE Leap repositories in their current, next, or any valid and known version;
  • May provide an alternative URL when the first attempt, based on the sole string interpolation, fails;
  • Upgrade the repositories to the next version available;
  • Upgrade or downgrade the repositories to a valid known version;
  • Reset the repositories to the current version;
  • Support for the repository variables;
  • Creates a backup of the whole repository folder;
  • Export the check result as INI file;
  • Import the manually upgraded repository from an INI file previously exported and fixed;
  • Repository check can be filtered for repository number, enabled status, invalid URL result, specific protocol used;
  • Sort the result by name, alias or priority;
  • Output as table, report, INI, or quiet;
  • Can be integraded within another shell script using the --exit-on-fail option to grab the error occurred.


From Rubygems

$ gem install zypper-upgraderepo

From openSUSE Build Service

$ sudo zypper ar https://download.opensuse.org/repositories/home:/FabioMux/15.5/home:FabioMux.repo
$ sudo zypper in 'zypper-upgraderepo-plugin'

Articles on FreeAptitude

External resources


Version 1.8.0 (February 03, 2023)

  • Fixed the multiple plugin generation renaming the executable to 'upgraderepo';
  • Added the update operation to update the left behind repositories to the current version;
  • Fixed the old_url field show in the ini and solver view when a suggested url is passed;
  • Added some RSpec tests for Repository and RepositoryList classes;
  • Fixed the constant call to favor further overriding for testing purposes mainly;
  • Fixed the check for the current version in order to have a suggestion about a not upgraded repository;
  • Added the Solved view;
  • Fixed the alias symbol removal in the repo selection function;
  • Added the selection for name, alias, URL, or all of them with a portion of text using the --only-repo option;
  • Added a specific message for empty, invalid repositories with an existing URL.

Version 1.7.1 (November 29, 2022)

  • Fixed the folder traversing for download.opensuse.org based repositories;
  • Fixed the variable expansion for the repo's name and alias.

Version 1.7.0 (October 27,2022)

  • Fixed the hint color on table view for forbidden and not found messages;
  • Added the handling of the Forbidden Path status as result;
  • Added the $basearch and $arch variables support.

Version 1.6.2 (June 21, 2022)

  • Fixed the load_overrides procedure.

Version 1.6.1 (June 20, 2022)

  • Added the 15.4 release;
  • Fixed the changelog uri and the excluded files.

Version 1.6.0 (January 18, 2022)

  • Added the --allow-unstable option;
  • Fixed the save repo error;
  • Added the --status switch to show the current and the available versions to upgrade for;
  • Added --check-last and --upgrade-to-last operations, refactored --check-next, --check-to, --upgrade commands;
  • Updated the gems in Gemfile.lock;
  • Added the Builder#upgrade_to_last and OsRelease#last methods;
  • Fixed the misleading description for the --upgrade command.

Version 1.5.0 (February 17, 2021)

  • Refactored the Request class to dynamically load different repository protocols;
  • Improved the code to easily develop and integrate more protocols classes;
  • Added the Local repository type beside the Http one;
  • Added the --only-protocols switch to filter repositories for protocols;
  • Added the support for $releasever, $releasver_major and $releasever_minor variables;
  • Added a notification for unversioned repositories;
  • Fixed the old_url field show on Ini view when the repository has not been upgraded yet;
  • Improved the back drop discovery level for each repository protocol.

Version 1.4.0 (July 25, 2020)

  • Refactored the url overrides process;
  • Improved the help interface;
  • Code cleanup and refactoring of the Builder and RepositoryList classes;
  • Added comments in the ini view and case lowered all the keys;
  • Added the --only-invalid filter;
  • Improved and made univocal the association between a repository and its number;
  • Fixed the option value used by --load-overrides;
  • Extended the use of loading overrides from file as option for other check and upgrade commands;
  • Added exit error codes for different errors raised.

Version 1.3.0 (March 13, 2020)

  • Added the check-from-file operation;
  • Added the upgrade-from-file operation;
  • Added the ini view;
  • Added the --exit-on-fail option;
  • Added the --quiet view;
  • Added the "system update" check before saving the upgraded repos;
  • Added the --reset operation.

Version 1.2.0 (December 20, 2018)

  • Improved the checking procedure;
  • Improved the alternative URL finding procedure;
  • Added the --only-repo option to check and upgrade only specified repos;
  • Added the upgrade view;
  • Added server timeout handling;
  • Fixed the interruption error handling;
  • Code cleanup and refactoring.

Version 1.1.0 (September 03, 2018)

  • New report view;
  • Improved the system to find alternative URLs;
  • Added repo sorting for alias, name and priority;
  • Added the column 'enabled' on table view;
  • Minor fixes.

Version 1.0.2 (August 21, 2018)

  • Fixed a typo error while calling a Messages method;
  • Help is now the defaul action.

Version 1.0.1 (July 02, 2018)

  • Small fixes on the checking result table.

Version 1.0.0 (June 26, 2018)

  • First public release

Leave a Comment