🗪 Experimental — Use with caution until a complete test suite is implemented.
A command-line tool to simplify upgrades and migrations across openSUSE distributions — including Leap, Tumbleweed, Slowroll, and even migrations from Leap to SLE.
General documentation about openSUSE Leap upgrade or Migration can be found at SDB:System_upgrade wiki.
👉 Upgrade to pre-releases such as Leap 16.0 Beta 👉 Migration across various openSUSE distributions 👉 Migration to SUSE Linux Enterprise products 👉 Integrates get.opensuse.org product API + openSUSE-repos 👉 Dry-run mode for safe previews 👉 Support for immutable systems (Leap Micro) 👉 Disabling 3rd party repos prior to migration
Tumbleweed → Slowroll
Slowroll → Tumbleweed
MicroOS → MicroOS-Slowroll
MicroOS-Slowroll → MicroOS
Leap → Leap n+1, SLES, Tumbleweed, Slowroll
Leap Micro → Leap Micro n+1, MicroOS, MicroOS-Slowroll
- Tumbleweed → Leap (downgrade, not supported)
- Tumbleweed → MicroOS (immutable shift)
- Non-immutable → Immutable (generally unsupported)
This project is licensed under the Apache-2.0 License. 👐
This is also recommended for migration from older Leap releases that 15.6. Or generally for systems which no longer receive updates.
sudo zypper in bc jq curl dialog sed gawk git # to install dependencies
git clone https://github.com/openSUSE/opensuse-migration-tool.git
cd opensuse-migration-tool
./opensuse-migration-tool --dry-run # optionally to test the tool execution
sudo ./opensuse-migration-tool
rebootAlways use
--dry-runfirst to preview planned changes!
sudo zypper in opensuse-migration-tool
opensuse-migration-tool --dry-run
sudo opensuse-migration-tool
rebootsudo transactional-update shell
# Inside shell:
zypper in opensuse-migration-tool
opensuse-migration-tool --dry-run
sudo opensuse-migration-tool
exit && reboot # boot into new snapshotBy default, pre-release versions are hidden to avoid accidental installs.
Use --pre-release to opt-in:
./opensuse-migration-tool --pre-release --dry-run
sudo ./opensuse-migration-tool --pre-releasegit clone https://github.com/openSUSE/opensuse-migration-tool.git
cd opensuse-migration-tool
distrobox create --image registry.opensuse.org/opensuse/leap-micro/6.0/toolbox --name micro60
distrobox enter micro60
zypper in bc jq curl dialog sed gawk
./opensuse-migration-tool --dry-run
sudo ./opensuse-migration-tooldistrobox create --image opensuse/leap:15.5 --name leap155
distrobox enter leap155
sudo zypper in bc jq curl dialog sed gawk
./opensuse-migration-tool --dry-run
sudo ./opensuse-migration-tool/etc/hostname — bug 1233982).
For traditional zypper dup approaches:
osc bco Base:System opensuse-migration-tool
cd Base:System/opensuse-migration-tool
osc service runall
osc addremove
vim *.changes # Review changelog
osc build # Test build locally
osc commit
osc sr # Submit to Base:SystemIf not done by the maintainer:
osc sr Base:System opensuse-migration-tool openSUSE:FactoryAfter Factory acceptance:
osc sr openSUSE:Factory opensuse-migration-tool openSUSE:Leap:Micro:6.1
osc sr openSUSE:Factory opensuse-migration-tool openSUSE:Leap:16.0
osc sr openSUSE:Factory opensuse-migration-tool openSUSE:Leap:15.6:UpdateWe're happy to receive PRs, testing reports, or feedback on supported scenarios. Please open issues or pull requests on GitHub.