diff --git a/knowledge base/zypper.md b/knowledge base/zypper.md index 05d87b0..d4865ad 100644 --- a/knowledge base/zypper.md +++ b/knowledge base/zypper.md @@ -8,6 +8,7 @@ library (`libzypp`). 1. [Repositories](#repositories) 1. [Configuration](#configuration) 1. [Gotchas](#gotchas) +1. [Distribution's release upgrade](#distributions-release-upgrade) 1. [Further readings](#further-readings) 1. [Sources](#sources) @@ -41,12 +42,15 @@ zypper help 'command' # Update caches. zypper refresh -zypper ref 'updates' +zypper ref 'updates' 'mozilla' # Clean caches. zypper clean --metadata zypper clean --all 'packman' +# Clean up locks. +zypper cleanlocks + # --- # Search for resolvables. @@ -124,6 +128,15 @@ zypper dup --details --from 'factory' --from 'packman' --download 'as-needed' -- zypper packages --unneeded zypper pa --unneeded +# List installed packages. +zypper search --installed-only +zypper se -i +zypper packages --installed-only +zypper pa -i + +# List *manually* installed packages. +zypper pa -i | grep 'i+' | awk -F '|' '{print $3}' | sort -u + # --- # List repositories. @@ -171,11 +184,11 @@ zypper packages --unneeded \ # Suggested to do this after: # - all users logged off; # - disabling the GUI (`systemctl stop 'display-manager.service'`). -zypper refresh \ -&& zypper update \ -&& sed -i 's|/15.5/|/${releasever}/|g' '/etc/zypp/repos.d/'*'.repo' \ -&& zypper --releasever '15.6' refresh \ -&& zypper --releasever '15.6' dist-upgrade \ +sed -i 's|/15.5/|/$releasever/|g' '/etc/zypp/repos.d/'*'.repo' \ +&& zypper ref \ +&& zypper up \ +&& zypper --releasever '15.6' ref \ +&& zypper --releasever '15.6' dup \ && reboot ``` @@ -207,11 +220,12 @@ This means that a repository with priority 90 will have precedence on repositori Repositories of interest: -| Name | URL | Description | -| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------- | -| Packman (all) |
| The largest external repository of openSUSE packages | -| Mozilla |
| Bleeding edge versions of Firefox, Thunderbird and all things Mozilla | -| Vivaldi | | A browser adapting to you, not the other way around. | +| Name | Repos' URL keys | Repo files' URLs | Description | +| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | +| Mozilla | `https://download.opensuse.org/repositories/mozilla/openSUSE_Tumbleweed/`
`https://download.opensuse.org/repositories/mozilla/openSUSE_Leap_$releasever/` | [Tumbleweed](https://download.opensuse.org/repositories/mozilla/openSUSE_Tumbleweed/mozilla.repo) | Bleeding edge versions of Firefox, Thunderbird and all things Mozilla | +| Packman (all) | `https://ftp.fau.de/packman/suse/openSUSE_Tumbleweed/`
`https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_$releasever/` | [Tumbleweed](https://ftp.fau.de/packman/suse/openSUSE_Tumbleweed/packman.repo) | The largest external repository of openSUSE packages | +| Vivaldi | | [All](https://repo.vivaldi.com/archive/vivaldi-suse.repo) | A browser adapting to you, not the other way around. | +| KDE | `https://download.opensuse.org/repositories/KDE:/Extra/openSUSE_Tumbleweed/`
`https://download.opensuse.org/repositories/KDE:/Frameworks/openSUSE_Tumbleweed/`
`https://download.opensuse.org/repositories/KDE:/Applications/KDE_Frameworks5_openSUSE_Tumbleweed/`
`https://download.opensuse.org/repositories/KDE:/Extra/openSUSE_Leap_15.6/` | | Bleeding edge versions of framework, Plasma, applications and all things KDE | ## Configuration @@ -231,6 +245,49 @@ Zypper does not have for now a way to list **the content** of an **installed** p sudo rpm --query --list 'parallel' ``` +## Distribution's release upgrade + +> Tested on openSUSE Leap (15.5. to 15.6). + +Suggested to do this **after**: + +- All users logged off; +- Disabling the GUI (`systemctl stop 'display-manager.service'`). + +Procedure: + +1. Make sure no repository has the release version hardcoded: + + ```sh + sudo sed -i 's|/15.5/|/$releasever/|g' '/etc/zypp/repos.d/'*'.repo' + ``` + +1. Refresh the cache: + + ```sh + sudo zypper refresh + ``` + +1. Update the **current** release's packages: + + ```sh + sudo zypper update + ``` + +1. Refresh the cache again forcing the **new** release version: + + ```sh + sudo zypper --releasever '15.6' refresh + ``` + +1. Upgrade the whole distribution to the **new** release: + + ```sh + sudo zypper --releasever '15.6' dist-upgrade + ``` + +1. Reboot. + ## Further readings - [rpm] @@ -245,6 +302,7 @@ sudo rpm --query --list 'parallel' - [Command to clean out all unneeded autoinstalled dependencies] - [System upgrade] - [Zypper cheat sheet] +- [KDE repositories] [additional package repositories]: https://en.opensuse.org/Additional_package_repositories [command to clean out all unneeded autoinstalled dependencies]: https://github.com/openSUSE/zypper/issues/116 +[kde repositories]: https://en.opensuse.org/SDB:KDE_repositories [managing software with command line tools]: https://documentation.suse.com/sles/15-SP5/html/SLES-all/cha-sw-cl.html [package repositories]: https://en.opensuse.org/Package_repositories [system upgrade]: https://en.opensuse.org/SDB:System_upgrade