README: Make package discussion more useful
This commit is contained in:
parent
9372ca0446
commit
fab085dcaf
65
README.md
65
README.md
|
|
@ -300,52 +300,34 @@ Possible approaches:
|
||||||
What about "packages"?
|
What about "packages"?
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
Basically I think they're a broken idea. There are several different
|
There are several complex and separate issues hiding in this seemingly
|
||||||
classes of things that demand targeted solutions:
|
simple question.
|
||||||
|
|
||||||
1. Managing and upgrading the core OS (ostree)
|
I think OSTree always makes sense to use as a core operating system
|
||||||
2. Managing and upgrading desktop applications (gnome-shell, glick?)
|
builder and updater. By "core" here I mean the parts that aren't
|
||||||
3. System extensions - these are arbitrary RPMs like say the nVidia driver.
|
removable. Debian has Essential: yes, any other distribution has this
|
||||||
We apply them after constructing each root. Media codecs also fall
|
too implicitly in the set of dependencies for their updater tool.
|
||||||
into this category.
|
|
||||||
|
|
||||||
How one might install say Apache on top of ostree is an open
|
Now, let me just say I will absolutely support using something like
|
||||||
question - I think it probably makes sense honestly to ship services
|
apt/yum/zypper (and consequently deb/rpm) on top of OSTree. This
|
||||||
like this with no configuration - just the binaries. Then admins can
|
isn't trivial, but there aren't any conceptual issues.
|
||||||
do whatever they want.
|
|
||||||
|
|
||||||
Downloads
|
Concretely for example, RPM or .deb might make sense as a delivery
|
||||||
---------
|
vehicle for third party OS extensions. A canoncial example is the
|
||||||
|
NVidia graphics driver.
|
||||||
|
|
||||||
I'm pretty sure ostree should be significantly better than RPM with
|
If one is using OSTree to build an *operating system*, then there has
|
||||||
deltarpms. Note we only download changed objects. If say just one
|
to be some API for applications. And that demands its own targeted
|
||||||
translation changes, we only download that new translation! One
|
solution - something like an evolved glick (zeroinstall is also
|
||||||
problem we will have to hunt down is programs that inject
|
similar).
|
||||||
e.g. timestamps into generated files. "gzip" is the canonical
|
|
||||||
offender here.
|
|
||||||
|
|
||||||
Upstream branches
|
Current package systems are totally broken for application deployment
|
||||||
----------------
|
though; for example, they will remove files away from under running
|
||||||
|
applications on update. And we clearly need the ability to install
|
||||||
|
and upgrade applications without rebooting the OS.
|
||||||
|
|
||||||
Note that this system will make it easy to have multiple *upstream* roots too.
|
Details of RPM installation
|
||||||
For example, something like:
|
---------------------------
|
||||||
|
|
||||||
- builds
|
|
||||||
|
|
||||||
A filesystem tree generated after every time an artifact is built.
|
|
||||||
|
|
||||||
- fastqa
|
|
||||||
|
|
||||||
After each root is built, a very quick test suite is run in it;
|
|
||||||
probably this is booting to GDM. If that works, a new commit is
|
|
||||||
made here. Hopefully we can get fastqa under 2 minutes.
|
|
||||||
|
|
||||||
- dailyqa
|
|
||||||
|
|
||||||
Much more extensive tests, let's say they take 24 hours.
|
|
||||||
|
|
||||||
RPM Compatibility
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
We should be able to install LSB rpms. This implies providing "rpm".
|
We should be able to install LSB rpms. This implies providing "rpm".
|
||||||
The tricky part here is since the OS itself is not assembled via RPMs,
|
The tricky part here is since the OS itself is not assembled via RPMs,
|
||||||
|
|
@ -353,9 +335,6 @@ we need to fake up a database of "provides" as if we were. Even
|
||||||
harder would be maintaining binary compatibilty with any arbitrary
|
harder would be maintaining binary compatibilty with any arbitrary
|
||||||
%post scripts that may be run.
|
%post scripts that may be run.
|
||||||
|
|
||||||
Note these RPMs act like local configuration - they would be
|
|
||||||
reinstalled every time you switch roots.
|
|
||||||
|
|
||||||
What about BTRFS? Doesn't it solve everything?
|
What about BTRFS? Doesn't it solve everything?
|
||||||
-----------------------------------------------
|
-----------------------------------------------
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue