The Package Management Conflict: System vs Language Package Managers and the C Library Problem
By
tanganik
Toasted golden, schmeared with insight. Top of the rack.
Summary
The article examines the fundamental conflict between system package managers (like apt, dnf) and language package managers (like npm, pip), highlighting how they evolved to solve different problems but create friction where their responsibilities overlap. The core issue centers on C libraries, which sit at the intersection: needed by language packages but provided by system packages, with neither system understanding the other's needs. The piece explores why developers end up managing packages from one package manager with another, analyzing the historical evolution and technical challenges of this persistent problem in software development.
Key quotes
· 4 pulledSystem package managers and language package managers are both called package managers. They both resolve dependencies, download code, and install software. But they evolved to solve different problems, and the overlap is where all the friction lives.
If you drew a venn diagram, C libraries would sit right in the middle: needed by language packages, provided by system packages, understood by neither in a way the other can use.
As Kristoffer Grönlund put it in 2017: 'Why are we trying to manage packages from one package manager with a different package manager?'
System package managers and language package managers are solving different problems that happen to overlap in the middle.
You might also wanna read
What Truly Defines a Package Manager: Beyond Basic Registries to Dependency Graphs
The article discusses the characteristics that distinguish true package managers from tools that merely resemble them. The author argues tha
Why Package Managers Should Avoid Using Git as a Database for Registries
The article critiques the recurring pattern of package managers using Git repositories as databases for package registries, arguing that whi
Experiencing Derivation Issues with Nix Package Management for Ruby
The author shares a personal experience with Nix package management where they encountered a perplexing issue trying to access the derivatio
Why Average LLM Use Is Likely Destroying Value in Software Development
The author argues that, contrary to prevailing hype, the average use of Large Language Models (LLMs) is likely destroying value rather than
How AI Accelerated Prototyping: From Idea to Tangible in Record Time
The author reflects on how AI has transformed their prototyping workflow. Previously, the biggest bottleneck was the time needed to scaffold
GitLab 19.0 launches with Secrets Manager, agentic workflows, and self-hosted AI models
GitLab 19.0 has been released, positioning itself as an intelligent orchestration platform for DevSecOps. The release includes expanded secr
bit.ly·23h ago