-
Notifications
You must be signed in to change notification settings - Fork 197
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
design for yum/dnf wrapper #2883
Comments
This comment was marked as duplicate.
This comment was marked as duplicate.
OK a fairly important detail here is the lack of But I recently realized we lost this whole aspect with |
The doc looks really good to me! I like the E.g. for
which is consistent with And probably in some of the compat text we should talk about |
Cross-posting some comments from #2844: General idea makes a lot of sense to me! One thing we talked about is that we shouldn't hide rpm-ostree too much either, because a lot of the value becomes apparent when you understand some of the basic concepts. What you have here is in line with that. I think also we should make rpm-ostree more discoverable by being more helpful in our command outputs. E.g. I guess at a high-level, I see this endeavor more as an opportunity to gently guide new users towards learning base rpm-ostree concepts and commands (and even allow them to punt on learning anything at first to still be functional and e.g. update and install things). IMO trying to wrap rpm-ostree commands into new |
I like the overall idea of guiding yum/dnf based users to smoothly transition to rpm-ostree based system. I was wondering, instead of adding wrapper that would help users to directly run some of rpm-ostree command using yum/dnf like |
I think the core question though here is: is there a lot of value in telling a user to run |
Since users are already accustomed to managing software using dnf/yum, and in fact will have to continue using that tool in their |
Tangentially related to this, we should also wrap |
Update: this is shipping now by default in Fedora CoreOS rawhide. |
This needs clarification for groups (eg, |
Design for yum/dnf frontend to rpm-ostree
Extracted from #2844
Goal: Support existing UX in Dockerfile
The Ostree Native Container change is leading to a fundamental change in how we think about rpm-ostree. In particular, we now support running
rpm-ostree install foo
inside aDockerfile
. But this is the same thing that people have been doing for ages withyum install foo
inside a Dockerfile.In the end, I think it makes sense to...have our container images support
yum install
(anddnf install
). To the user, there isn't a hugely important difference between what we do and whatyum|dnf install
are doing.There are however some important implementation things going on that we will want to maintain. For example, eventually we want to move things like
tmpfiles.d
translation to happen at build time.There's a lot of stuff in rpm-ostree around things like the rpmdb handling, dropping the dnf sqlite database that we don't need or want, etc.
So the suggested implementation here is that rpm-ostree learns to respond to a subset of
yum|dnf
commands.Goal: Be friendlier to admins coming from existing Fedora-derivative ecosystem in general
Once we take this step, it makes sense also to support this on the client side in general.
There are some things that really should work.
Let's take as an example: https://tailscale.com/download/linux/fedora
This is exactly an operating system extension; it doesn't
make sense in
toolbox
orflatpak
. (It could be containerizedbut...let's leave that aside)
The basic goal here is not that
dnf install tailscale
actually worksdirectly, but it should explain to people what to do. More on
this below.
Implementation
Note that the implementation of this will be that
rpm-ostree
gainsa new partial compatible
yum
CLI written in Rust. There are noplans to require Python for example, or change the existing
yum/dnf
code.
(Note: The terms
yum
anddnf
are used synonymously here becausein practice in current Fedora and RHEL8 the former is just a symlink to the latter.)
Longer term, we may share more CLI code with "dnf 5" as it migrates to C++,
though this clashes some with rpm-ostree's increasing migration to Rust.
Non-goal: Reverting emphasisis on containerization
We want people to migrate application code, debugging and development
tools etc. into containers as opposed to layering everything on the host.
So to emphasize: we explicitly do not want
yum install gcc
ordnf install tailscale
to silently Just Work out of the box. More on this below.
High level goal: A new
yum image
subcommandThis will be a front-end to the existing
ostree container
flow:After that,
yum update
will pull that container!Demonstration CLI examples:
upgrades
On Fedora CoreOS with automatic upgrades on by default, this would of course error out with:
So one would then use e.g.:
On current Fedora IoT/Silverblue which do not have automatic upgrades on by default:
Note this proposed text includes analysis of whether the change requires a reboot or not, as well as stabilization of
apply-live
.dnf needs-restarting
We should support the
dnf needs-restarting [-r] [-s]
CLI, which might sensibly be used by automation afterdnf upgrade
.Layering
(Exit code 1)
Replacing base components
Background: User is trying to downgrade the kernel on a machine to bisect an issue.
Upgrading just individual packages
The flow for this will encourage the user to download the full base image
update, and cherry pick just the
openssh
change live if desired viaapply-live
.There was a lot of debate in #2844
The text was updated successfully, but these errors were encountered: