Create Linux Abstractions
- Dominant language
- Python
- Stars
- 3.3k
- Forks
- 549
- Avg merge
- 1d 4h
- Merged PRs (30d)
- 40
Description
### What is the problem or limitation you are having?
Unlike Windows and macOS, Linux offers a robust diversity of operation. The impact of differences among Linux distros is most pronounced for Linux System packaging. While all the distros mostly provide the same services, they all implement them differently. This includes how they self identify, package installers, package naming, filesystem layouts, etc.
These differences are currently handled in-line without much re-usability. For instance, providing the user with the command line to install a specific package; I would like to use that logic in Linux System packaging for error handling with X11 passthrough for Docker....but that isn't really possible currently.
### Describe the solution you'd like
Introduce abstractions for Linux implementations and their tools.
The Linux abstraction would provide a uniform interface to details each distro provides but each differently.
The Linux tool abstraction would encapsulate how a tool is represented in any Linux distro. For instance, the `pkg-config` tool on RHEL systems is in the `pkgconf-pkg-config` package while Arch provides it in the `pkgconf` package (although...and this may be even trickier...we install the `base-devel` "virtual" package to get it).
### Describe alternatives you've considered
Continue to piecemeal Linux's lovely embrace of diversity.
### Additional context
Criticism welcome since I would like to implement something that addresses this.
Contributor guide
Research direction
Start by surveying the existing inline Linux distro and package-handling logic in the Linux system packaging and X11 passthrough paths. Identify the common distro identity, installer, package naming, and filesystem details that need a shared interface. Done means the abstractions support reuse across those contexts without relying on distro-specific inline logic.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- linux, python
- Domain
- build-system, operating-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100