PowerShell on Linux (Ubuntu16.4) のインストール方法

先日、PowerShell がオープンソース化され、Linux や OSX でも利用可能になりました。ただ、使えるようになったということではなく、その先には、 Microsoft loves Linux のきちんとしたビジョンとメッセージがあるのですが、詳細はリンク先をご覧いただくとして、SQL Server on Linux のアナウンス(製品はまだプライベートベータですので、内容については今日現在は言及できませんが、SQL Server 2016 の機能エンハンスから期待してもいいと思います。)、マルチプラットフォームでオープンソースな .NET Core やWSLとしてBash がWindows 10 に加わり、オープンソースソフトウェアの開発のためのプラットフォームを整備してきました。将来的には Microsoft Operations Management Suite (OMS) への機能拡張も視野にはいっています。個人的には、PowerShell のDesired State Configuration (DSC) で扱える範囲がさらに広がることによってマルチプラットフォームでのインフラストラクチャの運用管理がさらに自動化・効率化され、DevOpsに代表される作って捨てて、作って捨ててっていうインフラのライフサイクルをさらに加速するのではないかと期待しています。

さて、そんなオープンソースになったPowerShellですが、手元にUbuntu 16.04 (64-bit) の環境があったので、実際にどのようにインストールするのかを実施してみましたので手順について書いてみます。

 

PowerShell on Linux のインストール

※ちょっと不親切だなーと思ったので、自分で打つコマンドは緑で色分けしています。

前提環境:

 Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-34-generic x86_64)

* Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

Get cloud support with Ubuntu Advantage Cloud Guest:
 https://www.ubuntu.com/business/services/cloud

14 packages can be updated.
 0 updates are security updates.
 Last login: Sat Aug 20 01:43:00 2016 from 157.65.54.111

作業用フォルダの作成、移動

 miyamam@SQLinux:~$ pwd 
 /home/miyamam
 miyamam@SQLinux:~$ mkdir temp
 miyamam@SQLinux:~$ cd temp/ 

wget コマンドでインストールバイナリをダウンロードする。

  miyamam@SQLinux:~/temp$  wget https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.9/powershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.deb 
 --2016-08-20 01:44:41--  https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.9/powershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.deb
 Resolving github.com (github.com)... 192.30.253.112
 Connecting to github.com (github.com)|192.30.253.112|:443... connected.
 HTTP request sent, awaiting response... 302 Found
 Location: https://github-cloud.s3.amazonaws.com/releases/49609581/3ab34990-63bf-11e6-84b3-9c3f34c3318d.deb?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAISTNZFOVBIJMK3TQ%2F20160820%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20160820T014442Z&X-Amz-Expires=300&X-Amz-Signature=9eee30f12bd1767fe0200f43acac93214a70e7aaa7835e97abc4eb393487be6d&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dpowershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.deb&response-content-type=application%2Foctet-stream [following]
 --2016-08-20 01:44:42--  https://github-cloud.s3.amazonaws.com/releases/49609581/3ab34990-63bf-11e6-84b3-9c3f34c3318d.deb?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAISTNZFOVBIJMK3TQ%2F20160820%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20160820T014442Z&X-Amz-Expires=300&X-Amz-Signature=9eee30f12bd1767fe0200f43acac93214a70e7aaa7835e97abc4eb393487be6d&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dpowershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.deb&response-content-type=application%2Foctet-stream
 Resolving github-cloud.s3.amazonaws.com (github-cloud.s3.amazonaws.com)... 54.231.72.219
 Connecting to github-cloud.s3.amazonaws.com (github-cloud.s3.amazonaws.com)|54.231.72.219|:443... connected.
 HTTP request sent, awaiting response... 200 OK
 Length: 40928824 (39M) [application/octet-stream]
 Saving to: ‘powershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.deb’

powershell_6.0.0-alpha.9-1ubu 100%[=================================================>]  39.03M  12.1MB/s    in 4.3s

2016-08-20 01:44:48 (9.03 MB/s) - ‘powershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.deb’ saved [40928824/40928824]

#wget する先のリンクは都度新しいものがリリースされている可能性がありますので、GitHubで確認をして環境に合わせます

2016-08-20_11h39_05

 

インストール

 miyamam@SQLinux:~/temp$ sudo apt-get install libunwind8 libicu55
Reading package lists... Done
Building dependency tree
Reading state information... Done
libicu55 is already the newest version (55.1-7).
libunwind8 is already the newest version (1.1-4.1).
0 upgraded, 0 newly installed, 0 to remove and 18 not upgraded.
miyamam@SQLinux:~/temp$ sudo dpkg -i powershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.deb
Selecting previously unselected package powershell.
(Reading database ... 99535 files and directories currently installed.)
Preparing to unpack powershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.deb ...
Unpacking powershell (6.0.0-alpha.9-1) ...
Setting up powershell (6.0.0-alpha.9-1) ...
Processing triggers for man-db (2.7.5-1) ...

 

起動確認とHello PowerShell

 miyamam@SQLinux:~/temp$ powershell
 PowerShell
 Copyright (C) 2016 Microsoft Corporation. All rights reserved.

PS /home/miyamam/temp> $PSVersionTable
 Name                           Value
 ----                           -----
 PSVersion                      6.0.0-alpha
 PSEdition                      Core
 PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
 BuildVersion                   3.0.0.0
 GitCommitId                    v6.0.0-alpha.9
 CLRVersion
 WSManStackVersion              3.0
 PSRemotingProtocolVersion      2.3
 SerializationVersion           1.1.0.1

 

PowerShellの典型的なサンプルのWrite-Host コマンドレットを使用します。(-ForegroundColor オプションは指定色にするというオプションです。)

 

 PS /home/miyamam/temp> Write-Host "Hello PowerShell!!" -ForegroundColor Cyan
 Hello PowerShell!!
 PS /home/miyamam/temp> Write-Host "Hello PowerShell!!" -ForegroundColor Magenta
 Hello PowerShell!!

2016-08-20_11h46_14

 

インタラクティブシェルの動作確認として、Windows の PowerShell 環境ではエラーになる ifconfig ですが…

2016-08-20_11h52_42

ちゃんと動作します。

2016-08-20_11h52_56

終了させる場合はexit コマンドで終了させます。

 

参考リンク

PowerShell is open sourced and is available on Linux

https://azure.microsoft.com/en-us/blog/powershell-is-open-sourced-and-is-available-on-linux/

 

Package installation instructions

https://github.com/PowerShell/PowerShell/blob/master/docs/installation/linux.md

 

 

本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。