I'm a PhD in bioinformatics, mostly self-taught, and I'm coming to a point where I want to clean up my various directory structures (i.e. my data), but I'm also thinking about how I'm storing the various bioinformatic packages I'm using. Having no formal training and having taken only a single Unix course, there's still a lot I don't know that I assume are taught in "Unix 101" or similar. I did a bit of googling, but I didn't really find answers to my questions, so I thought I'd ask them here. I am working on a Mac, so OSX (Yosemite), if that matters.
When it comes to downloading and installing the various packages I'm using, my current solution is to copy the full downloaded directory to
/Users/sajber/software just to have all the files,
make (if applicable; sometimes there are ready-made binaries in the downloaded directory) and then copy the binaries to
/Users/sajber/bin. I have then set my
PATH to include
/Users/sajber/bin. I am not using any form of package managing software, so I do everything manually.
How "wrong" is this, and how can I improve it? What do people usually do, is there some kind of standard?
I thought about just keeping all the packages in
/Users/sajber/software as previously, but rather add the individual packages to
PATH, as in
PATH=$PATH:/Users/sajber/software/<package>. When I started out, I initially did this, but then my
PATH became this long mess of numerous paths that was hard to change without making mistakes, so I went with my current solution instead. It now occurs to me that I might just change
.bash_profile instead, giving each package a separate line in it (as above) for easier access, if this is a "better" solution.
I also have a
/Users/sajber/scripts folder for my various Python, R and bash scripts, which is also added to
PATH. I have a
Git repository in this directory for version control. Is this the way you should do things?
Sorry if these questions are all very basic! I just don't really know what is the standard way of doing things in an Unix environment, being mostly self-taught.