FAQ

Below are some commonly asked questions by ActiveState users. If you have questions please check the online community forums. They are regularly maintained by ActiveState staff and are contributed to by other members of the ActiveState community. For questions related to your account, reach out to contact us.

Working with ActiveState

Working with runtimes

Working with The State Tool

Working with Perl


Working with ActiveState

Will my project use my proprietary code?

Your ActiveState project will not use any first-party or proprietary code produced by you or anyone else with whom you have shared the project. All user-generated code does not become part of the shared properties of your project, nor does it belong to ActiveState.

How do I share my project?

Details on how to share your project can be found here.

Why would I share my project?

The benefits of sharing your ActiveState project include

  • Saving fellow developers time and effort setting up a stable development environment.
  • Accelerate employee onboarding by immediately making the correct, specific dependencies needed for the project available.
  • Educators can standardize student environments and restrict unneeded artifacts to simplify the learning experience.
  • Organizations can better control which tools developers are using and account for what is being used in the event of patches, updates, or security risks.

Can I pass my invitation to collaborate on a project to someone else in my organization?

No, the invite email is specific to your email address and your organization. If you would like to provide access to other people in your organization you can either sign up for the Platform yourself and invite them, or contact us with the email addresses of the users to invite, and we will send them individual invites (this is only available for paid tiers).

How long should it take for my project to build?

The time needed to build your project can vary depending on

  • Package size- certain packages are larger than others and will require more time to build.
  • Package build complexity- some packages just need their code wrapped up in a compressed file. While others need to pull in and compile numerous C libraries, and other potential build steps. An example of a complex package would be Tensorflow in the Python ecosystem.
  • The number of packages included- fewer packages can result in a shortened build time.
  • The number of dependencies needed for each package.

A small build with fewer packages and dependencies may only take seconds or minutes to build successfully. Larger, more complex projects can take several minutes or even hours to build successfully.

What should I do if my build is taking longer than expected?

In cases where a build process appears stuck, try resetting the build by making a minor change to your configuration. For example, changing the version of an existing package, adding a new package, changing the version of the language, etc.

What is a CVE?

A Common Vulnerability and Exposures (CVE) identification is the unique identifier that is given to a specific vulnerability by the National Institute of Standards and Technology (NIST) National Vulnerability Database (NVD). Each CVE has been reviewed by a governing body (the CVE Numbering Authority) and found to present a credible threat to the security of a system. Check here to find out more about CVEs and how the ActiveState Platform and the State Tool deal with them.

What is an organization?

Organizations are the way you group ActiveState Platform projects for a company, department, or team. Members of the organization will have access to each project in the organization, with the ability to invite others to join, remove users, and create or modify runtimes (depending on the role of the user).

You can create paid organizations that support both private and public projects, or free organizations that only support public projects.

What happened to Komodo IDE and Komodo Edit?

Komodo IDE and Komodo Edit have been opensourced. Check out our blog article to find out more.

Where can I find a copy of the end-user license agreement?

All current license agreements can be found here, and agreements for older versions or legacy products can be found here.

Where can I find documentation for deprecated products and legacy language versions?

Information on deprecated products and languages can be found on the ActiveState documentation homepage. These docs are for archival use only and are not updated.

How can I delete my ActiveState Account?

Details on how to delete your account can be found here. Note that deleting your account will not automatically uninstall the State Tool from your machine.

How do I download the files or source code from my project?

Instructions on how to download the files from your project can be found here.

What are the minimum operating system (OS) requirements I need to run my project?

The minimum OS requirements to run your project are

  • Windows 10 or later
  • macOS 13 (Ventura) or later
  • Minimum standards for Linux will depend on the details of your project. Distros and versions can be selected when creating your project and changed from the Configuration tab on the project page.

The ActiveState runtime

What are the benefits of installing a runtime? Why should I do it?

Each runtime is created and executed in a virtual environment that will avoid conflicts between other projects, production environments, and the developer environments of other developers (if the runtime has been shared). Using the ActiveState Platform, each runtime can be easily updated to include the most current and secure versions of all dependencies/packages/binaries/etc.

Why don’t I get a download? What do I get instead?

Instead of offering a pre-packaged downloadable installer, the State Tool creates a virtual environment on your system allowing you to run concurrent and disparate development environments that contain all (and only) the packages you need for your projects, without conflicts or interfering with the preexisting language versions on your system.

Installers are available for Enterprise tier users. Click here to find out more

Where does my runtime go when I activate my project?

Each ActiveState project (and the associated runtime) is installed in its own virtual directory to prevent dependency conflicts. When you activate a runtime you’re setting up a virtual environment to work from. This keeps your dependencies separate from those outside of the virtual environment’s parameters. This is important because

  • It’s good for developers because their work won’t conflict with production.
  • It won’t conflict with work done by other developers.
  • it won’t conflict with your other work, as each runtime is contained in its own virtual environment.

After exiting your runtime, files are cached on your local system until deletion. This helps keep reloading time fast. Regularly using the state pull command will keep your project, and its virtual environment, up to date on your local installation.

How do I end my runtime session? How do I stop my runtime?

You can end your activated state by typing exit into the command prompt or terminal window. Closing the command prompt or terminal window will also deactivate your project.

How do I install a project to a specific location on my system?

You can find instructions for location-specific installations in the checkout documentation here.

Can I use my runtime in my IDE?

ActiveState currently has integrations with several popular IDEs including Visual Studio Code, Pycharm, and Eclipse. More information about integrations can be found here.

Can I request a package (or package version) I need for my project?

For organizations with Service Level Agreements (SLA), use the contact information included in your SLA to request specific packages. When requesting a new package, include the name of your organization and project, as well as the package and, when possible, the package version.

Users without an SLA can post a request on the community forums. Feel free to include as much information as you feel comfortable disclosing, including your organization or project name, and package version. These requests will be processed according to their availability and user demand.

What do I do if my project has a build error?

Organizations with SLAs are encouraged to use the contact information provided in their agreement to receive assistance from ActiveState. Users without an active SLA can try to review and edit any CVEs that may be causing the build to fail, or ask for help on the community forums.

I made changes to my project on the Platform, but the changes do not show up in the State Tool?

After making changes to your project using the Platform, open the project using the State Tool by starting a shell or activating the project. Then run state pull. This will update your project with the changes made on the Platform.

Why can’t I install my runtime?

If you experience trouble installing your runtime, make sure that the OS version on your local machine meets the minimum standards.

  • Windows 10 or later
  • macOS 10.10 or later
  • Minimum standards for Linux will depend on the details of your project. Distros and versions can be selected when creating your project and changed from the Configuration tab on the project page.

The recommended version of each language is based on Platform build success rates and the availability of new open source package versions. ActiveState continuously updates these recommended versions as more recent versions of the language ecosystem become stable and vetted by the open source community.

How can I have multiple Perl builds on my system?

To work with more than one project on your system, check out each project to different directories and then deploy them separately from each directory by running state shell <orgname>/<projectname>. Each shell environment is temporary, and once the working session has ended (either by typing exit into the terminal or closing the application) it will need to be re-deployed each time you work on your project.

Where do I add my Perl project in my PATH variable? (Windows only)

We recommend not editing your PATH variable and instead, using the state checkout <orgname/projectname> and state use <orgname/projectname> (to set your runtime as your default installation) or state shell <orgname/projectname> (to open a secure shell in which to use your runtime) commands to interact with your Perl installation.

If you still choose to edit your PATH variable, adding your project at the \exec folder (not the \site or \bin folder) will direct your machine to the correct directory needed for your project. This will only let you add a single Perl project as your system default, as your machine will always select the first Perl addition from the top of the list and continue using that version for all projects.

Note that for Perl 5.28 and earlier, you will need to add your project at the \bin folder.

What does the perl.exe file in my project do?

While traditionally .exe files are executables responsible for installing and running applications on your machine, the perl.exe file located in your project control folder may be different.

Some of the perl.exe files in your projects act as wrappers set up around the original perl.exe file that set up PATH and search variables to point to the correct version of the executable file that matches what is needed for your project. This is why pointing the PATH variable to the /exec folder of your project is important to ensure your projects work as intended.

I received a “Validation error” trying to produce an installer or Docker image, what do I do?

A validation error with the following text may be shown when attempting to produce an installer or Docker image for your project.

" Validation error: Selected language uses an old build system that cannot produce an installer or Docker image. Please select a newer language version or remove the selected platform deployment option.”

A validation error occurs between the build request from the user and the current build architecture of the Platform. To increase the likelihood of a successful build, select a more recent language version for your project or change the OS settings of the project (i.e. only selecting “Linux” for a Docker image). Attempt the build again with these changes in effect. If the problem persists, please contact us.


The State Tool

How to install the latest version of the State Tool?

Open your command prompt or terminal and type state update

How do I download a project to my machine?

To check out a project on your local machine enter state checkout <orgname>/<projectname> <path to folder> For example state checkout JohnSmith/Project1 C:\project

How do I download the bits from a project to a specific location on my machine?

To check out a project’s bits to your local machine enter state checkout <orgname>/<projectname> --runtime-path <path to folder> For example state checkout JohnSmith/Project1 --runtime-path C:\project

How do I show which projects are on my local machine?

To display all existing projects, their location on your system, and the location of their executable files enter state projects.

How do I update my project on my local machine?

Working from your project directory (the folder containing your activestate.yaml file) enter the command state pull.

How do I use the State Tool to check my project for vulnerabilities?

You can use the State Tool to check your current project for any potential vulnerabilities by activating the project and running state cve to view the vulnerabilities associated with that project.

For a more detailed explanation of the vulnerabilities associated with your project, enter state cve report. This will include an ID for each listed vulnerability so you can look them up to see how they may impact the security or performance of your project. To address the vulnerabilities found in your project see here.

How do I switch from one project to another?

  • While working from a project, enter state projects in your terminal to view a list of the projects that are installed locally on your machine.
  • After finding the project you want from the list, exit your currently activated project by typing exit into the command line. This will deactivate your project.
  • Enter state shell <orgname/projectname> to activate the project you want to switch to. If you want to set a new default project for your system enter state use <projectname>. This will be the default project until you set a new default using state use or unset a default by entering state use reset.

How do I end my State Tool session?

You can end your working session by typing exit into the command prompt or terminal window. Closing the command prompt or terminal window will also deactivate your project.

How do I compare projects using the State Tool?

Comparing different versions of the same project is a great way to make sure changes have been logged and to track the progress of your projects. To compare two separate projects (“project1” and “project2” in “organization1”)

  • Begin by activating your first project by typing state shell <organization1/project1> into your command prompt.
  • Run the script by entering state run <script1>.
  • Open a second terminal window and enter state shell <organization1/project2> into your command prompt.
  • Run the project2 script by entering state run <script2> in the newly created windows and wait for the script to stop.
  • Now you can view a side-by-side comparison of the projects.
  • Type exit into either or both terminal windows to end your working session(s).

How do I uninstall the State Tool and all cached data?

There are two separate commands to uninstall your activated project, each with unique characteristics.

  • state clean cache will remove all copies of cached versions of everything and reset the State Tool cache. This command will not uninstall the State Tool. This needs to be done from the main project directory, although it may work from other directories with newer language versions.
  • state clean uninstall gets rid of cached files, uninstalls the State Tool, installed language runtimes, and all configured information. It’s important to note that after confirming your choice to run this command, you will need to restore everything from the Platform. To find out more see here.

What can I do if my State tool update is taking longer than usual (more than a few minutes)?

If you are updating from a much older version it may have problems with runaway services that may be preventing the update. The State Tool Troubleshooting section has instructions on identifying and shutting down runaway services for Windows, macOS, and Linux. After running the script to stop ongoing processes, enter state update to resume your update.

What does “The State Tool could not figure out what path to use” mean?

Generally, the “could not figure out what path to use” means that the State Tool can’t find a suitable folder for your runtime. Unsuitable folders include program folders, system folders, or folders where restrictive permissions have been set. Your personal folders are more likely to be writable and are a better choice for your project. Follow the steps here to check out a project to a specific location on your system.

What does “State Tool could not install dependencies and/or the build failed” mean?

If you receive this error, you can try resolving the error in the Platform. The Platform provides more feedback and can see if (and when) the rebuild succeeds. That will show when the State Tool can find a working build of the module to download from your project.

The Platform will also allow you to specify the package version and see immediately if there are any vulnerabilities associated with it. Check here for more information about adding packages using the Platform and here for information about vulnerabilities.

Why does The State Tool show an error when trying to download my Tcl project?

The State Tool cannot download Tcl projects, you must go to the Platform and download the .msi or .tar file directly from the project page to install your Tcl project on your local machine.

How can I install the State Tool on a server?

To install the State Tool on a server you will need to checkout the project to a specific location on the server. To do so enter state checkout <orgname>/<projectname> <location>. This will place a project folder containing your project’s activestate.yaml file into the specific location. To checkout all of the bits associated with your project enter state check out <orgname>/<projectname> --runtime-path <location>. More information on state checkout can be found here.

What does “could not activate runtime environment” or “failure encountered in active subshell” mean?

This error may indicate that your current working directory is incompatible with the State Tool (for example a System32 or similar directory), or you are trying to deploy your project as an Admin on your local system. After checking out a project your runtime will be installed into a personal (or user) AppData folder. Only users can access the runtime. Try exiting as an Admin, logging in as a user, and re-deploying the runtime.

Why did I receive a “could not retrieve install package information” error?

This error may result from trying to install a package while being behind a proxy server. Click here for more details and potential solutions


Working with Perl

Can I test a Perl installation for free?

What happens if I have to run tests on a system which is very secure?

Can I test with a runtime of an older language version?

What does a subscription provide?

What is the difference between Perl 5.32 and 5.36?

Does Perl use OpenSSL?

What do I do if my PERL5LIB variable is not set up right?

How can I have multiple Perl builds on my system?

Where do I add my Perl project in my PATH variable? (Windows only)

What does the perl.exe file in my project do?

How do I get rid of a “can’t load” error on my Perl project?

Why is there no compiler included in my project?

How do I compile code for my project?

What do the Perl CVEs discovered in November 2023 (CVE-2023-47038 and CVE-2023-47039) mean and how do they affect my project?

Can I test a Perl installation for free?

You can do testing with a Free tier account, but the free accounts may not include some features that might be needed to test in your environment. Free accounts only have access to the most recent products, and must have unrestricted internet access. If your workplace is very secure, you may have to learn the process from a PC with unfettered access to an internet connection.

For basic testing, and for learning how to use The Platform, start with a desktop PC running Windows 11, a recent feature pack of Windows 10, or a current desktop Linux. Use a PC that has direct access to the internet, or at most is only behind a single proxy server with known credentials.

What happens if I have to run tests on a system which is very secure?

There are optional offline installers available to Enterprise Tier organizations, and to Team Tier organizations with an add-on in the contract. These must be paid for upfront, whether the runtime will work for you or not. This requirement also multiplies the impact of not knowing exactly what you need in your project, and will generally result in an update that requires months of refinements to complete, rather than weeks or days. If you can possibly test in a less restricted system, it’s highly advisable.

Can I test with a runtime of an older language version?

The long upgrade process to move a potentially insecure installation may not be the best use of resources, as it will only offer you a few months of service life (or none at all). If you are constrained by the operating systems you have in service, it is preferable if you upgrade to newer systems and then use newer software (including a newer version of Perl).

Free tier users do not have access to older versions. You might be required to start with Team, or even Enterprise Tier, to get the older version you want. Currently, no tier has access to every version of Perl shipped since the 1990s. Unfortunately, releases do eventually get old enough that they are incompatible with all currently supported versions of an operating system, or are far enough into end-of-life that we can no longer responsibly distribute them. When possible, older versions will be available at the final rollup release. If what you are looking for is not available, you may need to adjust your expectations so they are in line with what is safe, reasonable, available, and affordable.

What does a subscription to the ActiveState Platform provide?

The Platform is an online build and testing (CI) service. We no longer have a business model where the product is free/gated access to a library of never-changing downloads. Instead the Platform offers a constantly updates package library where you can choose all andonly the Perl modules you need for your project.

There isn’t a “standard” set of content (ActiveState dropped the concept of the Community Editions in 2021). Now all content is managed by the users. You can tailor your runtime to exactly what you need; no more and no less. What is available for the new releases are templates, but you will need to have a solid idea of the content that will need to be added or removed from the template to make up the project you will need.

Does Perl use OpenSSL?

Perl will always use OpenSSL. The core pulls it in so that it can support secure socket connections for networking. Perl never uses a third-party OpenSSL library. If you have a setup that allows Perl to find and load an incompatible third-party version, it will crash. Usually, the culprit is the order of the PATH variable

So the default behavior is for Perl to use its own OpenSSL install, but if there is an odd ordering for PATH that puts some other application (that happens to have OpenSSL) first, then that could result in an incompatible version being pulled. If you have a copy of the Microsoft Dependency Walker tool, you can usually see where a bad library is located.

What is the difference between Perl 5.26, 5.32, and 5.36? How does it affect OpenSSL?

5.32 and 5.36 are very similar. There’s a big discontinuity at 5.26 (the change to @INC to remove loading from the current working directory). Then at 5.32 there’s a builder change that generates all Perls as single-threaded by default. Those changes both happen between where you are now, and 5.32. OpenSSL 3 is working with the 5.34 and 5.36 on a more limited set of modules. These Crypt-OpenSSL modules are probably going to tie you to OpenSSL 1.1.1 for a while.

What do I do if my PERL5LIB variable is not set up correctly?

The Perl variables should be at, or near, the top of the variable listing, including the PERL5LIB variable. If the variable exists, look at where it’s pointed, this could impact your system setup.

Oracle Servers still set PERL5LIB, and they have their own version of Perl. One way to determine if the variable is set correctly is to see if your PERL5LIB folder has binaries in it. They may be missing or pointed to the wrong folder. And if the binaries were compiled for 5.24, they would need to be used with a 5.24.

How can I have multiple Perl builds on my system?

To work with more than one project on your system, check out each project to different directories and then deploy them separately from each directory by running state shell &lt;orgname>/&lt;projectname>. Each shell environment is temporary, and once the working session has ended (either by typing exit into the terminal or closing the application) it will need to be re-deployed each time you work on your project.

Where do I add my Perl project in my PATH variable? (Windows only)

We recommend not editing your PATH variable and instead, using the state checkout &lt;orgname/projectname> and state use &lt;orgname/projectname> (to set your runtime as your default installation) or state shell &lt;orgname/projectname> (to open a secure shell in which to use your runtime) commands to interact with your Perl installation.

If you still choose to edit your PATH variable, adding your project at the \exec folder (not the \site or \bin folder) will direct your machine to the correct directory needed for your project. This will only let you add a single Perl project as your system default, as your machine will always select the first Perl addition from the top of the list and continue using that version for all projects.

Note that for Perl 5.28 and earlier, you will need to add your project at the \bin folder.

What does the perl.exe file in my project do?

While traditionally .exe files are executables responsible for installing and running applications on your machine, the perl.exe file located in your project control folder may be different.

Some of the perl.exe files in your projects act as wrappers set up around the original perl.exe file that set up PATH and search variables to point to the correct version of the executable file that matches what is needed for your project. This is why pointing the PATH variable to the /exec folder of your project is important to ensure your projects work as intended.

How do I get rid of a “can’t load” error on my Perl project?

If your project is unable to load, or certain .dll files fail to load, you can try adding it directly to your PATH variable. For Perl 5.28 add the (Perl)\bin folder to PATH, and for Perl 5.32 and higher, you need to also add (Perl)\exec. If that does not solve the issue try adding the folder in front of the \bin and site\bin folders.

Why is there no compiler included in my project?

Including a compiler would be redundant and unnecessary, as your ActiveState project has already been “compiled” by the Platform during the build process prior to you checking it out on your local system. The source code needed for your project has already been translated into machine code (or an appropriate intermediate code) by the Platform before it arrives on your local system. The interpreter in your project arrives compiled.

How do I compile code for my project?

After your project has been built compiling your project is not necessary. Your ActiveState project has already been “compiled” by the Platform during the build process, prior to you checking it out on your local system. The interpreters in your project are already compiled.

If you need to compile your project after you have added custom content, for example, building modules from the source code on CPAN on local systems, you can use existing pre-packaged compilers (GCC, MinGW, etc.) to re-compile the project. ActiveState support for specific compilers is on a best-effort basis and, as a result, your project is not guaranteed to work with all existing compilers. If the compilers are not working within your project, you can use them in parallel to our tool, or use Strawberry Perl, Cygwin, Windows Subsystem for Linux (WSL), or Chocolatey to compile.

What do the Perl CVEs discovered in November 2023 (CVE-2023-47038 and CVE-2023-47039) mean and how do they affect my project?

Details on these CVEs can be found in our documentation.