Altius / hotspot2

Implementation of hotspot2 by Eric Rynes
16 stars 3 forks source link

line 102: starch: command not found #26

Closed brianpenghe closed 6 years ago

brianpenghe commented 6 years ago

hotspot2-2.1.1/scripts/cutcounts.bash: line 102: starch: command not found

In README.Debian, it said "starch binary has been renamed to bedops-starch due to name confliucts with coop-computing-tools package".

Anyway to solve it?

I was using hotspot2-2.1.1

alexpreynolds commented 6 years ago

Hi Brian,

Unfortunately, I can't do much about Debian package manager decisions, but if you can't remove or disable the coop-computing-tools package, perhaps you could do the following:

  1. Locally build a version of the BEDOPS kit.
  2. Edit your environment's PATH so that the BEDOPS kit's starch binary is found before the binary or script that is part of the coop-computing-tools package, with the conflicting name.

For example, to build BEDOPS:

$ cd
$ git clone https://github.com/bedops/bedops.git
$ cd bedops
$ make
$ make install

Your PATH might be in your ~/.bash_profile file. You might edit it to look like this:

PATH=$HOME/bedops/bin:$PATH

Then close and reopen your terminal session, or run source ~/.bash_profile to update your environment.

By prepending your environment's PATH variable with the location of BEDOPS binaries, the hotspot2 kit should find and use the BEDOPS version of starch.

Of course, if you rely on the starch tool in the coop-computing-tools package, this approach will break that. I hope this is still useful.

If you have any questions about compiling BEDOPS, instructions are available here, or please follow up on the BEDOPS Issues site:

https://bedops.readthedocs.io/en/latest/content/installation.html#installation-via-source-code

Kind regards, Alex

fwip commented 6 years ago

Hi Brian,

Thanks for your feedback. It looks like on Debian, installing bedops from the repository gives you a file named bedops-starch instead of the usual name of starch.

You'll need starch to be available on your $PATH. I think the easiest way of doing so is creating a symbolic link to the bedops-starch executable, like so:

sudo ln -s /usr/bin/bedops-starch /usr/bin/starch

You can test that it worked by just running the command starch by itself - you should see usage information printed out, rather than "command not found."

Let me know if this helps, --Jemma

akjohnson commented 6 years ago

Another thing you should be able to do in bash is use an alias:

http://tldp.org/LDP/abs/html/aliases.html

alias starch='bedops-starch'

Could test it out using Jemma's method of testing, and also put it in your .bash_profile if you want it to stick.

brianpenghe commented 6 years ago

thank you all. I asked the root user to symlink that command and it now hasn't produced errors so far.