-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
System Update utility #33
Comments
Thanks, that's from my quick and dirty record of a first attempt https://pastebin.com/ppT7LfVT where (amongst other things) the I took my hints from Upgrading from FreeBSD 9.3 to FreeBSD 10.1 using beadm and freebsd-update – Dan Langille's Other Diary (2015-03-13). I see options such as For the A System Update to the FreeBSD A System Update to the FreeBSD See alsoGhostBSD's Update Station, which has a BSD-3-Clause License. Archived https://github.com/trueos/sysadm-ui-qt archive for the Qt GUI to |
Thanks for the pointers. Let's not forget that we may want to get to an image-based solution in the end, where users do not have to deal with the individual packages but simply can download the new OS image and use it alongside the old one. |
GhostBSD is probably using Gtk, so not something we would want to use. https://github.com/trueos/sysadm-ui-qt is Qt based and compiles without issues, but it seems to have a different scope: It allows central system administrators to manage systems running it. Since helloSystem is made for "mere mortals" (normal end users), not for corporate system administrators, this is currently out of scope for helloSystem. |
Thanks, the references to comparable applications were more, for me (or anyone) to tell whether there is, for example, exemplary use of |
I haven't used it in years but if I recall correctly:
|
#33 (comment) refined today (with FreeBSD
Still, I can not make that type of routine a general recommendation. I have yet to restart the system and tell whether there's anything applicable from my poudriere repo. Still, there's my lack of understanding of |
This comment has been minimized.
This comment has been minimized.
https://twitter.com/vermaden/status/1360562154836004869 describes upgrading from 12 to 13 as:
|
Thanks, that's useful. https://www.freebsd.org/cgi/man.cgi?query=pkg-alias(8)
@vermaden please, where did you learn the If the second run of |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Do not remember. Seriously :) But Probably a habit after long use of IBM TSM - Tivoli Storage Manager (now known as Spectrum Protect). Their command line also needed only that much part of command that was unique.
After executing
So the third
Not sure about helloSystem upgrade but when I first started 12.2 ==> 13.0 upgrade without /dev mounted in the chroot then the Regards. |
This comment has been minimized.
This comment has been minimized.
#33 (comment) thanks @vermaden
|
This comment has been minimized.
This comment has been minimized.
We could also take an entirely different approach to "updating", e.g., installing from a new Live ISO while keeping parts of the old system around, similar to what the Mac does... or use an A/B partitioning scheme, similar to what ChromeOS does, or... |
The parts gained from an ISO might as effectively be gained with a PkgBase approach. I think first of @igalic https://alpha.pkgbase.live/ |
Not really: Integration and end-to-end tests can be run on an ISO, but not on an upgraded system. At least not easily. |
Way beyond me but 👍
Is an intention, to verify (with checksums) that what's installed is as it should be? |
#33 (comment) my bad,
That was, not taking into account the |
Yes, this is that step. |
This comment has been minimized.
This comment has been minimized.
just one small note re |
If moving from 12.x to 13.x its best (and probably stated in the FreeBSD Handbook) to first upgrade 12.1 to 12.2 (or other latest 12.x version at the moment) and then do the major upgrade to 13.x. Regards. |
The more I think about it, I come to the conclusion that I am really more in favor of a "clean install" at least for major revisions/releases that would work roughly like this:
Advantages:
For minor (security) updates, we could still use a more traditional approach. What do you think? |
Agreed. |
What if the base system was a git repository mounted ro and you mounted a separate zfs subvolume for rw folders (like /Users), and in an update you'd just run
|
I don't think that git is a good match for managing gigabytes of binaries. Plus, git does ask the user questions in the case of merge conflicts. |
There's always ostree, it's like git but endless os uses it. |
Definitely unwelcome technology. Not human-friendly. Cryptic GUID-like names of files. Not "manageable" by hand. Not simple. |
The other thing I can think of is SystemImageKit and SystemExtensionKit |
SystemImageKit is Linux/GRUB only. |
tl;drThis is mainly a summary for my future self: FreeBSD itself
Thanks to @grahamperrin for being patient enough explaining it to me as long as was needed for me to finally get it. (still to be found out whether we can prevent this from overwriting our carefully crafted custom config files such as modified rc scripts) Packages
(still to be found out how to prevent them from overwriting our carefully crafted custom config files) |
helloSystem/hello#161 (comment) showed:
Not required. The advice to run the command was because you did not mention restarting the system. |
(moved to helloSystem/hello#161 (comment)) |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
For updating packages, we could probably re-use most of the code from our application installer GUI. It already knows how to display a grapical progress bar for pkg, and allows more advanced users to look at the command line output. |
Should appear in the "Developer Preview" folder in the next continuous build, 0G25. |
Known issues
Essentially much of what script.hello does in terms of customizing the system gets undone when one updates packages. We'd probably have to rethink (=make more complicated) the way we put the system together if we really want end users to update the system using packages. In the meantime, |
Would |
My real life experience. Thought it would be nice to run the latest version of PrusaSlicer. Wouldn't it be awesome if this could be done without having to change half the operating system?
Chose to But then, after having downloaded and installed a bunch of stuff, it said the following. Had I known it would end like this, I would not even have attempted the upgrade.
Grudgingly accepted. Will probably have to install the py39 equivalents by hand. Mere mortals would be totally lost here. This is why I think package managers are tools for developers, but not for non-technical end users.
Bummer! Total breakage. Now what?
After a reboot, I cannot open many applications anymore, getting
So far I've been running FreeBSD 13.0-RELEASE. So doing
takes forever, hanging on
Absolute nightmare! Typing the cryptic Stuff like
absolutely makes me fear that Xorg will be broken. So Does Trying Had to know a lot about the system to manually edit the files in nano. Then:
After having done that, I now seem to have successfully moved from 13.0 to 13.1, but it is not something a non-technical user could have done. |
|
|
No. cat(1) is not an editor. |
Not part of the operating system (not integral to FreeBSD).
Boot the boot environment that preceded the breakage. Questions about pkg(8), and other things that are not part of the operating system, will be easier to answer if asked as questions in Q&A: https://github.com/helloSystem/hello/discussions/categories/q-a |
Think of that as you would think of a merge with Git. From Git - Advanced Merging: |
The purpose of this thread is to show which challenges we have to overcome in oder to arrive at a no-questions-asked upgrade process that we could integrate in the System Update utility. I fear this would have to be solved by FreeBSD proper. |
freebsd-update(8) is, essentially, the norm for binary updates and binary upgrades to supported versions of I thought that you already decided, long ago, to not use freebsd-update in the context of an update utility for helloSystem.
Do you mean PkgBase (for the operating system, FreeBSD)? Or pkg-upgrade(8) (for packages of ports)? |
Maybe true from the helloSystem perspective; not true as a sweeping statement. From https://www.ghostbsd.org/about for GhostBSD, which takes pkg-based approaches:
From #33 (comment) (2021-01-18, the first response to the opening post):
Pictured: The kernel, and other essentials, amongst items to be upgraded: Limitations, maintenanceFrom helloSystem/hello#161 (comment):
GhostBSD maintains the type of thing that helloSystem does not want to maintain:
|
Is pkg_replace(1) of interest? I never used it, but it caught my eye. https://github.com/kdeguchi/pkg_replace#readme | ports-mgmt/pkg_replace |
Write a System Update utility that installs the update into a new Boot Environment.
Along the lines of
Thanks @grahamperrin
We could then make the next boot go into the new Boot Environment, and ask the user there whether all subsequent boots should continue to go there. Or something like that.
The text was updated successfully, but these errors were encountered: