README: Make package discussion more useful

This commit is contained in:
Colin Walters 2011-11-09 07:56:43 -05:00
parent 9372ca0446
commit fab085dcaf
1 changed files with 22 additions and 43 deletions

View File

@ -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?
----------------------------------------------- -----------------------------------------------