System requirements¶
System requirements for running the latest version of CodeQL.
Supported platforms¶
Operating system | Supported versions | Supported CPU architectures |
---|---|---|
Linux | Ubuntu 20.04 Ubuntu 21.04 Ubuntu 22.04 |
x86-64 |
Windows | Windows 10 / Windows Server 2019 Windows 11 / Windows Server 2022 |
x86-64 |
macOS | macOS 12 Monterey macOS 13 Ventura macOS 14 Sonoma |
x86-64, arm64 (Apple Silicon) x86-64, arm64 (Apple Silicon) x86-64, arm64 (Apple Silicon) [1] |
[1] | Support for Apple Silicon is currently in beta. |
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:
glibc
version 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.exe
executable must be available on thePATH
.
For TypeScript extraction on all platforms:
- Node.js 14 or higher must be installed and available on the
PATH
asnode
.
For Python extraction:
- On Linux and macOS, Python 3 must be installed and available on the
PATH
aspython3
orpython
. - For Python 2 extraction on Linux and macOS, we also recommend having Python 2 installed and available on the
PATH
aspython2
. - On Windows, the Python launcher must be installed and available on the
PATH
aspy.exe
.
For Ruby extraction:
- On Windows, the
msvcp140.dll
must 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
java
orjava.exe
executable available on thePATH
, and theJAVA_HOME
environment 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
mvn
ormvn.exe
executable available on thePATH
is recommended if your project uses Apache Maven and does not use themvnw
wrapper script. - Having a
gradle
orgradle.exe
executable available on thePATH
is recommended if your project uses Gradle and does not use thegradlew
wrapper script.