TL;DR - About switching from Linux Mint to Qubes OS from among various other options that try to provide security out-of-the-box (also discussed: OpenBSD, SculptOS, Ghaf, GrapheneOS)

  • Oinks@lemmy.blahaj.zone
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    1 day ago

    The GNU utils vs BSD utils issue should be easy to work around with a bit of symlinking and PATH modification:

    > type find
    find is /bin/find
    
    > type gfind
    gfind is /usr/local/bin/gfind
    
    > sudo mkdir -p /usr/local/opt/gnuutils/bin/
    > sudo ln -s /usr/local/bin/gfind /usr/local/opt/gnuutils/bin/find
    
    > PATH="/usr/local/opt/gnuutils/bin:$PATH" type find
    find is /usr/local/opt/gnuutils/bin/find
    

    or in script form:

    #!/bin/sh
    # install as /usr/local/bin/gnu-run
    # invoke as gnu-run some-gnu-specific-script script-args
    export PATH="/usr/local/opt/gnuutils/bin:$PATH"
    exec "$@"
    

    /usr/local/opt/... is probably not the best place to put this but you get the idea, you can make it work with POSIX tools. I don’t know that much about Chimera Linux but I’d be very surprised if nobody has thought of doing this systematically, e.g. as part of a distributable package.

    • LeFantome@programming.dev
      link
      fedilink
      arrow-up
      2
      ·
      14 hours ago

      Thank you for the suggestion. I am ashamed to confess that a temporary PATH variable had not occurred to me.

      I first ran into these issues creating package templates. Chimera has a beautiful package build system where packages get built in containers and source code gets downloaded into the container and and built against a clean environment. As you point out, creating a package that creates the symlinks as a dependency (along with the GNU utils) could be a viable approach here. Maybe even just in /usr/local. The GNU utils get installed to /usr/bin in Chimera and the container gets recycled for every new package. The distro would never accept such hacky packages but I can use them myself.

      For just generally working in the distro at the command-line, your temporary path idea could work well.

      Thanks again. I appreciate it!