* Rebase onto .NET Core 1.1 Modify `Build.psm1` and `project.json` files to use .NET Core 1.1. .NET Core 1.1 ships with an older dotnet/cli than has currently been used, so we revert to use case-sensitive directory names for dependencies. .NET Core 1.1 is a pre-requisite for supporting Fedora 24. * PSReadLine: Bump major version of PSReadline to 6.0.0-* * Microsoft.PowerShell.Commands.Utility: Bump major version of Microsoft.CodeAnalysis.Csharp * Microsoft.PowerShell.SDK: Revert attempt to import netcoreapp1.1 instead of dnxcore * build.psm1: Restore ability to specify version of dotnet-install.sh
3.2 KiB
Build PowerShell on macOS
This guide supplements the Linux instructions, as building on macOS is almost identical.
.NET Core (and by transitivity, us) only supports macOS 10.11, per CoreFX issue #7731.
Environment
You will want Homebrew, the missing package manager for macOS.
Once installed, follow the same instructions to download and
install a self-hosted copy of PowerShell on your macOS machine,
and useStart-PSBootstrap
to install the dependencies.
The Start-PSBootstrap
function does the following:
- Uses
brew
to install CMake, OpenSSL, and GNU WGet - Uninstalls any prior versions of .NET CLI
- Downloads and installs the latest .NET CLI 1.0.0-preview3 SDK to
~/.dotnet
If you want to use dotnet
outside of Start-PSBuild
,
add ~/.dotnet
to your PATH
environment variable.
error: Too many open files
Due to a bug in NuGet, the dotnet restore
command will fail without the limit increased.
Run ulimit -n 2048
to fix this in your session;
add it your shell's profile to fix it permanently.
We cannot do this for you in the build module due to #847.
error: dotnet restore
If you run dotnet restore
and get error like
PS /Users/vors/dev/PowerShell> dotnet restore
log : Restoring packages for /Users/vors/dev/PowerShell/src/TypeCatalogGen/project.json...
log : Restoring packages for /Users/vors/dev/PowerShell/src/TypeCatalogParser/project.json...
log : Restoring packages for /Users/vors/dev/PowerShell/test/PSReadLine/project.json...
log : Restoring packages for /Users/vors/dev/PowerShell/test/csharp/project.json...
error: Unable to load the service index for source http://www.myget.org/F/dotnet-core/api/v3/index.json.
error: The type initializer for 'Crypto' threw an exception.
error: The type initializer for 'CryptoInitializer' threw an exception.
error: Unable to load DLL 'System.Security.Cryptography.Native': The specified module could not be found.
error: (Exception from HRESULT: 0x8007007E)
These means you did not use our Start-PSBootstrap
function to setup your environment,
which handles patching .NET Core's bad cryptography libraries.
Please see our macOS installation instructions for explanation.
Build using our module
Instead of installing the Ubuntu package of PowerShell,
download the pkg
from our GitHub releases page using your browser, complete the wizard,
start a powershell
session, and use Start-PSBuild
from the module.
The output directory will be slightly different because your runtime identifier is different.
PowerShell will be at ./src/powershell-unix/bin/Linux/netcoreapp1.1/osx.10.11-x64/powershell
,
or osx.10.10
depending on your operating system version.
Note that configuration is still Linux
because it would be silly to make yet another separate configuration when it's used solely to work-around a CLI issue.