rajewsky-lab / mirdeep2

Discovering known and novel miRNAs from small RNA sequencing data
GNU General Public License v3.0
138 stars 49 forks source link

perl install.pl error: URL check for Vienna package fails though URL resolves properly #2

Closed wengqi123 closed 7 years ago

wengqi123 commented 7 years ago

i want to install mirdeep2,but when i use :perl install.pl

error:

If in doubt our program is right, nature is at fault. Comments should be sent to rna@tbi.univie.ac.at.

Downloading Vienna package now

Vienna package not found at http://www.tbi.univie.ac.at/RNA/packages/source/ViennaRNA-1.8.4.tar.gz Please try to download the Vienna package from here http://www.tbi.univie.ac.at/RNA/RNAfold.html

but i have install Vienna: enter: RNAfold -h RNAfold 2.2.6 Calculate minimum free energy secondary structures and partition function of RNAs Usage: RNAfold [OPTIONS]...

how can i install mirdeep2?

mschilli87 commented 7 years ago

I had a quick look at install.pl and it looks like depending on which download too is installed/used, one of the following commands is executed to check for the existence of the file:

  1. wget --spider -v 'http://www.tbi.univie.ac.at/RNA/packages/source/ViennaRNA-1.8.4.tar.gz' 2>&1
  2. curl --head 'http://www.tbi.univie.ac.at/RNA/packages/source/ViennaRNA-1.8.4.tar.gz' |head -n1

The first commands reports the file as existing for me, the second fails, but the full output of curl --head 'http://www.tbi.univie.ac.at/RNA/packages/source/ViennaRNA-1.8.4.tar.gz' contains the following line:

Location: https://www.tbi.univie.ac.at/RNA/packages/source/ViennaRNA-1.8.4.tar.gz

Note the https:// instead of http:.

So the way I see it, there are two possible ways to solve this:

  1. Install wget so it is used for downloading instead of curl.
  2. Modify the source URL in download.pl to use https:// instead of http://.

The first one is more a workaround, while the second one seems like the proper fix to me.

@drmirdeep: If you agree, can you patch this (and make a new release if you want)?

mschilli87 commented 7 years ago

I just wanted to add a link to the place to modify to my prevoius comments when I realized that it already uses https:// (the http:// is still there commented out below).

The actual URL used is https://www.tbi.univie.ac.at/RNA/download/sourcecode/1_8_x/ViennaRNA-1.8.4.tar.gz" which results for both wget and curl in 302 (file found).

This is also the URL the version 1.8.4 source is linked to on https://www.tbi.univie.ac.at/RNA/#old.

Downloading it with my browser worked.

Actually, downloading it with wget also worked and wget --spider -v 'https://www.tbi.univie.ac.at/RNA/download/sourcecode/1_8_x/ViennaRNA-1.8.4.tar.gz' 2>&1 shows a 301 after the 302:

Spider mode enabled. Check if remote file exists.
--2017-11-13 10:20:30-- https://www.tbi.univie.ac.at/RNA/download/sourcecode/1_8_x/ViennaRNA-1.8.4.tar.gz
Resolving www.tbi.univie.ac.at (www.tbi.univie.ac.at)... 131.130.44.61
Connecting to www.tbi.univie.ac.at (www.tbi.univie.ac.at)|131.130.44.61|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://www.tbi.univie.ac.at/RNA [following]
Spider mode enabled. Check if remote file exists.
--2017-11-13 10:20:30-- https://www.tbi.univie.ac.at/RNA
Connecting to www.tbi.univie.ac.at (www.tbi.univie.ac.at)|131.130.44.61|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://www.tbi.univie.ac.at/RNA/ [following]
Spider mode enabled. Check if remote file exists.
--2017-11-13 10:20:31-- https://www.tbi.univie.ac.at/RNA/
Connecting to www.tbi.univie.ac.at (www.tbi.univie.ac.at)|131.130.44.61|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 207749 (203K) [text/html]
Remote file exists and could contain further links,
but recursion is disabled -- not retrieving.

I didn't manage to figure out the correct new URL to make the checks pass.


Installing wget should still get install.pl to run properly.

mschilli87 commented 7 years ago

It seems there is no static URL (probably there are several mirrors and the link is resolved to one of them upon request by forwarding), but adding the -L/--location flag to the curl call enables it to follow the redirections just like wget does by default.

mschilli87 commented 7 years ago

@Drmirdeep: I still don't see how any of this could break the check sub in install.pl. Any ideas? @wengqi123: Can you confirm that you use the same version of mirdeep2 I'm looking at?

Drmirdeep commented 7 years ago

Indeed, the change to https from http is an issue for curl and the check routine since the head command is not supported in https. Curl has already the -L option supplied, so nothing to change here. However, I don't see a simple workaround solution for the curl issue so I just added a direct download of the package in the check routine in case curl and an https address is supplied.

mschilli87 commented 7 years ago

fixed with https://github.com/rajewsky-lab/mirdeep2/commit/90ecf5a01911f95839c1a264747e4e917a7835f1

wengqi123 commented 6 years ago

that,i don't use the version same as mirdeep2 shows in readme,but now i Install all the dependent software(new version) independently,and add all to path,and null file 'install_successful ',and it works now,so the mirdeep2 need the version same as the readme?

Drmirdeep commented 6 years ago

The install.pl script has been patched yesterday and should work now properly... Mirdeep2 has no version requirements on its own. However bowtie 1 is mandatory. Cheers