Reproducibility for any Linux distribution! (Inspired by NixOS, btw.)

2,493
0
Published 2024-02-17
Rebos is a tool to make any Linux distribution reproducible like NixOS.
(I am aware that technically this is repeatability instead of reproducibility, but they are pretty much the same.)

If you use Arch, you can install Rebos from my software repository.
The link is down under 'Links:'.

Links:
My Website (With Links & Discord Server): oglo.dev/
Rebos GitLab: gitlab.com/Oglo12/rebos
My Rebos Configuration: gitlab.com/Oglo12/rebos-config
Rebos Crates.io: crates.io/crates/rebos
My Arch Linux Software Repository: gitlab.com/Oglo12/oglo-arch-repo

Enjoy! :D

All Comments (21)
  • @user-rh9fn5rn1l
    This is so cool! Will be happy to try it and contribute to it if needed.
  • @Muaahaa
    Not saying this isn't going to be a good or handy tool that makes it nicer to work with imperative package managers, but this is only very superficially like Nix. While there are several that could be talked about, the big ones are that you can configure your system (not only installing packages) and then the big one, isolation between packages combined with profiles. This is what allows "nix-shell" to work, which is one of the best Nix features for devs.
  • @aphextwiner
    Keep in mind this is repeatable, not reproducible. Each time you install those packages on a new machine they won't be the same today and tomorrow, so you can't call it reproducible lile what Nix does. Nix flakes offer real reproducibility because of the flake.lock file and the sha256 hashes of each input.
  • @YrmiZ
    You sir have bright future ahead!
  • Won't use it for now but liked it, leaving this comment to help with engagement
  • @jhonyortiz5
    For people that want a way to easily setup their system and maybe its more widely used, ansible is another option. With ansible you can run scripts/playbooks locally. The playbooks are just yml files which are easy to work with.
  • @tkenben
    So, if I understand correctly, this manages a history of package install commands? Like, using debian as an example, it would basically execute a list of "sudo apt install ", and then to rollback it does the "sudo apt remove " in reverse order? Or is there something else more nuanced going on here that I don't see? I guess what I'm asking is does this procedurally rollback (as in conceptually) or does it actually take the machine back to the physical state of bits you have a view of? I still don't understand NixOS completely, but the way I thought it worked was that your view of the "store" is returned to the way it was previously, not rolled back piece by piece, which is why you can actually boot a previous generation. In any case, very well done.
  • @maverik0071
    I have to add arch linux to my one of my laptops and this is what im going to use. I was using BlendOs v4 and they were doing the same thing just like this. I enjoy this and will be used once I get my arch up and runnung. I appreciate the hardwork
  • @Parameter8030
    Interesting tool, and very thorough demo! Any plans for XDG support? Can I put the .rebos-base/ folder in .config/rebos-base for example? I like a clean home dir without 20 gazillion hidden files, but that's just me.
  • @JoshuaBlais
    I was thinking about switching to nix, I'll give this a go first!
  • @TheSast
    While not truly reproduceable, it looks neat. Is there any reason why the generations are not automatically aligned?
  • Btw did someone take over paru? I switched back to yay around nov-22 because it seemed to have become abandonware
  • @friedrichmyers
    I was kind of writing the same thing in C. Now, I think I won't need it lol
  • @zhytedark2859
    Do you have plan to be able to add a dotfiles for a package to be able to version it the same way you version your package? To link the package and its configuration