[maker-devel] Installation in a custom directory

138 views
Skip to first unread message

Sebastien Moretti

unread,
Jul 18, 2016, 10:44:51 AM7/18/16
to maker...@yandell-lab.org
Hi

I try to install maker in a custom directory following regular Perl
commands with Build.PL.

Unfortunately if I use
perl Build.PL --installdirs=<my_path>
then
./Build install --destdir=<my_root_path>
build install fails with the error:
Can't use an undefined value as a HASH reference at
.../Module/Build/Base.pm line 3038.

It does not happen if I don't use --installdirs


Is there an "official" way to install maker in a custom directory?


Also I found typos in the description of maker at
http://www.yandell-lab.org/software/maker.html
ouputs should be outputs
seusequent should be ???


maker 2.31.8, Linux x86_64 2.6.32, Perl 5.18.2

Regards

--
Sébastien Moretti
Staff Scientist
SIB Vital-IT EMBnet, Quartier Sorge - Genopode
CH-1015 Lausanne, Switzerland
Tel.: +41 (21) 692 4079/4221
http://www.vital-it.ch/ http://myhits.vital-it.ch/ http://MetaNetX.org/

_______________________________________________
maker-devel mailing list
maker...@box290.bluehost.com
http://box290.bluehost.com/mailman/listinfo/maker-devel_yandell-lab.org

Carson Holt

unread,
Jul 18, 2016, 10:48:53 AM7/18/16
to Sebastien Moretti, maker...@yandell-lab.org
MAKER will by default put executables in …/maker/bin. You should put …/maker/bin into your PATH. The maker Build.PL is configured to install things in a set directory configuration to properly locate perl libraries, C shared objects, and data files.

—Carson

Carson Holt

unread,
Aug 2, 2016, 10:09:03 AM8/2/16
to Sebastien Moretti, maker...@yandell-lab.org
If you move it, then the executables won’t be able to locate dependencies in the …/maker/data, …/maker/lib, and …/maker/perl directories. You should really either add the location of …/maker/bin to you PATH environmental variable or at most soft link the executables somewhere else using the ‘ln -s’ command.

—Carson


> On Aug 2, 2016, at 5:57 AM, Sebastien Moretti <sebastie...@unil.ch> wrote:
>
> OK, just need to move the maker/bin folder.
>
> Thanks

Sebastien Moretti

unread,
Aug 2, 2016, 10:11:20 AM8/2/16
to Carson Holt, maker...@yandell-lab.org
OK, just need to move the maker/bin folder.

Thanks

> MAKER will by default put executables in …/maker/bin. You should put …/maker/bin into your PATH. The maker Build.PL is configured to install things in a set directory configuration to properly locate perl libraries, C shared objects, and data files.

sebastie...@unil.ch

unread,
Aug 2, 2016, 10:15:29 AM8/2/16
to Carson Holt, maker...@yandell-lab.org
I moved maker/bin/, maker/perl/, maker/data/, maker/lib/ + LICENSE
README RELEASE
and it looks to be fine.

Thanks

Martin MOKREJŠ

unread,
Aug 2, 2016, 11:30:09 AM8/2/16
to Sebastien Moretti, Carson Holt, maker...@yandell-lab.org
Hi Sebastien,
I had similar concerns in the past as well.

I also would like to install it elsewhere, but usually Build.PL works with other packages. This is not the case of maker.

I would also would need two or three commandline switches: --destdir=${DESTDIR} --prefix=${EPREFIX}/usr --perl-inc-path=${EPREFIX}/${VENDOR_LIB} --perl-man-path=$somewhereelse

From the above, the ${EPREFIX}/usr could be compiled into binaries, config files, etc.
The ${DESTDIR} should contain subdirectories /usr, /usr/lib, /usr/share, etc. so that a script could do: cd /my/temp/path; tar cf - . | maker.tgz and later unpack it over my / (root directory) of the filesystem.

Then I could finish my abandoned attempt to make a package for maker in Gentoo Linux ( https://cgit.gentoo.org/proj/sci.git/diff/sci-biology/maker/maker-2.31.8.ebuild ), exactly because of these issues. ;-) As you may see, I am especially stuck with what to do with maker/lib/ contents, seems like pre-installed perl apps. I need to create a package for each of them separately before proceeding with "rm -rf maker/lib".

Martin


Sebastien Moretti wrote:
> OK, just need to move the maker/bin folder.
>
> Thanks
>
>> MAKER will by default put executables in …/maker/bin. You should put …/maker/bin into your PATH. The maker Build.PL is configured to install things in a set directory configuration to properly locate perl libraries, C shared objects, and data files.
>>
>> —Carson
>>
>>
>>
>>> On Jul 12, 2016, at 2:35 AM, Sebastien Moretti <sebastie...@unil.ch> wrote:
>>>
>>> Hi
>>>
>>> I try to install maker in a custom directory following regular Perl
>>> commands with Build.PL.
>>>
>>> Unfortunately if I use
>>> perl Build.PL --installdirs=<my_path>
>>> then
>>> ./Build install --destdir=<my_root_path>
>>> build install fails with the error:
>>> Can't use an undefined value as a HASH reference at
>>> .../Module/Build/Base.pm line 3038.
>>>
>>> It does not happen if I don't use --installdirs
>>>
>>>
>>> Is there an "official" way to install maker in a custom directory?

_______________________________________________

Carson Holt

unread,
Aug 2, 2016, 11:51:44 AM8/2/16
to Martin MOKREJŠ, maker...@yandell-lab.org, Sebastien Moretti
You are probably thinking of times you have used Build.PL for installing modules (primarily from CPAN). MAKER is not a module. You should really think of Build.PL as being akin to a Perl version of ‘make’. Just like ‘make', Build.PL can be configured to do the necessary configuration/setup for nearly anything. In this case, it’s not installing a module, rather Build.PL is just configuring external dependencies for a package of scripts. So the options you are trying to configure for have no meaning given how Build.PL is set up in this case.

—Carson

Martin MOKREJŠ

unread,
Aug 2, 2016, 12:04:28 PM8/2/16
to Carson Holt, maker...@yandell-lab.org, Sebastien Moretti
Hi Carson,

Carson Holt wrote:
> You are probably thinking of times you have used Build.PL for installing modules (primarily from CPAN). MAKER is not a module. You should really think of Build.PL as being akin to a Perl version of ‘make’. Just like ‘make', Build.PL can be configured to do the necessary configuration/setup for nearly anything. In this case, it’s not installing a module, rather Build.PL is just configuring external dependencies for a package of scripts. So the options you are trying to configure for have no meaning given how Build.PL is set up in this case.

Maybe I was fooled by the install step.

>
> —Carson
>
>
>> On Aug 2, 2016, at 9:29 AM, Martin MOKREJŠ <mmok...@gmail.com> wrote:
>>
>> Hi Sebastien,
>> I had similar concerns in the past as well.
>>
>> I also would like to install it elsewhere, but usually Build.PL works with other packages. This is not the case of maker.
>>
>> I would also would need two or three commandline switches: --destdir=${DESTDIR} --prefix=${EPREFIX}/usr --perl-inc-path=${EPREFIX}/${VENDOR_LIB} --perl-man-path=$somewhereelse
>>
>> From the above, the ${EPREFIX}/usr could be compiled into binaries, config files, etc.
>> The ${DESTDIR} should contain subdirectories /usr, /usr/lib, /usr/share, etc. so that a script could do: cd /my/temp/path; tar cf - . | maker.tgz and later unpack it over my / (root directory) of the filesystem.
>>
>> Then I could finish my abandoned attempt to make a package for maker in Gentoo Linux ( https://cgit.gentoo.org/proj/sci.git/diff/sci-biology/maker/maker-2.31.8.ebuild ), exactly because of these issues. ;-) As you may see, I am especially stuck with what to do with maker/lib/ contents, seems like pre-installed perl apps. I need to create a package for each of them separately before proceeding with "rm -rf maker/lib".


>>> Emerging (1 of 1) sci-biology/maker-2.31.8::science
* maker-2.31.8.tgz SHA256 SHA512 WHIRLPOOL size ;-) ... [ ok ]
>>> Unpacking source...
>>> Unpacking maker-2.31.8.tgz to /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work
>>> Source unpacked in /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work
>>> Preparing source in /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src ...
>>> Source prepared.
>>> Configuring source in /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src ...
>>> Source configured.
>>> Compiling source in /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src ...

MAKER supports distributed parallelization via MPI.
Would you like to configure MAKER for MPI (This
requires that you have an MPI client installed)? [N ]N
Created MYMETA.yml and MYMETA.json
Creating new 'Build' script for 'MAKER' version 'v2.31.8'


The file 'Build' has been created for you to finish installing MAKER.


==============================================================================
STATUS MAKER v2.31.8
==============================================================================
PERL Dependencies: VERIFIED
External Programs: VERIFIED
External C Libraries: VERIFIED
MPI SUPPORT: DISABLED
MWAS Web Interface: DISABLED
MAKER PACKAGE: CONFIGURATION OK


Important Commands:
./Build installdeps #installs missing PERL dependencies
./Build installexes #installs all missing external programs
./Build install #installs MAKER
./Build status #Shows this status menu

Other Commands:
./Build repeatmasker #installs RepeatMasker (asks for RepBase)
./Build blast #installs BLAST (NCBI BLAST+)
./Build exonerate #installs Exonerate (v2 on UNIX / v1 on Mac OSX)
./Build snap #installs SNAP
./Build augustus #installs Augustus
./Build apollo #installs Apollo
./Build gbrowse #installs GBrowse (must be root)
./Build jbrowse #installs JBrowse (MAKER copy, not web accecible)
./Build webapollo #installs WebApollo (use maker2wap to create DBs)
./Build mpich2 #installs MPICH2 (but manual install recommended)
Building MAKER
Installing MAKER...
Building MAKER
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../perl/lib/MAKER/ConfigData.pm
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../perl/lib/Parallel/Application/MPI.pm
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../perl/man/MAKER::ConfigData.3pm
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../bin/map_fasta_ids
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../bin/cufflinks2gff3
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../bin/maker2eval_gtf
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../bin/genemark_gtf2gff3
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../bin/maker2wap
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../bin/maker_map_ids
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../bin/ipr_update_gff
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../bin/maker2jbrowse
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../bin/maker2chado
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../bin/compare
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../bin/fasta_tool
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../bin/maker
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../bin/maker_functional
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../bin/iprscan2gff3
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../bin/iprscan_wrap
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../bin/evaluator
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../bin/maker2zff
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../bin/cegma2zff
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../bin/fasta_merge
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../bin/map_data_ids
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../bin/maker_functional_fasta
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../bin/chado2gff3
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../bin/gff3_merge
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../bin/tophat2gff3
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../bin/map2assembly
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../bin/map_gff_ids
Installing /scratch/var/tmp/portage/sci-biology/maker-2.31.8/work/maker/src/../bin/maker_functional_gff
>>> Source compiled.
>>> Test phase [not enabled]: sci-biology/maker-2.31.8

>>> Install maker-2.31.8 into /scratch/var/tmp/portage/sci-biology/maker-2.31.8/image/ category sci-biology
>>> Completed installing maker-2.31.8 into /scratch/var/tmp/portage/sci-biology/maker-2.31.8/image/

* Final size of build directory: 40312 KiB
* Final size of installed tree: 12656 KiB

ecompressdir: bzip2 -9 /usr/share/man
ecompressdir: bzip2 -9 /usr/share/doc

>>> Installing (1 of 1) sci-biology/maker-2.31.8::science
>>> Auto-cleaning packages...


That gives me these files installed on my system:

# equery files maker
* Searching for maker ...
* Contents of sci-biology/maker-2.31.8:
/usr
/usr/bin
/usr/bin/cegma2zff
/usr/bin/chado2gff3
/usr/bin/compare_gff3_to_chado
/usr/bin/cufflinks2gff3
/usr/bin/evaluator
/usr/bin/fasta_merge
/usr/bin/genemark_gtf2gff3
/usr/bin/gff3_merge
/usr/bin/ipr_update_gff
/usr/bin/iprscan2gff3
/usr/bin/iprscan_wrap
/usr/bin/maker
/usr/bin/maker2chado
/usr/bin/maker2eval_gtf
/usr/bin/maker2jbrowse
/usr/bin/maker2wap
/usr/bin/maker2zff
/usr/bin/maker_functional
/usr/bin/maker_functional_fasta
/usr/bin/maker_functional_gff
/usr/bin/maker_map_ids
/usr/bin/map2assembly
/usr/bin/map_data_ids
/usr/bin/map_fasta_ids
/usr/bin/map_gff_ids
/usr/bin/tophat2gff3
/usr/lib64
/usr/lib64/perl5
/usr/lib64/perl5/vendor_perl
/usr/lib64/perl5/vendor_perl/5.20.2
/usr/lib64/perl5/vendor_perl/5.20.2/MAKER
/usr/lib64/perl5/vendor_perl/5.20.2/MAKER/ConfigData.pm
/usr/lib64/perl5/vendor_perl/5.20.2/Parallel
/usr/lib64/perl5/vendor_perl/5.20.2/Parallel/Application
/usr/lib64/perl5/vendor_perl/5.20.2/Parallel/Application/MPI.pm
/usr/share
/usr/share/doc
/usr/share/doc/maker-2.31.8
/usr/share/doc/maker-2.31.8/INSTALL.bz2
/usr/share/doc/maker-2.31.8/README.bz2
/usr/share/maker
/usr/share/maker/GMOD
/usr/share/maker/GMOD/Apollo
/usr/share/maker/GMOD/Apollo/gff3.tiers
/usr/share/maker/GMOD/JBrowse
/usr/share/maker/GMOD/JBrowse/maker.css
/usr/share/maker/data
/usr/share/maker/data/dpp_contig.fasta
/usr/share/maker/data/dpp_est.fasta
/usr/share/maker/data/dpp_protein.fasta
/usr/share/maker/data/hsap_contig.fasta
/usr/share/maker/data/hsap_est.fasta
/usr/share/maker/data/hsap_protein.fasta
/usr/share/maker/data/te_proteins.fasta
/usr/share/man
/usr/share/man/man3
/usr/share/man/man3/MAKER::ConfigData.3pm.bz2

$ /usr/bin/maker
Argument "2.49_01" isn't numeric in numeric ge (>=) at /usr/lib64/perl5/vendor_perl/5.20.2/x86_64-linux-thread-multi/forks.pm line 1570.
Can't locate GI.pm in @INC (you may need to install the GI module) (@INC contains: /home/mmokrejs/proj/sci/sci-biology/maker/_Inline/lib /usr/bin/../perl/lib /usr/bin/../lib /usr/bin/../src/inc/perl/lib /etc/perl /usr/local/lib64/perl5/5.20.2/x86_64-linux-thread-multi /usr/local/lib64/perl5/5.20.2 /usr/lib64/perl5/vendor_perl/5.20.2/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.20.2 /usr/local/lib64/perl5 /usr/lib64/perl5/vendor_perl /usr/lib64/perl5/5.20.2/x86_64-linux-thread-multi /usr/lib64/perl5/5.20.2 .) at /usr/bin/maker line 63.
BEGIN failed--compilation aborted at /usr/bin/maker line 63.
$

Of course, because as I said, I need to install properly all the dependencies from maker/lib/ subdirectory.


BTW, did perl Build.PL introduce the _Inline/lib/ directory? It somehow escaped from the sanbox I think. :(

But thank you for you kind answer anyway,
Martin

Carson Holt

unread,
Aug 2, 2016, 12:09:31 PM8/2/16
to Martin MOKREJŠ, maker...@yandell-lab.org, Sebastien Moretti
The install step is installing the C/Perl shared object bindings for MPI to their final location. I could call that internally to ./Build, but since it can fail, and I also since it is configured to fail on missing Perl dependencies, it is better to run it as the final step.

—Carson

Reply all
Reply to author
Forward
0 new messages