Skip to content
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

No way to build this without dnf already installed #1580

Open
theosib-amazon opened this issue Sep 22, 2022 · 1 comment
Open

No way to build this without dnf already installed #1580

theosib-amazon opened this issue Sep 22, 2022 · 1 comment

Comments

@theosib-amazon
Copy link

In much the same way that a dictionary definition of a word should not rely on that word in the definition, a software package should not rely on itself to be built.

I have a package I want to install (sbt) that can't be installed with either an older version of itself or dnf already installed. But on Amazon Linux, we don't have dnf. So I decided to install dnf from source. But it relies on dnf to install its dependencies!

Well, I installed those manually but then discovered that this dnf relies on libdnf (although it doesn't tell you that when building). So I decided to build libdnf from source and found that it too relies on dnf already being installed to fetch the dependencies.

There are so many dependencies that it's very difficult to track down the names you need to use for yum. Even so, even if the dependencies are installed, it still can't find them. For instance, I already have "gpgme" installed, but when I try to build it tells me, "No usable gpgme flavours found."

@theosib-amazon theosib-amazon changed the title No way to install this without dnf already installed No way to build this without dnf already installed Sep 22, 2022
@kontura
Copy link
Contributor

kontura commented Sep 27, 2022

Well, I installed those manually but then discovered that this dnf relies on libdnf (although it doesn't tell you that when building).

Yes we do have problems with the dependency relationships in cmake, it is because we basically don't use them. Instead we use the spec files so libdnf.spec or dnf.spec, these have all the dependencies specified and their versions. For rpm based distributions you can get the names of the packages from there.

For instance, I already have "gpgme" installed, but when I try to build it tells me, "No usable gpgme flavours found."

I am guessing you need the devel package. On fedora this is gpgme-devel.

In general neither dnf nor libdnf require dnf to be build but they obviously do require their dependencies and it just so happens that the easiest way to install those is with dnf builddep.
It is difficult to get them manually without dnf because that is one of the problems dnf is solving.

Apart from maintaining lists of dependencies for every linux distribution (which doesn't seem feasible), do you have any suggestions have we could make this easier?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants