##################################################################################### # This script should be pretty much self-explanatory. # # The procedure for each module is: # # 1) Iff there's a post-install script (eg PGPLOT and PDL), download a copy of it; # # 2) par_install_ppd() the ppd file; # # 3) Iff there's a post-install script, run it. # # Not many modules have a post-install script. At time of writing the only modules # # on the sisyphusion repo that have post-install scripts are Math::GSL, PDL, # # PDL_dev, PDL-Stats, PDL::Graphics::PLplot and PGPLOT. # # This can always be checked by going to: # # http://www.sisyphusion.tk/ppmindex.html and searching for the string # # 'post-install'. # # # # This script installs PDL and all of its optional, recommended and obligatory # # dependencies (except Inline::C, which is recommended and should be built from # # source). # # Use it as a guide for installing other ppm packages using PAR::Dist::InstallPPD. # # # # Note that the pre-requisites listed in the ppd files are ignored, and we have to # # explicitly par_install_ppd() those pre-requisites. (This script assumes that the # # pre-requisites are missing, and just goes ahead and installs all ppm packages # # anyway - which is not necessarily what you want.) # # # # If you want to get a list of the pre-requisites you need to install, just grab # # the ppm_req script from www.sisyphusion.tk/ppm/scripts/ppm_req and run: # # # # perl ppm_req PDL # # # # This program is free software; you may redistribute it and/or # # modify it under the same terms as Perl itself. # # Copyright 2012 Sisyphus # ##################################################################################### use warnings; use PAR::Dist::InstallPPD; # To par_install_ppd() the ppm packages use LWP::Simple; # To getstore() any post-install scripts print "\nNOTE: This script prompts the user in a couple of places.\n"; print " Don't assume it will run automatically to completion.\n"; sleep 3; ### PPM-Sisyphusion1 ### (pre-requisite) print "\nFetching 'InstallSisyphusion1 ... "; getstore('http://www.sisyphusion.tk/ppm/scripts/InstallSisyphusion1', 'InstallSisyphusion1'); print "\nInstalling PPM-Sisyphusion1 ...\n"; par_install_ppd(uri => 'http://www.sisyphusion.tk/ppm/PPM-Sisyphusion1.ppd'); do 'InstallSisyphusion1'; ############## ### Astro::FITS::Header ### (pre-requsite) print "\nInstalling Astro-FITS-Header ....\n"; par_install_ppd(uri => 'http://www.sisyphusion.tk/ppm/Astro-FITS-Header.ppd'); ########################### ### Convert::UU ### (pre-requsite) print "\nInstalling Convert-UU ...\n"; par_install_ppd(uri => 'http://www.sisyphusion.tk/ppm/Convert-UU.ppd'); ################### ### PGPLOT ### (optional) print "\nFetching 'install_pgplot' ... "; getstore('http://www.sisyphusion.tk/ppm/scripts/install_pgplot', 'install_pgplot'); print "\nInstalling PGPLOT ...\n"; par_install_ppd(uri => 'http://www.sisyphusion.tk/ppm/PGPLOT.ppd'); do 'install_pgplot'; ############## ### List-MoreUtils ### (File-Map pre-requisite chain) print "\nInstalling List-MoreUtils ...\n"; par_install_ppd(uri => 'http://www.sisyphusion.tk/ppm/List-MoreUtils.ppd'); ############## ### Params-Util ### (File-Map pre-requisite chain) print "\nInstalling Params-Util ...\n"; par_install_ppd(uri => 'http://www.sisyphusion.tk/ppm/Params-Util.ppd'); ############## ### Sub-Install ### (File-Map pre-requisite chain) print "\nInstalling Sub-Install ...\n"; par_install_ppd(uri => 'http://www.sisyphusion.tk/ppm/Sub-Install.ppd'); ############## ### Data-OptList ### (File-Map pre-requisite chain) print "\nInstalling Data-OptList ...\n"; par_install_ppd(uri => 'http://www.sisyphusion.tk/ppm/Data-OptList.ppd'); ############## ### Sub-Exporter ### (File-Map pre-requisite chain) print "\nInstalling Sub-Exporter ...\n"; par_install_ppd(uri => 'http://www.sisyphusion.tk/ppm/Sub-Exporter.ppd'); ############## ### Const-Fast ### (File-Map pre-requisite chain) print "\nInstalling Const-Fast ...\n"; par_install_ppd(uri => 'http://www.sisyphusion.tk/ppm/Const-Fast.ppd'); ############## ### PerlIO-Layers ### (File-Map pre-requisite chain) print "\nInstalling PerlIO-Layers ...\n"; par_install_ppd(uri => 'http://www.sisyphusion.tk/ppm/PerlIO-Layers.ppd'); ############## ### File-Map ### (pre-requisite) print "\nInstalling File-Map ...\n"; par_install_ppd(uri => 'http://www.sisyphusion.tk/ppm/File-Map.ppd'); ############## ### OpenGL ### (recommended) print "\nInstalling OpenGL ...\n"; par_install_ppd(uri => 'http://www.sisyphusion.tk/ppm/OpenGL.ppd'); ############## ### PDL ### print "\nFetching 'install_pdl' ... "; getstore('http://www.sisyphusion.tk/ppm/scripts/install_pdl', 'install_pdl'); print "\nInstalling PDL ...\n"; par_install_ppd(uri => 'http://www.sisyphusion.tk/ppm/PDL.ppd'); do 'install_pdl'; ########### print "ALL DONE\n"; END { unlink 'install_pdl'; unlink 'install_pgplot'; };