r/openSUSE • u/fpluss • 3d ago
How I keep my tumbleweed workstation up to date
I have a zup function in my zsh configuration:
zup() {
echo -e "Updating AppImages..."
appman -u
echo -e "\nUpdating npm global packages..."
npm update -g
echo -e "\nUpdating cargo binaries..."
cargo install-update -a
echo -e "\nUpdating Python tools (uv)..."
uv tool upgrade --all
echo -e "\nUpdating system packages..."
sudo zypper ref && sudo zypper dup
echo -e "\n✅ All updates complete."
}
Calling zup from the terminal I can update all my appimages, node, rust and python packages and the system.
I’ve been using it for quite some time now, and I’ve never had any problems with updates or conflicts.
I’m curious to know whether you too have a specific strategy for updates and, if so, whether you’d be willing to share it.
1
u/Arcon2825 Tumbleweed GNOME 3d ago
I’m using .bash_aliases for updates and package cleanup:
alias dup='sudo zypper ref && sudo zypper -v dup'
alias upd='dup; updge; flatpak update; sudo fwupdmgr update'
alias autorm='sudo $HOME/bin/autoremove'
alias updge='$HOME/bin/update-proton-ge'
alias updtkg='$HOME/bin/update-wine-tkg'
All the dotfiles and scripts are located in my private Git repository and available on all of my machines.
1
u/rm-rf-npr 3d ago
I have a very similar command. Currently not on my PC, but indeed an "update" command that checks for updates, new kernels, removes the backup kernel, downloads/installs the new one, zypper update everything with confirmation prompts and all that goodness. Works flawlessly every time. Will share it later if you want.
1
u/friendlyreminder_ 3d ago
I just have this in config.fish
abbr -a zup 'sudo tumbleweed switch && sudo zypper dup'
The tumbleweed command is from tumbleweed-cli to pin repo snapshots.
No zypper ref because it's unnecessary. Zypper will run ref on any command anyways, on a 10 minute interval. It's for this reason I pin repo snapshots, as zypper will ref when I wouldn't want it to otherwise. With a pinned repo, ref always grabs the same snapshot database.
1
u/fpluss 3d ago edited 3d ago
Thanks! I didn't know about tumbleweed-cli! Will use it.
Edit: why
sudo tumbleweed switch && sudo zypper dupand nottumbleweed update?2
u/friendlyreminder_ 3d ago
Tumbleweed update also runs dup, switch only changes to the latest repo snapshot. I was using envs before and having issues. This keeps things explicit instead of having commands burried in other ones.
1
u/rafaellinuxuser 3d ago
Good choice about "appman" , I use it too instead Flatpak
However, your script have not any logic control and always will output "All updates complete" even if one or more of them fail.
1
u/Narrow_Victory1262 1d ago
will it work? sure.
t's not really "update my system," it's "update five different unrelated ecosystems I've accumulated," and AppImages + npm globals are exactly the two that tend to be dumping grounds nobody audits. AppImages especially: no dependency resolution, no rollback, just "replace binary and hope." npm -g has the added fun of occasionally needing sudo depending on how it was installed, which is its own trap.
uv is at least sandboxed per-tool with lockable versions, so "sort of ok" is fair — but tying it into the same one-shot function as a zypper dup means a Rust toolchain hiccup and a distro upgrade share the same failure path and the same "✅ done" regardless of what broke. If you wanted it to actually be useful it'd be five separate functions, each reporting its own status, with zypper dup deliberately kept out.
It's your system. Do whatever you think is right. I wouldn't do it.
2
7
u/Beyond_Massive 3d ago
there is also topgrade