🗪 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. 👐
Always 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.