Organizing tools/ software
3
1
Entering edit mode
4.5 years ago
shibl_a ▴ 20

I constantly download tools and programs to work with. I don't want to have to create a new PATH every time. How can I organize ALL my tools/ programs/ scripts (old and new) into one place so that I don't have to worry about running commands from anywhere on my terminal? any ideas?

software error • 1.1k views
0
Entering edit mode

How is this a software error? Please use logical tags.

0
Entering edit mode

Thank you for your suggestion. It was the closest I could find to describe my question. If there were other tags I would've used them.

0
Entering edit mode

You can just use whatever you want as a tag and don't have to use the suggestions.

0
Entering edit mode

I actually enjoy installing and organising these programs but I never store their location in my PATH (a few rare exceptions). I use them with the absolute paths in all scripts and rely on an initial well-organised file system to avoid headaches later down the line.

3
Entering edit mode
4.5 years ago
kloetzl ★ 1.1k

Personally, I try to avoid make install from any software like the plague. Usually, I forget about the software so it just ends up filling my disk space and leading to other issues (not receiving any updates etc.). Instead these days I have a directory with a bunch of 3rd party software source files (commonly also git repo clones). There I build the tools and have a symbolic link from $HOME/bin to each tool with $HOME/bin being in my $PATH. That way uninstalling is easy, updating is easy (git pull && make), and I even have the source code at hand if I stumble upon a bug. This scheme is almost as good as making my own package via makepkg or smthn similar. ADD COMMENT 0 Entering edit mode I use this slightly modified: $HOME/usr and ./configure --prefix=$HOME/usr or make --prefix=$HOME/usr. This way I can safely execute make install and keep source and binaries separated.

The advantage is that all (bin, lib, man, etc...) will end up in $HOME/usr. The disadvantage is that you'd still have to link each executable to one folder that you add to you're path. Or add each path in $HOME/usr/bin to your profile/bashrc

3
Entering edit mode
4.5 years ago

If working with Linux, copy the binaries in a path included into your path. I use to use /usr/local/bin You need to be superuser to be able to do it

Another possibiity is to add the export PATH command in a file such as .bashrc that is read every time you initiate Linux.

3
Entering edit mode
4.5 years ago

Use tools like conda, docker to manage software installations. Containerized software is better for version management and reproducibility of workflows

0
Entering edit mode

Hi- I'm not very familiar with docker and friends (they have been on my todo list for quite a while...). Are you suggesting that every time you start a new project you should create a docker instance with all the necessary tools in it (like bwa, bedtools, R & packages, custom scripts etc)? Then when the project is finished you distribute the docker container?

0
Entering edit mode

I like the idea of being able to have everything I need for a project in one place. I'll check out docker. Thanks for the inspiration.

0
Entering edit mode

Containerized software is better for version management and reproducibility of workflows

That really depends on the person and how organised they are.