I don’t like the mess some software makes when it install in my system so I want to move it to a more appropriate place.

My questions are:

1- Where is the most appropriated directory for this? (some hidden folder made with this purpose, I thought linux had something like this as a standard)

2- How I move it without breaking anything?

  • jack000999@lemmy.fmhy.net
    link
    fedilink
    arrow-up
    23
    ·
    1 year ago

    The appropriate directory’s are the XDG Base Directory, check this page on arch wiki to move them correctly. You can also use xdg-ninja and it will scan for these extra directories on your $HOME and tell you what you need to do to move them to their appropriate location or not if these directories are hardcoded or cannot be moved.

  • lelgenio@lemmy.ml
    link
    fedilink
    arrow-up
    11
    ·
    1 year ago

    ~/go is created when compiling go programs, you can change it’s location with the GOPATH environment variable to something like GOPATH=$HOME/.local/go, and moving the directory there.

    Never seen ~/perl5, could you provide the output of perl -V

  • akash_rawal@lemmy.world
    link
    fedilink
    arrow-up
    9
    ·
    1 year ago

    I don’t like the mess some software makes when it install in my system

    I gave up bothering about this a decade ago and I just store my files elsewhere while software treat the home directory as ‘application data’.

    • MrSpandex@lemm.ee
      link
      fedilink
      arrow-up
      3
      ·
      1 year ago

      Agreed - I’m much happier with my /files directory. Not to mention I have no interest in organizing my files by type (photos, documents, music). Instead I have directories like house, finances, podcasts, etc.

      I just wish programs wouldn’t take the XDG directories so seriously and default to those locations. I’d rather they always default to last saved directory.

    • kariboka@bolha.forumOP
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      gotcha, yeah, I think I will try the same. I used to do this in windows because it is a mess.

  • bahmanm@lemmy.ml
    link
    fedilink
    English
    arrow-up
    4
    ·
    1 year ago

    RE Go: Others have already mentioned the right way, thought I’d personally prefer ~/opt/go over what was suggested.


    RE Perl: To instruct Perl to install to another directory, for example to ~/opt/perl5, put the following lines somewhere in your bash init files.

    export PERL5LIB="$HOME/opt/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}"
    export PERL_LOCAL_LIB_ROOT="$HOME/opt/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}"
    export PERL_MB_OPT="--install_base \"$HOME/opt/perl5\""
    export PERL_MM_OPT="INSTALL_BASE=$HOME/opt/perl5"
    export PATH="$HOME/opt/perl5/bin${PATH:+:${PATH}}"
    

    Though you need to re-install the Perl packages you had previously installed.

    • With ~/.local already mirroring the system paths for /share and such, I tend to prefer putting applications like these in ~/.local/opt because I think that makes more sense.

      Now, if only snap would move its stupid directory to a nornal place, or at least use a capital letter like every other folder in my home directory…

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

        I didn’t like the capitalised names so configured xdg to use all lowercase letters. That’s why ~/opt fits in pretty nicely.

        You’ve got a point re ~/.local/opt but I personally like the idea of having the important bits right in my home dir. Here’s my layout (which I’m quite used to now after all these years):

        $ ls ~
        bin  
        desktop  
        doc  
        downloads  
        mnt  
        music  
        opt 
        pictures  
        public  
        src  
        templates  
        tmp  
        videos  
        workspace
        

        where

        • bin is just a bunch of symlinks to frequently used apps from opt
        • src is where i keep clones of repos (but I don’t do work in src)
        • workspace is a where I do my work on git worktrees (based off src)