Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Windows installation woes

by chafelix (Novice)
on Nov 02, 2021 at 19:53 UTC ( [id://11138348]=perlquestion: print w/replies, xml ) Need Help??

chafelix has asked for the wisdom of the Perl Monks concerning the following question:

Hi, I need to install perl at work following a computer change ('upgrade'). I first tried Activestate, which used to have a 'standard' distribution, and ppm, but now has scrapped it and if I understand correctly one needs to make a build with all desired modules and install that. Well, installation did not work and Activestate support appears to be slow to nonexistent. So I went to Strawberry perl, which I was able to install. The good news is that Strawberry has by default some modules I needed, such as read and write to excel files. But I also want Tk and Devel::ptkdb, which are not included. One option is to download these modules and build them myself. The problem is gmake is disallowed by group object policy and there is no getting around that. Which leaves me CPAN , which also does not work, e.g.:

 install

Loading internal logger. Log::Log4perl recommended for better logging

CPAN: LWP::UserAgent loaded ok (v6.52)

Fetching with LWP:

http://www.cpan.org/authors/01mailrc.txt.gz

LWP failed with code407 messageProxy Authentication Required ( Forefront TMG requires authorization to fulfill the request. Access to the Web Proxy filter is denied. )

Proxy authentication needed!

(Note: to permanently configure username and password run

o conf proxy_user your_username

o conf proxy_pass your_password

)

Username:

CPAN: Term::ReadKey loaded ok (v2.38)

Password:

Not sure what to do next I read somewhere that one could use ppm with strawberry, but not sure how. Anyone have a suggestion?

Replies are listed 'Best First'.
Re: Windows installation woes
by syphilis (Archbishop) on Nov 02, 2021 at 23:39 UTC
    The problem is gmake is disallowed by group object policy and there is no getting around that.

    It's astounding that gmake is disallowed. Are you allowed to use any other flavour of 'make' - 'dmake' for example ? ... or a 'gmake.exe' that has been renamed to something else ?

    The first thing to note about ppm packages is that they're all built using some flavour of 'make', and I fear that they would therefore also be disallowed under this brilliantly innovative "group object policy".
    The second thing to note about ppm is that I think that all of the ppm repositories (which held the ppm packages that users could install) are no longer in existence,
    If you can locate a ppm repo that holds (or even might hold) a ppm package for Tk and/or Devel::ptkdb, then post its location and I'll tell you how to ppm install it.
    Essentially it's just (eg) ppm install full_URL_to_repo/Tk.ppd

    Which leaves me CPAN , which also does not work

    But CPAN utilizes a 'make' utility - which is 'gmake' by default on recent Strawberry Perls. Would your group object Police turn a blind eye to that ?
    Can you even download the Tk source ?

    Is it permissible for you to build Tk at home, and then copy the build to your work machine (say, from a USB stick) ?

    Cheers,
    Rob

      Thanks. I can download the tk source, no problem. I could even get momentarily the necessary admin rights to install strawberry-there is no objection to having perl running on my corporate machine. It's just overriding GPO that no one seems willing to do.

      Regarding renaming gmake , this is still blocked. The Cpan errors seem to imply some proxy issues, not gmake problems. And I am not sure what exactly is the problem.

      Regarding ppm, I'll try to find some old ppms. I will have them locally, so I hope ppm install will work

      I only run Linux at home, but suppose I could get a Windows machine and install Strawberry and the modules needed. What do I need to grab and copy?

        I could even get momentarily the necessary admin rights to install strawberry-there is no objection to having perl running on my corporate machine.

        If you grab a "portable" edition of Strawberry Perl, you can just install it into your user directory - no admin rights required. That would be my recommendation.
        Just download the perl-5.32.1 "Portable" edition (there's a choice of 32-bit or 64-bit, with most people opting for the latter) from https://strawberryperl.com/releases.html.
        Unpack the tarball into some directory (let's call it "Strawberry") in your user space.
        Then cd to that "Strawberry" folder and execute portableshell.bat. You're then set to go with strawberry perl.

        Strawberry provides you with its own gmake.exe and gcc toolchain - and portableshell.bat has already prepended the location of those needed tools to your PATH environment variable.

        You could then download the Tk source tarball to some location in your user directory, cd to that location and run 'cpan .' (without the quotes).
        This means that the cpan utility does not have to perform the download (which was problematic for you).

        If you're uncomfortable about using the gmake.exe provided by Strawberry (in c/bin) then let us know and we'll tell you how to get set up with dmake.exe (which is the make utlity that Strawberry used to use, and should still work fine.)
        It's best if you could use that gmake.exe that Strawberry provides - with dmake.exe there might be a couple of hoops to jump through, though it should still be readily do-able.

        Cheers,
        Rob
        suppose I could get a Windows machine and install Strawberry and the modules needed. What do I need to grab and copy?
        • You'd need a Windows machine with internet access, where you can execute gmake and whatever other programs are needed.
        • Grab the "portable" edition. Put it on that Windows machine
        • start the "portableshell.bat"
        • cpanm from the portable edition install new modules in that portable edition's tree, so install Tk and whichever modules you need.
        • After that is done, copy (or zip, or net use) the whole folder tree onto those restricted machine(s) (after due virus scans, etc., of course).
        • When started from that "portableshell.bat", the installed modules would work (at least, they do in my environment)
        Due to your restrictions, Inline and similiar tools probably won't work, but with Tk I have a working script which is deployed in this manner.

        Update: corrected portableperl.bat to portableshell.bat - thanks syphilis

Re: Windows installation woes
by Marshall (Canon) on Nov 06, 2021 at 22:41 UTC
    I am not sure exactly what the issue with make is. However, perhaps I can provide some AS (Active State) assistance. I commented on a similar issue at Re: Perl5.26 installing Tk module manually. The whole thread got pretty involved. But basically, I created my own AS account, made a build with Tk in it and posted a link to that installable build. The OP was able to install it as reported at id:11132370.

    Note that you can include cpanm in your AS build (if its not already there). That module will include the gcc compiler and dmake so that you can install modules yourself. However if you let AS do the complete build for you, you get a single "ready to go" MSI or EXE file. The AS installers didn't used to work when installing a new version on top of an old version (well I guess more accurate would be that the installer "worked" but your new installation wouldn't!). I don't remember the release when that changed. But the installer is "smarter" now. Of course the safest thing is uninstall any Perl version and then run the install.

    The new AS process has some pluses and minuses. One problem that this solves is "how do I clone my Perl installation and give it to you?". AS had some tools where I generated a file. You install the base version from the AS website and then you run a utility using my file. Then supposedly poof, you have all of my modules. There were issues with that. Now, I can give you an MSI file. I don't know how such a process works with Strawberry, if it even does?

    Anyway, the new AS process does work. It feels weird because it is new. Once you have an installation, you can still use cpanm to install modules (provided that cpanm was in your build). PPM is no longer available. It takes the AS servers about 35 minutes to make a complete build.

    Mileage varies. Hope that this helps you.

    Update: I see that my link to the Version 5.26 with Tk doesn't work anymore. Not surprising since we are at 5.32 now. Read through my description and have a go at it yourself. If you are having trouble, I could refresh my recollection and make a 5.32 version for you.

    Update: Wow. As has been doing a lot of changes since I last looked at this stuff! How to correct a failed build is not obvious at all. I did make a simple version 5.34 with basic Tk. My attempts to add some extra Tk zoom into the build failed. This is a public project and this Win 10 command line will install it if you want to try:

    powershell -Command "& $([scriptblock]::Create((New-Object Net.WebClie +nt).DownloadString('https://platform.activestate.com/dl/cli/pdli01/in +stall.ps1'))) -activate-default marshall2/Perl-5.34.0-Windows0with-Tk +"
    I see why anybody would have trouble with the procedure as it currently exists. the links to download just an MSI file or an EXE file don't exist anymore. I know nothing about powershell.

    Another Update: First the build process is now seconds instead of minutes - that's good. I got this emailed message: "Good news! The Windows 10 x86 64-bit build for your Perl-5.34.0-Windows0with-Tk project has succeeded. Download the installer or use the State Tool on your command line to set up your runtime environment...http://platform.activestate.com/marshall2/Perl-5.34.0-Windows0with-Tk/distributions?platformID=78977bc8-0f32-519d-80f3-9043f059398c"

    I don't see any obvious way to download an MSI file from this.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://11138348]
Approved by Corion
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others studying the Monastery: (6)
As of 2024-03-28 14:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found