How do you containerize stuff you install from source in a way that you can completely remove later? - eviltoast

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.

  • Kangie@lemmy.srcfiles.zip
    link
    fedilink
    arrow-up
    6
    ·
    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.

    • j4k3@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      Wait. Does emerge support building packages natively when they are not from Gentoo?

      Most of the stuff I’m messing with is mixed repos with entire projects that include binaries for the LLMs, weights, and such. Most of the “build” is just setting up the python environment with the right dependency versions for each tool. The main issues are the tools and libraries like transformers, pytorch, and anything that interacts with CUDA. These get placed all over the file system for each build.

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

        Ebuilds (Gentoo packages) are trivial to create for almost anything, so while the answer is ‘no the package manager doesn’t manage non PM packages’, typically you’ll make an ebuild (or two or three) to handle that because it’s (typically) as easy as running make yourself. :)