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で確認をして環境に合わせます
インストール
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!!
インタラクティブシェルの動作確認として、Windows の PowerShell 環境ではエラーになる ifconfig ですが…
ちゃんと動作します。
終了させる場合は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
本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。