2017/02/01にPowerShell Core 6.0がLinux環境向けにもリリースされた
「Installing latest PowerShell Core 6.0 Release on Linux just got easier!」
PowerShellの開発はGithubの「https://github.com/PowerShell/PowerShell」で行われており、導入手順も書かれている。
github上の「Linux向けインストール手順」では、直接RPMファイル/debファイルを指定してインストールする、というものが記載されている。
しかし、「Installing latest PowerShell Core 6.0 Release on Linux just got easier!」の記事の中では、yumやaptなどでプログラムの更新をサポートする形でのインストール手順が示されている。
CentOS7だと下記のようになる
# curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/microsoft.repo
# yum install powershell
#
実際に実行してみると下記の様になります。
[root@blog ~]# curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/microsoft.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 193 100 193 0 0 209 0 --:--:-- --:--:-- --:--:-- 210
[root@blog ~]# yum install powershell
読み込んだプラグイン:fastestmirror, langpacks
packages-microsoft-com-prod | 2.9 kB 00:00
packages-microsoft-com-prod/primary_db | 9.9 kB 00:00
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* epel: ftp.riken.jp
* extras: ftp.iij.ad.jp
* updates: ftp.iij.ad.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ powershell.x86_64 0:6.0.0_alpha.15-1.el7.centos を インストール
--> 依存性の処理をしています: uuid のパッケージ: powershell-6.0.0_alpha.15-1.el7.centos.x86_64
--> 依存性の処理をしています: libicu のパッケージ: powershell-6.0.0_alpha.15-1.el7.centos.x86_64
--> 依存性の処理をしています: libunwind のパッケージ: powershell-6.0.0_alpha.15-1.el7.centos.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ libicu.x86_64 0:50.1.2-15.el7 を インストール
---> パッケージ libunwind.x86_64 2:1.1-5.el7_2.2 を インストール
---> パッケージ uuid.x86_64 0:1.6.2-26.el7 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
================================================================================
Package アーキテクチャー
バージョン リポジトリー 容量
================================================================================
インストール中:
powershell
x86_64 6.0.0_alpha.15-1.el7.centos packages-microsoft-com-prod 39 M
依存性関連でのインストールをします:
libicu x86_64 50.1.2-15.el7 base 6.9 M
libunwind x86_64 2:1.1-5.el7_2.2 base 56 k
uuid x86_64 1.6.2-26.el7 base 55 k
トランザクションの要約
================================================================================
インストール 1 パッケージ (+3 個の依存関係のパッケージ)
総ダウンロード容量: 46 M
インストール容量: 64 M
Is this ok [y/d/N]: y
Downloading packages:
(1/4): uuid-1.6.2-26.el7.x86_64.rpm | 55 kB 00:00
(2/4): libunwind-1.1-5.el7_2.2.x86_64.rpm | 56 kB 00:00
(3/4): libicu-50.1.2-15.el7.x86_64.rpm | 6.9 MB 00:04
warning: /var/cache/yum/x86_64/7/packages-microsoft-com-prod/packages/powershell-6.0.0_alpha.15-1.el7.centos.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID be1229cf: NOKEY
powershell-6.0.0_alpha.15-1.el7.centos.x86_64.rpm の公開鍵がインストールされていません
(4/4): powershell-6.0.0_alpha.15-1.el7.centos.x86_64.rpm | 39 MB 00:21
--------------------------------------------------------------------------------
合計 2.2 MB/s | 46 MB 00:21
https://packages.microsoft.com/keys/microsoft.asc から鍵を取得中です。
Importing GPG key 0xBE1229CF:
Userid : "Microsoft (Release signing) <gpgsecurity@microsoft.com>"
Fingerprint: bc52 8686 b50d 79e3 39d3 721c eb3e 94ad be12 29cf
From : https://packages.microsoft.com/keys/microsoft.asc
上記の処理を行います。よろしいでしょうか? [y/N]y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : uuid-1.6.2-26.el7.x86_64 1/4
インストール中 : 2:libunwind-1.1-5.el7_2.2.x86_64 2/4
インストール中 : libicu-50.1.2-15.el7.x86_64 3/4
インストール中 : powershell-6.0.0_alpha.15-1.el7.centos.x86_64 4/4
検証中 : powershell-6.0.0_alpha.15-1.el7.centos.x86_64 1/4
検証中 : libicu-50.1.2-15.el7.x86_64 2/4
検証中 : 2:libunwind-1.1-5.el7_2.2.x86_64 3/4
検証中 : uuid-1.6.2-26.el7.x86_64 4/4
インストール:
powershell.x86_64 0:6.0.0_alpha.15-1.el7.centos
依存性関連をインストールしました:
libicu.x86_64 0:50.1.2-15.el7 libunwind.x86_64 2:1.1-5.el7_2.2
uuid.x86_64 0:1.6.2-26.el7
完了しました!
[root@blog ~]#
が・・・
私の環境では、いつもの癖で「ls」と実行してしまったら・・・
bash-4.2$ ls
11-0-1-0048_SAS_FW_Image_1-40-342-1650.zip MegaSAS.log sql web work
bash-4.2$ powershell
PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.
PS /home/osakanataro> ls
11-0-1-0048_SAS_FW_Image_1-40-342-1650.zip MegaSAS.log sql web work
(ここで応答が無くなる)
ん???
UNIX系コマンドをPowerShellから実行した場合の動作に難有りなのかも?
PS /home/osakanataro> Get-Item *| ForEach-Object { $_ }
Directory: /home/osakanataro
Mode LastWriteTime Length Name
---- ------------- ------ ----
d-r--- 2017/02/06 17:35 sql
d----- 2017/02/03 19:08 web
d----- 2017/02/03 19:19 work
------ 2017/01/04 13:01 1528036 11-0-1-0048_SAS_FW_Image_1-40-
342-1650.zip
--r--- 2017/01/04 13:07 390 MegaSAS.log
PS /home/osakanataro> dir
Directory: /home/osakanataro
Mode LastWriteTime Length Name
---- ------------- ------ ----
d-r--- 2017/02/06 17:35 sql
d----- 2017/02/03 19:08 web
d----- 2017/02/03 19:19 work
------ 2017/01/04 13:01 1528036 11-0-1-0048_SAS_FW_Image_1-40-
342-1650.zip
--r--- 2017/01/04 13:07 390 MegaSAS.log
PS /home/osakanataro>
PwerShellらしいこと、ということで、下記の処理をやってみる
PS /home/osakanataro> $results=Get-Item *| ForEach-Object { $_ }
PS /home/osakanataro> $results | Export-Csv test.csv -Encoding UTF (タブ補完で候補を出す)
UTF32 UTF7 UTF8
PS /home/osakanataro> $results | Export-Csv test.csv -Encoding UTF8 -No (タブ補完で候補を出す)
NoClobber NoOverwrite NoTypeInformation
PS /home/osakanataro> $results | Export-Csv test.csv -Encoding UTF8 -NoTypeInformation
PS /home/osakanataro>
出力結果のcsvは、Windows上のPowerShellで実行した場合と同じ書式のモノとなりました。
$PSVersionTableの内容は下記のようになっていました。
$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.15
CLRVersion
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
以下はおまけ。
Microsoftのレポジトリとして指定されている「https://packages.microsoft.com/rhel/7/prod/」とか「https://packages.microsoft.com/config/rhel/7/」を見ていくとなかなか面白い
「https://packages.microsoft.com/config/rhel/7/mssql-server.repo」という用にCentOS7向けのMSSQL Serverっぽいレポジトリファイルがある。RPMファイルは「https://packages.microsoft.com/rhel/7/mssql-server/」にある。
MSSQL Serverのインストール手順については「Install SQL Server on Linux」を参照のこと。