I’m doing a bunch of AI stuff that needs compiling to try various unrelated apps. I’m making a mess of config files and extras. I’ve been using distrobox and conda. How could I do this better? Chroot? Different user logins for extra home directories? Groups? Most of the packages need access to CUDA and localhost. I would like to keep them out of my main home directory.

  • voluntaryexilecat@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    4
    ·
    1 year ago

    I use a mixture of systemd-nspawn and different user logins. This is sufficient for experimentation, for actual use I try to package (makepkg) those tools to have them organized by my package manager.

    Also LVM thinpools with snapshots are a great tool. You can mount a dedicated LV to each single user home to keep everything separated.

    • Lily33@kbin.social
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      NixOS containers could do what OP’s asking for, but it’ll be trickier with just nix (on other distro). It’ll handle build dependencies and such, but you’ll still need to keep your home or other directories clean some other way.

      • demesisx@infosec.pub
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 year ago

        OP could use flakes to create these dev environments and clean them up without a trace once done.

            • Lily33@kbin.social
              link
              fedilink
              arrow-up
              1
              ·
              1 year ago

              Does NOT delete any files that were written to, for example, ~/.local or ~/.config from dev shell.

              One of OP’s problems was,

              I’m making a mess of config files and extras.

  • jet@hackertalks.com
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 year ago

    Qubes: you can install software inside of its own disposable VM. Or it can be a persistent VM we’re only the data in home persists. Or it can be a VM where the root persists. You have a ton of control. And it’s really useful to see what’s changed in the system.

    All the other solutions here are talking about in the operating system, qubes is doing it outside the operating system

  • Sims@lemmy.ml
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    Haven’t tried it (and don’t use docker), so a wild shot: https://github.com/jupyterhub/repo2docker

    ‘repo2docker fetches a repository (from GitHub, GitLab, Zenodo, Figshare, Dataverse installations, a Git repository or a local directory) and builds a container image in which the code can be executed. The image build process is based on the configuration files found in the repository.’

    That way you can perhaps just delete the docker image and everything is gone. Doesn’t seem to depend on jupyter…

  • Kangie@lemmy.srcfiles.zip
    link
    fedilink
    arrow-up
    1
    ·
    1 year ago

    I use Gentoo where builds from source are supported by the package manager. ;)

    Overall though, any containerisation option such as Docker / Podman or Singularity is what I would typically do to put things in boxes.

    For semi-persistent envs a chroot is fine, and I have a nice Gentoo-specific chroot script that makes my life easier when reproing bugs or testing software.

  • VonReposti@feddit.dk
    link
    fedilink
    arrow-up
    0
    arrow-down
    1
    ·
    1 year ago

    For “desktop” stuff (gaming, office etc.) I just install bare-metal, for “server” stuff I basically only look for containerisation in the form of Podman (Docker compatible). If it doesn’t exist as a compose file it isn’t worth my time.