It's interesting that most package management tools are command lines (as opposed to daemons with a client, or shared libraries). Instead there's e.g. PackageKit or apt-daemon which layer on top.
Being a command line is good for a lot of scenarios; for example
docker build
and RUN yum -y ...
. But ironically, managing
the host system is really where you want a daemon by default.
For example, have you ever been logged into a server running yum/apt
or
equivalent, doing an upgrade, and lost your ssh connection and wished you'd
remembered to use screen/tmux
?
With a command line only package manager things get into a bad state; you don't have a good way to tell the existing instance to cancel.
But with rpm-ostree everything (as long as you don't livefs
) is transactional,
and we now complete the picture with support for cancel
.
Name: post-that-hangs
Version: 1.0
Release: 1
Summary: %{name}
License: MIT
%description
%{summary}
%post
echo entering %{name}
while true; do sleep 1; done
%files