Solus OS’s innovative attempt to revamp its Linux filesystem structure with an approach known as “Usr-Merge” is a bold step we can’t fail to cover for our readers. But before we say anything more, let’s explain what’s behind the term “Usr-Merge.”
Traditionally, Linux filesystems have scattered files across multiple directories such as “/bin,” “/usr/bin,” “/sbin,” “/lib,” and others. The Usr-Merge project aims to consolidate these directories under the “/usr” tree, enhancing compatibility across different Linux distributions and simplifying the system’s architecture.
If we have to present it graphically to make it clearer, here’s what it’s about:
I’m almost certain that most of you like the Usr-Merge approach better. Implementing it, however, turns out not to be such an easy thing.
Referring to Solus’ devs, the initial rollout of Usr-Merge in May did not go as planned. The team encountered significant issues due to the non-deterministic nature of package updates with Solus’s package manager, eopkg. This issue led to a scenario where critical symlinks were not created before other updates, causing system malfunctions for many users.
The challenge was compounded by the system’s inability to ensure all users had the necessary prerequisites installed due to skipped updates, a common occurrence with eopkg’s update mechanism.
Solus developers are now incorporating a marker file system and early boot scripts into the update process to overcome these hurdles. These changes are designed to ensure that Usr-Merge only activates when all components are properly aligned, thereby avoiding the pitfalls of the first attempt.
The updates are meticulously planned to run a script that merges directories only after verifying the presence of marker files, safeguarding against premature or incorrect merges.
Okay, you’re probably asking yourself, why are Solus developers doing all this? It seems it’s all related to the distribution’s planned switch to moss, the package manager used by the still-in-development Serpent OS distribution.
“Serpent OS and
moss
take the idea of Statelessness a step further. The package manager cannot install files outside of “/usr,” enforcing a stateless system. Since Solus will also be moving tomoss
and associated tooling, we will also not be able to ship files outside of “/usr,” including files in directories like “/bin” and “/lib.” Thatโs where Usr-Merge comes in; it is a prerequisite to switching to the Serpent OS tooling on Solus.”
As you know, Solus is a rolling-release Linux distribution. This means users typically install once and upgrade foreverโthe main concept behind rolling releases. This approach is usually convenient but complicates implementing big changes like Usr-Merge.
For point release distros, where a fresh install is often recommended, it’s easier to introduce significant changes by just issuing a new ISO with the new release. However, these major updates must be applied to existing Solus installations, making things far more complicated.
Yes, the distro has point releases, the most recent being Solus 4.5 (Resilience), rolled out at the beginning of the year. However, these releases are more like snapshots in time. For Solus users who regularly update their system, transitioning from one version to the next is completely transparent.
Finally, the main question is: When can we expect the switch to Usr-Merge in Solus? The simplest answer is, “It’ll be ready when it’s ready.” The Solus developers haven’t set a specific timeline yet, but it seems like we wonโt have to wait too long before this exciting update rolls out.
A quick look at the project’s GitHub page reveals that Usr-Merge is set to be a major feature in the upcoming Solus 4.6 release. As of now, the development of this new version is 77% complete, indicating that over two-thirds of the work has already been done.
Visit the announcement for more detailed information. Additionally, you can find interesting information about Usr-Merge at this link.