System requirements¶
System requirements for running the latest version of CodeQL.
Supported platforms¶
Operating system |
Supported versions |
Supported CPU architectures |
|---|---|---|
linux |
Ubuntu 22.04 Ubuntu 24.04 |
x86-64 |
Windows |
Windows 10 / Windows Server 2019 Windows 11 / Windows Server 2022 |
x86-64 |
macOS |
macOS 13 Ventura macOS 14 Sonoma macOS 15 Sequoia |
x86-64, arm64 (Apple Silicon) [1] |
Additional software requirements¶
To generate a CodeQL database for a compiled language, you must ensure that the system can successfully build and compile your code, independently of CodeQL.
In addition, CodeQL extraction has the following requirements.
For extraction of compiled languages (C/C++, C#, Go, Java) and Ruby on linux:
glibcversion 2.17 or greater must be installed.musl-c-based linux distributions, such as Alpine linux, are not supported.
For extraction of compiled languages on Windows:
The
PowerShell.exeexecutable must be available on thePATH.
For TypeScript extraction on all platforms:
Node.js 14 or higher must be installed and available on the
PATHasnode.
For Python extraction:
On linux and macOS, Python 3 must be installed and available on the
PATHaspython3orpython.For Python 2 extraction on linux and macOS, we also recommend having Python 2 installed and available on the
PATHaspython2.On Windows, the Python launcher must be installed and available on the
PATHaspy.exe.
For Ruby extraction:
On Windows, the
msvcp140.dllmust be installed and available on the system. This can be installed by downloading the appropriate Microsoft Visual C++ Redistributable for Visual Studio.
For Java extraction:
There must be a
javaorjava.exeexecutable available on thePATH, and theJAVA_HOMEenvironment variable must point to the corresponding JDK’s home directory.If you need to analyse projects using varying JDK versions, it may be useful to supply alternate JDK versions using environment variables of the form
JAVA_HOME_$VERSION_$PLATFORM, following the example of the GitHub Actions runner images. An Apache Maven toolchains.xml file can also be used for the same purpose.Having a
mvnormvn.exeexecutable available on thePATHis recommended if your project uses Apache Maven and does not use themvnwwrapper script.Having a
gradleorgradle.exeexecutable available on thePATHis recommended if your project uses Gradle and does not use thegradlewwrapper script.