I had written a bash script ages ago and never fully got around to making different branches it was a do it yourself script you had to configure it the way you wanted too each time.
I have now added those pre-configured files inside their respective folders and a new readme in each folder on what exactly it runs.
The ubuntu all or ubuntu flatpak folder will be best for Zorin OS depending on if you have flatpaks from the pro version or how you installed your packages.
In short you don't have to write 5 terminal commands you only need to write sudo bash update.sh and it will update your system and even reboot it for you if you so chose good for kernel updates.
I think there's an opportunity to refactor and consolidate this into a single script, by providing arguments to the command like. For example:
./update --flatpak-only --reboot
Narrowing it down to one file can help to reduce duplicate logic and make it easier to extend in the future. Also, once the interactivity is removed (or made optional), you can automate this using cron jobs or assigned to a keyboard shortcut.
If you are up for it, I recommend this article:
There is a link to an accompanying video on YouTube, if you prefer that as well.
I do my coding part-time and do it for fun, same as my website codebase is all just for fun with CSS and markdown files for the posts. I'm happy to refine my skills. I'll check it out when I have time and see what I can manage to do thanks for your input.
More so for newbies, it's easier to define what a distro is based upon then what package manager is being used. Especially if you start getting into arch and pacman, yay AUR helpers etc...
Hey @justinc checking out your script, thank you for that
couple of questions...
I'm confused about upgrade, dist-upgrade and full-upgrade, any reason to use one over the other if you want to make sure dependencies are met on a basic installation? I've been reading about it and it sounded like a safe option is dist-upgrade but I'm not 100%sure
I did most of the commands on your script without the script prior landing here, what I noticed though is that after I was done, the software updated still showed me stuff to complete with the its GUI... is there something that your script will not handle that the software updated does, as far as you know?
again, after I completed my manual update with most of the commands included in your script and restarted, I noticed that a new version of the OS was available and the there was a upgrade tool to do this major OS upgrade, is there a way to include such task in the script? I'm looking to do this on several machines and I was wondering if there was something to add to the script to push that major upgrade in it
I can't speak for Justin's intentions and the future of his script, but I can hopefully help clearing out some doubts that you have:
For regular maintenance, run apt upgrade. This will take care of searching for newer versions of software that is already installed in your system, including firmware and kernel updates.
The apt dist-upgrade and apt full-upgrade are the same command. The dist- prefix stands for "distribution" and this is the command that you'd use to update between minor and major versions i.e., Ubuntu 22.04 -> Ubuntu 22.10.
It's a less constrained version of apt upgrade in that it will delete packages in your system as it seems fit, which may become necessary while dealing with dependency resolution during a major upgrade.
I would recommend against using apt dist-upgrade regularly. It may change certain dependencies without you knowing and leave the system in a bad state. This is particularly true when you have installed software from third party repositories that doesn't work with higher versions of underlying dependencies.
In Linux, there are multiple package formats available. The differences between them are not relevant right now, but it's important to know that each package format will need its own package manager.
The apt command will handle only packages installed using the Debian package format, while the flatpak command will only handle Flatpak packages, and so on.
The Software Store attempts to consolidate all of these packages under one interface. This is why you may see the same software listed from multiple sources — in this example from the screenshot below (it's an old screenshot, so this may be different today), the SimpleScreenRecorder is available as a Debian package (designated as "Zorin OS") and as a Snap package.
So, when you run an update through the terminal using apt, Zorin OS may still show updates available for other programs installed with different package formats.
As for major upgrade versions, I would strongly suggest you use the upgrader tool available. There are other considerations than just running apt dist-upgrade.
The developers are working on Zorin Grid, which would allow you to manage multiple workstations at once, but this is still very much under development.
There is a caveat in this in that the application you supply applies to using the apt command.
There is some difference when referring to the older apt-get commands; which still remain available in tutorials and other old web guides.
On this one... I must point out that using full-upgrade or dist-upgrade is perfectly safe.
If there is a user added repository that is capable of changing their Base System files (For example, the user added the Pop_OS repository ), then yes; it can cause them a major headache. This is why we inform users about that actual risk.
I address this by informing users of the danger in adding Other Distributions Repositories like Mint, Pop_OS, etc, rather than implying that something is wrong with the upgrade command itself. The Upgrade command is safe.
Users that add another distro repo in order to install a package only provided by that distro (Example Popsicle by Pop_OS) are advised to remove the repository immediately upon installing the software, not to avoid allowing system upgrades.
I wouldn't say is dangerous, but there's also no benefit in running it over a plain apt upgrade, either. At least, none that I'm aware of. I think it's best to act on the principle of least privilege here, and not let programs change files that we're not expecting them to.
I'm strictly speaking on regular maintenance, not when actual upgrades are needed, of course.