Perl Dev Kit

Final Version pairings for ActivePerl with Perl Dev Kit


I want to upgrade ActivePerl and my Perl Dev Kit. What's available?


You may have already seen the announcement... Last year, ActiveState announced that the direction for the company's future will be OpenSource Languages.

Proprietary tooling for certain languages is not part of the OpenSource Languages Company future. Sales of both of the Dev Kit tools sets were discontinued at the time of those announcements. New licenses for PDK and TDK will not be available as separate products.

Engineering and Development time and resources were immediately priorized for updating the existing language distributions. In 2017, work is starting on the new languages. Work was stopped on PDK, and that means that there will not be a PDK 9.6.

Existing copies of PDK 9.5.1 cannot use the latest releases of ActivePerl. The 2203 and 2204 builds are not compatible, and all 5.24 versions remain incompatible with the final release of PDK 9.5.1.

----Update September 2017------

Since the End of Sales for PDK, there have been enough newer versions of Perl released by the Perl Community that none of ActivePerl versions compatible with the Perl Dev Kit are still Supported by the Community. With no supported, free, versions of Community Edition ActivePerl available, Users of the Perl Dev Kit will need at least a Business Edition license to access a compatible version of ActivePerl.

-------End of Update----------

2202 is the last compatible ActivePerl, except on OS X.

For OS X, the 9.5.1 release of PDK was created on OS X 10.5. Every PDK must have a 100% binary compatible ActivePerl. ActivePerls switched from building on OS X 10.5 to building on OS X 10.9 at and are now 64-bit only. These two factors are responsible for the unresolvable symbols error message. Since there will not be a 9.6 that is also built on OS X 10.9, the 2201 release is the last ActivePerl that is compatible.

Recovering Sourcecode from wrapped files


Can you help me recover the original source code from my executable file?


The Support and Maintenance package for Perl Dev Kit does not include recovery of lost source code, and we do not have any special internal tools for reverse engineering wrapped code.

We recommend the use of distributed version control systems during development. Free services are available, and they provide many useful features in addition to ensuring that source code is not lost. Regular backups are still an alternative if you don't want to use version control.

Cross-wrapping for 32-bit Linux


I upgraded. Why is 32-bit Linux no longer listed as a target for cross-wrapping?


In order to build a wrapped file for 32-bit Linux, there must be an available 32-bit Linux version of the Perl you have installed on your build system.

Community Edition/Business Edition ActivePerls 5.20 and higher do not provide versions for 32-bit Linux.

As of 2016, all of the ActivePerls which support cross-wrapping for 32-bit Linux require a Business Edition license.

Compatibility when wrapping or cross-wrapping for Linux


When I test my wrapped or cross-wrapped application on Linux, it crashes and reports "version `GLIBC_2.14' not found..."


This is an expected error message if you are wrapping for 64-bit Linux with 5.20 and 5.22 Perls, and run the resulting file on a Linux kernel that is too old (RHEL 5 and 6 are most frequent).

Wrapped files have the same system requirements as the native ActivePerl version. ActivePerl 5.20 and 5.22 require glibc 2.15 or higher.

To built a wrapped file that will run on an older version of Linux, you must wrap with an ActivePerl where the requirements for 64-bit Linux are only glibc 2.5 or higher. As of 2016, all of these Perls require Business Edition licenses.

Installing licenses under OS X Mountain Lion


My license installer will not run on OS X 10.8


Gatekeeper is blocking the installer.

Right-clicking the license installer and selecting "Open" should
prevent Gatekeeper from getting in the way for now.

Advanced workaround for PDK 8.2.1 on Windows 7


My PDK Start menu items and file associations don't work on Windows 7. The Release Notes just say to use the command line. Isn't there a better alternative to get these working?


Let's start with PerlApp, since that's the most widely used application.

To fix your Start menu icon, go to Start|All Programs|ActiveState Perl Dev Kit 8.2.1 Build 292072. Right click on PerlApp and select Properties. Go to the Target box and change the text from "...\bin\perlapp-gui.exe" to "...\bin\perlapp.exe" (in other words, just delete -gui from the entry). Select OK. The PerlApp Start menu icon will now work.

To fix your .perlapp file association you will need a command line with Administrator priviledge. This can be done by navigating to Start|All Programs|Accessories and right clicking Command Prompt. Select Run as Administrator. If your PDK is installed on the default path, enter the following command:
C:\> ftype perlappfile="C:\Program Files\ActiveState Perl Dev Kit 8.2.1\bin\perlapp.exe" --interactive "%1"
If you installed PDK on a different path, adjust the command above to match your installation. Your perlapp associations are now corrected.

If they are present in your version of PDK, the Start Menu icons for PerlCtrl, PerlNET, PerlSvc, and PerlTray can all be corrected as you have just done for PerlApp by deleting "-gui" from the Target box. (64-bit PDK versions will not have a Start Menu icon for PerlNET.)

Again, your version of PDK may not have all of the following tools. Repair the ones you have and use. If you installed on a different path, modify the command to match your installation.
Fix the association for .perlctrl by:
C:\> ftype perlctrlfile="C:\Program Files\ActiveState Perl Dev Kit 8.2.1\bin\perlctrl.exe" --interactive "%1"

Fix the association for .perlnet by:
C:\> ftype perlnetfile="C:\Program Files\ActiveState Perl Dev Kit 8.2.1\bin\plc.exe" --interactive "%1"
(PerlNet is only available in 32-bit versions of the PDK)

Fix the association for .perlsvc by:
C:\> ftype perlsvcfile="C:\Program Files\ActiveState Perl Dev Kit 8.2.1\bin\perlsvc.exe" --interactive "%1"

Fix the association for .perltray by:
C:\> ftype perltrayfile="C:\Program Files\ActiveState Perl Dev Kit 8.2.1\bin\perltray.exe" --interactive "%1"

I can't install PerlDevKit 7 or 8.


Case #1 - The PerlNET component is disabled in the installer. PDK installs but I don't get PerlNET.

Case #2 - The PerlDevKit gets past creating shortcuts, but not much further, then it fails silently and starts rolling back.

Case #3 - I keep receiving an error message that says "Error writing to file: Perl510RT.dll. Verify that you have access to that directory." (The exact filename can be one of several Perl5*.dll files)


PerlNET in PerlDevKit 7.2+ requires .NET 1.1 and .NET 2.0, with SP1 for both being strongly recommended.

In Case #1 there is no .NET installed. PDK detects this and automatically disables PerlNET.
In Case #2 only .NET 1.0 is installed.
In Case #3 only .NET 1.1 is installed.

You have two options. You can either install .NET 1.1 and .NET 2.0, then proceed with a full installation of PerlDevKit, or you can disable the PerlNET component of PerlDevKit during the PDK installation process (as is done automatically in Case #1). Either should allow you to complete the install.

PDK 7.0 error - plc.exe not recognized


For some reason, plc.exe has stopped working on my system. When I try to run it, I get a pop-up with the title ".NET Framework Initialization Error" and the text "Unable to find a version of the runtime to run this application."

I have tried re-installing both the PDK and the .NET framework, but nothing has helped. I'm patched to date. Other .NET applications are still working fine.

Any suggestions?


This message results from changes to .NET security behavior that Microsoft introduced with Security Fix KB928365. The previous work-around was to remove KB928365.

As of July 2007, Microsoft has added the Security fixes found in KB928365 into KB928366, which is the .NET 1.1 Hotfix, and KB928367, which is the .NET 1.0 Hotfix. As a result, ALL .NET installations will exhibit this problem if patched to date.

As of November 30 2007, Microsoft has released .NET 2.0 SP1 which rolls up all previous security fixes, and makes changes to .NET 2.0 in preparation for .NET 3.0 SP1 and .NET 3.5. PDK 7.0.0 will NOT be compatible with .NET 2.0 SP1, .NET 3.0 SP1, or .NET 3.5.

It is possible to work around this problem using the following steps:

Exclusion- Does not apply to Vista. Vista incorporates .NET differently from other versions of Windows.
Warning- Any versions of Visual Studio in use must be installed before starting this workaround. It has not been verified, but it is quite possible that some features of recent Visual Studio versions may be broken by this workaround. Because of the changes to .NET, it may not be possible to have certain versions of Visual Studio on the same system as PDK 7.0.0.

1. Check Microsoft Update. Install any critical updates that are NOT labeled as being part of .NET (This is not compulsory, but may save you some annoyance as you otherwise need to be careful about your default selections as you work through the process).
2. Turn off automatic update, use add/remove programs to uninstall ALL versions of .NET, and restart.
3. Deselect any critical updates available at this point. Go to the optional software section. Select the following:
.NET 1.1
.NET 2.0 KB829019
.NET 3.0 KB928416 (if desired)
(.NET 1.0 Compact Framework SP3 and .NET 2.0 Compact Framework may also be added if desired)
Install all the selections you make in this section simultaneously to save time.
4. Install:
.NET 1.1 SP1 (11/30/2007 last update)
Allow the reboot.
5. Install:
.NET 1.1 Hotfix KB928366
Allow the reboot.
6. KB928365 is no longer available from the Microsoft Update agent. You can still download and install it from here:
The open browser will cause the installation to stall, but you can simply close the browser and tell the installer to re-try. Allow the reboot.
7. Open add/remove programs tool. Ensure show updates option is selected. Uninstall KB928365. Ensure Auto-update remains off.
8. PDK applications should now work.
- You may now install .NET 3.0 Update KB932471 if you are using .NET 3.0.

- DO NOT install .NET 2.0 SP1 (or .NET 3.0 SP1 or .NET 3.5 when they become available). If you install .NET 2.0 SP1 you must start over at step #2.

Why the order is important-
.NET 2.0 must be loaded in order to load KB928365. KB928366 will allow KB928365 to be installed after it, even though 366 contains files from 365. When KB928365 is loaded over KB928366, the uninstaller gets the references which allow it to remove only the offending portions of 366 when it removes 365. However, .NET 2.0 SP1 will block KB928365, and the changes made to .NET 2.0 in SP1 cannot be backed out, so if SP1 has been installed you have to start over.

If you need to work with .NET 2.0 SP1, .NET 3.0 SP1, .NET 3.5, or Vista; your current option is to wait for the next release of PDK 7.0, which should address the root cause of this problem.

PDK 7.0 - Error 2908/problems installing PerlRT.dll during Perl Dev Kit installation


I get an "Internal error 2908" and then "An error occurred during the installation of assembly 'PerlRT69.dll'..." (or 'PerlRT70.dll,... depending on the version of PDK) during the installation of the Perl Dev Kit. What causes this? How can I proceed with the installation?


The errors above are caused by the machine in question not having a Microsoft .NET runtime installed. There are two ways to handle the situation:

  • install a .NET runtime from Microsoft (.NET 3.0 is not yet supported)
  • restart the PDK installation and deselect the PerlNET component -- it isn't useful without an installed .NET runtime

Either case will allow the installation to proceed.

"No perl found at C:\perl\bin\perl.exe" when using PerlApp


When I try to use PerlApp I get the following error: "No perl found at C:\perl\bin\perl.exe" -- but that file is really there. What's going on, and how can I fix it?


This message is usually caused by the directory containing cmd.exe not being found in your PATH environment variable. The usual directory to ensure is there is C:\Windows\System32. If it's missing, simply add it and PerlApp will work as expected.