Modularity in another distros - GoboLinux, NixOS

New features which should be implemented in Porteus; suggestions are welcome. All questions or problems with testing releases (alpha, beta, or rc) should go in their relevant thread here, rather than the Bug Reports section.
Post Reply
Posts: 561
Joined: 26 Jun 2013, 14:03
Distribution: x64 Openbox
Location: Poland

Modularity in another distros - GoboLinux, NixOS

Post#1 by tome » 24 Feb 2016, 10:54


Instead of having parts of a program thrown at /usr/bin, other parts at /etc and yet more parts thrown at /usr/share/something/or/another, each program gets its own directory tree, keeping them all neatly separated and allowing to see everything that's installed in the system and which files belong to which programs in a simple and obvious way.
Each program entry contains all files for that program, stored in a versioned subdirectory.
Multiple versions of a program can be maintained simultaneously. Default programs can be switched by "Current" symlink e.g. "Current -> 2.6.7".
There is no measured performance loss in using symbolic links.

Building a new configuration cannot overwrite previous configurations. If the upgrade to a new configuration is interrupted the system will still be in a consistent state: it will either boot in the new configuration or an older version can be selected.
Rollbacks (e.g. from the system boot menu) are a lightweight operation that do not involve files to be restored from copies.
Every user can have a dedicated profile in which they can install packages - different users can have different versions of the same package installed in their respective profiles. If two users install the same version of a package, only one copy will be built or downloaded.
NixOS stores all packages in isolation from each other in the package store. Installed packages are identified by a cryptographic hash of all input used for their build. Changing the build instructions of a package, modifies its hash that will result in a different package installed in the package store. Most of this is done by symlink indirections to generated files in /nix/store/...

NixOS ... -final.pdf

Maybe Porteus (modular distro) can adopt some solutions from these modular distros - without lost of performance and boot time).


Re: Modularity in another distros - GoboLinux, NixOS

Post#2 by fullmoonremix » 24 Feb 2016, 11:31

Salutations... :good:

IMHO... :oops: these are sound concepts. It would be highly effective to incorporate them.
I think to implement them... would require an internal dedicated repository path (database?) approach.

That would help address redundancy and dependency hell issues.

Best Regards... :beer:

Full of knowledge
Full of knowledge
Posts: 2522
Joined: 25 Jun 2014, 15:21
Distribution: 3.2.2 Cinnamon & KDE5
Location: London

Re: Modularity in another distros - GoboLinux, NixOS

Post#3 by Bogomips » 24 Feb 2016, 12:10

On the way to Porteus, tried to load GoboLinux. Could not even load it. :twisted:
Linux porteus 4.4.0-porteus #3 SMP PREEMPT Sat Jan 23 07:01:55 UTC 2016 i686 AMD Sempron(tm) 140 Processor AuthenticAMD GNU/Linux
NVIDIA Corporation C61 [GeForce 6150SE nForce 430] (rev a2) MemTotal: 901760 kB MemFree: 66752 kB

User avatar
Posts: 4902
Joined: 28 Dec 2010, 14:25
Distribution: kde xfce porteus manjaro kubun
Location: Enfin l'été, le changement climatique attendu: le soleil.

Re: Modularity in another distros - GoboLinux, NixOS

Post#4 by francois » 24 Feb 2016, 16:24

Thanks for these two good summaries tome. Great. :)

My experience with nix os was that it was not easy to implement and rather heavy and cumbersome. But maybe I did not tried enough persistently to appreciate this system.
Voltaire: Le mieux est l'ennemi du bien.

User avatar
Posts: 3058
Joined: 06 Feb 2013, 22:12
Distribution: Cinnamon 3.2.2 64-bit ISO
Location: Western NY, USA

Re: Modularity in another distros - GoboLinux, NixOS

Post#5 by Ed_P » 24 Feb 2016, 17:39

It could be noted that GoboLinux is a 1.45 GB download and nixos 976 MB. And both taking about 30 mins to download.

Posts: 125
Joined: 18 Feb 2016, 09:25
Distribution: Linux porteus 3.2.2 KDE
Location: Spain

Re: Modularity in another distros - GoboLinux, NixOS

Post#6 by port » 10 Mar 2016, 00:50

Nix is a great package manager and also the free software counterpart guix with the advantage (for me at least) of using guile (scheme) as configuration language rather than DSL as nix does

But even with all advantages of a functional, declarative package manager with rollback capabilities I think it is overskilled to be used in porteus, it introduces a more complicated configuration with little profit since you can rollback packages with a simple deactivate (sure, package level rather than system level but easier for users and porteus seems to be focused to single user, so no complexity needed!) I think activate/deactivate of union fs packages gives porteus a KISS touch it should never loose, simple is better feeling is what makes porteus shine

But I think nix/guix bells and whistles can be achieved wich GNU Stow package manager which could give porteus interesting characteristics without innecesary complexity, it would be interesting to think how to add it to porteus developers' toolchain and also to user's one because it may be interesting in module building process (installing software prior to pack as module) and also to handle special porteus folders and even user folders (i.e. dotfiles)

Post Reply