Code Monkey home page Code Monkey logo

dnf-modular-kkt's Introduction

How does DNF do dependency resolution wron (for modularity)

What does DNF do today?

  1. Resolves dependencies between modules (and consider them as enabled)
  2. Filter out RPMs which are in non-enabled modules (exclude, disable)
  3. Install RPMs from profile

So what's wrong with it?

It resolves dependencies between modules and rpms at different points of time.

Example

We have test-app rpm which depends on kkt >= 50. And we have 2 kkt build versions: 30 and 80.

And they are packed into a modules as following:

  • kkt:konsky:2019:deadbeef:x86_64
    • Contains kkt-80-1.x86_64
  • kkt:barani:2019:bbadbeef:x86_64
    • Contains kkt-30-1.x86_64
  • test-app:master:2019:deadbeef:x86_64:
    • Contains test-app-1-1.x86_64
    • Requires kkt: []

That means, if you would be about to install test-app, you would get test-app-1-1 and kkt-80-1โ€ฆ But not with DNF. What you will get is:

Error:
 Problem: package test-app-1-1.x86_64 requires kkt >= 50, but none of the providers can be installed
  - conflicting requests
  - package kkt-80-1.x86_64 is excluded

Try it yourself!

$ ./build.sh
$ sudo rm -rf /var/cache/dnf/test*
$ sudo dnf --repofrompath=test,$PWD/repo module install test-app

dnf-modular-kkt's People

Contributors

ignatenkobrain avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.