Gnu Guix package manager? Packages in user space?

  • Just a suggestion.
    No need to base libreElec on a package management system.
    But integrate Guix package manager could be an unobstrusive way to install a lot of packages in a user space. So we will be free to activate guix deamon or not...
    Is it a good idea? Can someone make it?

  • Iridium : Yes, sure. I understand and I totally agree. BUT, GNU Guix is not a classic package manager. If you run the Guix deamon, you can install what you want in a specific user space (without root privileges). So installed packages and the distribution itself are independants. It's similar to dockers. So, no problem with the read only system part constraint.


    CvH : Of course. Not sure what is better. Provide Guix, Dockers, or the two?...I don't know.

    Guix-HPC — Using Guix Without Being root

    https://www.slant.co/versus/1145/5880/~gnu-guix_vs_docker (read pros and cons)


    @ LE Developpers : It's up to you ;)

    Edited 2 times, last by flavi1 ().

  • If there is a choice to do, this is my point of view :

    Docker is for a very specific usage, and deliver very large images size.

    Guix IS a package manager that produce packages that can be installed without Guix.

    Finally, if you need docker, why don't install it from Guix?

  • If there is a choice to do, this is my point of view :

    Docker is for a very specific usage, and deliver very large images size.

    Guix IS a package manager that produce packages that can be installed without Guix.

    Finally, if you need docker, why don't install it from Guix?

    Docker is already included ;)

  • There is low appetite among current staff to add a package manager to our deliberately HTPC-client focussed distro. We are more interested to know what the 3-4 extra apps are that everyone has a burning desire to run (as long as they aren't content stealing/theft/piracy tools) so we can consider packaging them as addons or asking the linuxserver.io folks to add a lightweight docker container.

  • For me personally, the kind of services that require an "always on" machine.


    I have LibreElec running 24/7 so it makes sense to consolidate as many services onto one machine as is possible/ practical. This is where docker makes a lot of sense.


    NAS, bittorrent client, cloud storage and any other process that is required to be continually running is a prime candidate IMO


    I would also like to see some more in depth documentation for the docker images that are already available, especially information that is unique to running them on LibreElec.


    Search for "LibreElec Mariadb" and the results are a barren wasteland. "Mariadb docker" is marginally more fruitful, but much of that info is either super advanced or not helpful when just trying to do something simple like using Mariadb for Nextcloud on Libreelec. There is really a lot of information to unpack.


    Once I get it all working, I do plan to write a tutorial from a beginners perspective so I can contribute something to this great project.

  • Install the Linux-Server.io repo and just install the mariadb like you do it for every other kodi addon.


    You can also install portainer that allows you to manage the dockers at an web ui.


    Thats everything included at the repo.

  • Installation is the easy bit. I had that done in about 5 minutes.


    Configuring it is another story. So far I've been trying to figure it out, on and off, for almost 2 days and I still can't even create a new database. All the online tutorials do not seem to be relevant to LibreElec. I just get a string of CLI errors, can't find the socket, etc, even from inside the docker container, when I try to follow a tutorial. Each new error leads me down a seeming endless mesh of interconnected rabbit holes, lol

  • I think adding a package manager would mean more work than you think. You can't just plug-in a package manager from a different distribution and use their package repo.


    A more approachable way (perhaps) to extend LibreELEC would be to create add-ons for GCC and the rest of Linuxbrew's few dependencies, which would allow you to compile the many packages available for Homebrew.


    Or just properly learn how Docker works, which doesn't really take that much time. Then you can containerize whatever distribution you like and install any package available.

  • Installation is the easy bit. I had that done in about 5 minutes.


    Configuring it is another story. So far I've been trying to figure it out, on and off, for almost 2 days and I still can't even create a new database. All the online tutorials do not seem to be relevant to LibreElec. I just get a string of CLI errors, can't find the socket, etc, even from inside the docker container, when I try to follow a tutorial. Each new error leads me down a seeming endless mesh of interconnected rabbit holes, lol

    To be fair, configuration is not unique to docker. Even if you installed mariadb from a package manager you would still have to configure it almost the same way.


    Configuration via phpmyadmin or any other mysql client is exactly the same. Doing it via cli first requires exec'ing into the container. The rest is the same.


    The socket error you mentioned in the other thread, I've never seen and should not happen. If you provide more details I can try and troubleshoot.

  • Quote

    Or just properly learn how Docker works, which doesn't really take that much time

    Still the big image size problem, but maybe you're right...


    Linuxbrew vs guix? Guix is full ready to use for linux. Compiled packages already done.


    Quote

    I think adding a package manager would mean more work than you think. You can't just plug-in a package manager from a different distribution and use their package repo.

    Theoricaly, it is as simple as it seems. If you want to install guix on a distribution you need 1 compile it, 2 enable the deamon. And then you can install what you want in userspace with shared libraries instead of root system space overrides.


    See :

    packaging - Can Guix packages be delivered to other distros? - Unix & Linux Stack Exchange


    GNU Guix Reference Manual


    I can't be sure, but it seems to be easy...

  • Still the big image size problem, but maybe you're right...


    Linuxbrew vs guix? Guix is full ready to use for linux. Compiled packages already done.

    Binaries are available for Linuxbrew as well, called "bottles".



    Theoricaly, it is as simple as it seems. If you want to install guix on a distribution you need 1 compile it, 2 enable the deamon. And then you can install what you want in userspace with shared libraries instead of root system space overrides.

    Practically, you're wrong. LibreELEC doesn't have fully fledged util-linux, but uses instead busybox. There's no bash. There's only a root user and not possible to add users. There's a read-only root system. I understand that you can install GUIX in a separate location, but I'm quite certain that you will run into issues with the mentioned limitations. The binaries themselves will run, but the daemon and scripts to start etc will fail. Come to think of it, Linuxbrew will probably have some issues as well.


    I do agree though, LibreELEC desperately needs a proper package manager. Personally I have tons of tasks for my living room HTPC. Most of them unrelated to Kodi.


    Flatpak/Snap might be better alternatives. Someone should look into packaging one as an addon (or simply integrated into LibreELEC). I might, but probably not in the near future.