Biostar Beta. Not for public use.
Organizing tools/ software
1
Entering edit mode
13 months 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 • 419 views
ADD COMMENTlink
0
Entering edit mode

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

ADD REPLYlink
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.

ADD REPLYlink
0
Entering edit mode

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

ADD REPLYlink
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.

ADD REPLYlink
3
Entering edit mode
13 months ago
kloetzl ♦ 1.0k
European Union

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 COMMENTlink
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

ADD REPLYlink
3
Entering edit mode
12 months ago
Spain. Universidad de Córdoba

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.

ADD COMMENTlink
3
Entering edit mode
11 months ago
India

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

ADD COMMENTlink
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?

ADD REPLYlink
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.

ADD REPLYlink
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.

ADD REPLYlink

Login before adding your answer.

Similar Posts
Loading Similar Posts
Powered by the version 2.1