MicrosoftによりPowerShellがオープンソース化されました。PowerShellのビルド方法とインストール方法について記載します。
Table of Contents
1 ダウンロードしてインストールする
ビルド済みのdebパッケージが用意されています。
$ DL=https://github.com/PowerShell/PowerShell/releases/download/ $ wget ${DL}/v6.0.0-alpha.9/powershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.deb $ sudo apt install -y libunwind8 libicu55 $ sudo dpkg -i powershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.deb
2 ビルドしてインストールする
ソースコードをビルドしてインストールする方法を記載します。
2.1 dotnetのインストール
こちらのインストール方法の手順を用います。
$ sudo sh -c 'echo "deb [arch=amd64] \ https://apt-mo.trafficmanager.net/repos/dotnet-release/ xenial main" \ > /etc/apt/sources.list.d/dotnetdev.list' $ sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893 $ sudo apt update -y $ sudo apt install -y dotnet-dev-*
2.2 ビルドに必要なパッケージのインストール
PowerShellのビルドに必要なパッケージをインストールします。
$ sudo apt install -y cmake make g++
2.3 PowerShellのソースコード取得
–recursiveオプションをつけてgit cloneします。
$ git clone --recursive https://github.com/PowerShell/PowerShell.git $ cd PowerShell
2.4 PowerShellのビルド
こちらのビルド方法の手順を用います。
$ cd src/libpsl-native $ cmake -DCMAKE_BUILD_TYPE=Debug . $ make $ cd ../.. $ dotnet restore $ cd src/ResGen $ dotnet run -c Linux $ cd ../TypeCatalogParser $ dotnet run -c Linux $ cd ../TypeCatalogGen $ dotnet run -c Linux \ ../Microsoft.PowerShell.CoreCLR.AssemblyLoadContext/CorePsTypeCatalog.cs \ powershell.inc $ cd ../powershell-unix $ dotnet build -c Linux
2.5 PowerShellのインストール
インストールします。
$ sudo cp -a bin/Linux/netcoreapp1.0/ubuntu.16.04-x64 /opt/powershell $ sudo ln -s /opt/powershell/powershell /usr/local/bin/
実行してみます。
$ powershell PowerShell Copyright (C) 2016 Microsoft Corporation. All rights reserved. PS /home/hiroom2/src/PowerShell/src/powershell-unix> dir Directory: /home/hiroom2/src/PowerShell/src/powershell-unix Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 8/24/16 4:29 AM bin d----- 8/24/16 4:29 AM obj ------ 8/24/16 4:26 AM 42092 libgtest_main.a ------ 8/24/16 4:26 AM 2793922 libgtest.a ------ 8/24/16 4:26 AM 194760 libpsl-native.so ------ 8/24/16 4:25 AM 2338 project.json ------ 8/24/16 4:27 AM 1369383 project.lock.json PS /home/hiroom2/src/PowerShell/src/powershell-unix>