Package Manager Resolving Circular Dependencies via Virtual Intermediaries

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Package managers face challenges with circular dependencies between software packages, which can prevent installation by creating loops in the dependency graph, and existing solutions may break the installation process by removing packages, leading to incomplete installations.

Innovation Solution

A package manager that generates a directed graph of software package dependencies, identifies strongly connected components, and resolves circular dependencies by removing the furthest prerequisite supporting component, allowing for the installation of strongly coupled components in a controlled manner.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If circular dependencies are detected in package installation, then installation reliability is improved by preventing loops, but installation completeness deteriorates when packages are removed to break loops

Engineering Contradiction:
Improveinstallation reliabilityVSAvoidinstallation completeness
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent introduces a virtual package as an intermediary entity that mediates between mutually dependent packages in a circular dependency. Instead of removing packages to break the loop, the virtual package acts as a placeholder that allows the installation process to proceed while maintaining the dependency relationships. The virtual package is installed first, enabling the circular dependency chain to be satisfied, and then the actual packages are installed in a controlled manner that resolves the circularity without removal.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If packages are removed to break circular dependency loops, then graph structure is improved by eliminating loops, but installation functionality deteriorates due to incomplete installation

Engineering Contradiction:
Improvegraph structureVSAvoidinstallation functionality
Core Design Contradiction:
Device complexityVSEase of operation

Solution Approach 1:

The patent performs preliminary action by installing a virtual package before attempting to install packages with circular dependencies. This preliminary installation creates a placeholder that allows the dependency resolution algorithm to proceed without detecting circular loops as errors. The virtual package is installed first, which modifies the graph structure in advance to prevent loop detection, and then the actual packages are installed in a sequence that maintains functionality while resolving the circularity.

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If traditional package managers detect circular dependencies, then dependency accuracy is improved by identifying loops, but installation process deteriorates by preventing installation

Engineering Contradiction:
Improvedependency accuracyVSAvoidinstallation process
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent converts the harmful effect of circular dependency detection into a beneficial outcome by using the detected circular dependencies to guide the installation process. Instead of preventing installation when circular dependencies are detected, the system uses the circular dependency information to install a virtual package that resolves the loop. This transforms the previously harmful circular dependency into a controlled installation sequence, maintaining high dependency accuracy while enabling successful installation.

Inventive Principle:
Principle #22Blessing in disguise (Convert harm into benefit)

Data Source

PatentUS8707293B2Package management system
Publication Date: 2014.04.22 RED HAT INC
  • US8707293B2 patent drawing
  • US8707293B2 patent drawing
  • US8707293B2 patent drawing

AI summary

A package manager that determines circular dependencies in a list of software packages to be installed on a client computer and resolves those circular dependencies so that the list of software packages can be installed is described. The package manager receives a list of software packages along with information regarding the dependencies of the software packages. The package manager generates a directed graph of the software packages based on the dependency information. Using the directed graph, the package manager determines strongly coupled components to collect and install, where each strongly coupled component includes a set of dependent components. The package manager further installs these strongly coupled components.