This guide will walk you through building PowerShell on Linux. We'll start by showing how to set up your environment from scratch.
These instructions are written assuming the Ubuntu 16.04 LTS, since that's the distro the team uses. The build module works on a best-effort basis for other distributions.
Using Git requires it to be set up correctly; refer to the Working with the PowerShell Repository, README, and Contributing Guidelines.
This guide assumes that you have recursively cloned the
PowerShell repository and
cded into it.
We use the .NET Command-Line
dotnet) to build the managed components.
Installing the toolchain is as easy as running
Start-PSBootstrap in PowerShell. Of course, this requires a
self-hosted copy of PowerShell on Linux.
Fortunately, this is as easy as downloading
and installing the package. The
./tools/install-powershell.sh script will also install the
You should now be in a PowerShell console host that is installed. Just import our module, bootstrap the dependencies, and build!
Import-Module ./build.psm1 -PSBootstrapStart
Start-PSBootstrap function does the following:
If you want to use
dotnet outside of
~/.dotnet to your
PATH environment variable.
We maintain a PowerShell module with
Start-PSBuild to build PowerShell. Since this
is PowerShell code, it requires self-hosting. If you have followed the
toolchain setup section above, you should have PowerShell Core
Import-Module ./build.psm1 -PSBuildStart
Congratulations! If everything went right, PowerShell is now built.
Start-PSBuild script will output the location of the
You should now be running the PowerShell Core that you just built, if
you run the above executable. You can run our cross-platform Pester
Start-PSPester, and our xUnit tests with