[Help] go and perl5 folders in ~/

kariboka@bolha.forum to Linux@lemmy.ml – 41 points –
i.imgur.com

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?

18

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.

~/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

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'.

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.

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

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.

[This comment has been deleted by an automated system]

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)

Try xdg-ninja to learn how to move them (and everything else) away from your home directory.