As an Outreachy intern, I thought it would be interesting to talk briefly about the project I’m contributing at. That is going to force myself to put together and into my on words the things I learn. I also want to say that understanding the role, the behavior and the repercussions of any element of an environment as Fedora can be challenging and cause some struggle, so let’s take a small step and just see “What is rpm-ostree?“.
As a package manager, that means it’s a set of software tools to automate installing, upgrading, configuring and removing programs, while being consistent. The word “hybrid” means that it combines libostree and libdnf.
Packages in this contexts are considered collections of files that can be installed and removed as a group. Sometimes a package is a program but is also common for programs be several packages interrelated. Between packages there can be different dependencies such as ‘requires’, ‘recommend’, ‘suggest’, ‘obsolete’, ‘provides’ or ‘conflict’. So far I’ve only stepped into conflicts and requires because they are mandatory and and rpm-ostree pointed them out when I was installing/uninstalling packages. Let’s see about them:
- Requires : A package requires another package when it is needed for the first one to operate. But a package can also require a certain capability and don’t care about which package provides it.
- Weak dependencies :
- Weak – Recommend : A package recommend another package when the second provides a lot of functionality to the first one, which is desirable in most cases. But you still can install and use the first one by itself.
- Very weak – Suggest : A package suggest another package when it can enhance his functions with it, but in most cases it’s not needed.
- Obsolete : When a package obsolete another one, the second is marked to be updated.
- Provides : This is used to point out capabilities that the package can provide, so they can be found when another package provides it. So it’s going to work like another name or alias when a package name is required.
- Conflict : When a package conflicts with another, if the second package is installed or to be installed, the first one won’t be installed. It is the inverse of a “Require”.
This affirmation is a little bit outdated, but I thinks is going to help us to see the bigger picture. To understand it better we need to know that Atomic Host is now FedoraCoreOS and Docker even if still supported is leaving it place to Podman and other tools.
Thanks for reading, I’m going to keep sharing about things I’m learning along the way, tools I’m using, and my contributions themself. All comments are welcome =D !