powershell

PowerCLI – PowerShell on Mac

祝 !! OSS 化。

PowerShell が OSS 化され Linux や Mac でも動くようになったので、早速試してみます。

手順

大まかな流れは以下になります。

  • openssl を homebrew で導入。必要なシンボリック リンクを作成。
  • Mac 向けの dotnet core をインストール
  • dotnet core の動作確認
  • PowerShell のインストール
  • PowerShell の動作確認

OpenSSL を Homebrew で導入

すでに導入済みのため、本家のこちら から拝借。

$ brew update
$ brew install openssl
$ ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/
$ ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/

Mac 向けの dotnet core をインストール

バイナリも 上と同じページ にリンクがあるので、そちらから最新版を入手します。

pkg フォーマットなので、ダウンロード後、ダブルクリックし、ウィザードに従いインストールします。

dotnet core の動作確認

インストールされた dotnet core の動作確認をします。

dotnet core のお作法を知らないので 上と同じページ にあるコマンドを写経します。

[ [email protected]:~/tmp/ ]
% mkdir hwapp
[ [email protected]:~/tmp/ ]
% cd hwapp
[ [email protected]:~/tmp/hwapp/ ]
% dotnet new
Created new C# project in /Users/mohisa/tmp/hwapp.
[ [email protected]:~/tmp/hwapp/ ]
% dotnet restore
log  : Restoring packages for /Users/mohisa/tmp/hwapp/project.json...
log  : Writing lock file to disk. Path: /Users/mohisa/tmp/hwapp/project.lock.json
log  : /Users/mohisa/tmp/hwapp/project.json
log  : Restore completed in 1046ms.
[ [email protected]:~/tmp/hwapp/ ]
% dotnet run
Project hwapp (.NETCoreApp,Version=v1.0) will be compiled because expected outputs are missing
Compiling hwapp for .NETCoreApp,Version=v1.0

Compilation succeeded.
    0 Warning(s)
    0 Error(s)

Time elapsed 00:00:01.5014416


Hello World!
[ [email protected]:~/tmp/hwapp/ ]
%

と単純に終わりましたが、実は 2 点ほど嵌まっています。

嵌まったところ 1

普段 zsh を使っているのですが、dotnet core をインストール後、インストール前から起動済みのシェルで dotnet コマンドが command not found に。シェルの再起動で事なきを得ていますが、そういうもんだっけ…?

嵌まったところ 2

Hello World アプリを実行する際に、きちんと hwapp などのフォルダを掘ってそこでコマンドを実行すること。上の対応でシェルを再起動した際に、フォルダ移動し忘れてホームディレクトリで dotnet new から始まるコマンド実行したらあえなく玉砕に。

Garageband などのアプリ ファイルの一部が *.cs という拡張子のため、 dotnet restore の実行が長時間になり、dotnet run はエラーになります。

Logic は昔若気の至りで AppStore で旧来に比較して激安になったときに購入。

[ [email protected]:~/ ]
% dotnet restore
log  : Restoring packages for /Users/mohisa/project.json...
log  : Writing lock file to disk. Path: /Users/mohisa/project.lock.json
log  : /Users/mohisa/project.json
log  : Restore completed in 917ms.
[ [email protected]:~/ ]
% dotnet run


Project mohisa (.NETCoreApp,Version=v1.0) will be compiled because expected outputs are missing
Compiling mohisa for .NETCoreApp,Version=v1.0
/usr/local/share/dotnet/dotnet compile-csc @/Users/mohisa/obj/Debug/netcoreapp1.0/dotnet-compile.rsp returned Exit Code 1
/Users/mohisa/error CS2015: '/Users/mohisa/Library/Preferences/com.apple.logic.pro.cs' is a binary file instead of a text file
/Users/mohisa/error CS2015: '/Users/mohisa/Library/Containers/com.apple.garageband10/Data/Library/Preferences/com.apple.garageband10.cs' is a binary file instead of a text file

Compilation failed.
    0 Warning(s)
    2 Error(s)

Time elapsed 00:01:31.0792453

[ [email protected]:~/ ]
%

PowerShell のインストール

PowerShell 6.0.0 alpha9 のパッケージを Github からダウンロードし、インストールします。pkg フォーマットなので dotnet core と同じくウィザードに従いインストールします。

PowerShell の動作確認

シェルを起動し直して PowerShell を実行します。powershell コマンドがインストールされ、$PSVersionTable は以下の出力となりました。

しかし、OSVersion はまだ実装されていないのかな ?

[ [email protected]:~/ ]
% powershell
PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.

PS /Users/mohisa> $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


PS /Users/mohisa> [System.Environment]::OSVersion
OSVersion's call to GetVersionEx failed.
At line:1 char:1
+ [System.Environment]::OSVersion
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (:) [], InvalidOperationException
    + FullyQualifiedErrorId : System.InvalidOperationException

PS /Users/mohisa>

最近のマイクロソフト

Azure や OSS への傾倒など、CEO が変わってから (中の人はその前からと言われたりしますが) 随分様変わりしたなと思います。しかし、ソフトウェア ライセンスの売上がほとんどだった会社が OSS に傾倒、なによりもパートナー ビジネスを進めていた会社がクラウドに傾倒し、今後何が起きていくかは注視せざるを得ないと考えるところです。確たるE-コマース事業や広告事業がある Amazon と Google と違うところを上手くこなしていくのでしょうけども、その上手いこなし方の余波で埋没しないようエンジニア・勤め人として生き抜きたいと切に願います。

関連記事

  1. dns

    PowerShell で DNS 操作

    現在、俺々 Lab に vCloud Director (vCD)…

  2. powershell

    PowerCLI – ダブルクォート内での配列型の変数の展開

    PowerCLI に限った話ではないのですが、PowerCLI のスク…

  3. powershell

    PowerShell -Split 演算子で “.” (ピリオド) を区切り…

    まとめ-Split 演算子の 2 項目は正規表現ピリオドを区切…

  4. powercli

    PowerCLI – オブジェクトの変換

    vSphere Web Services SDK (SDK) と vS…

  5. powercli

    PowerShell スクリプト コマンドレットのパラメータに補完機能を

    まとめスクリプト コマンドレット パラメーターの補完は極めて便利…

  6. powercli

    Details of host Advanced settings

    まとめESXi ホストの詳細設定一覧を CSV で出力ホストの…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。










  1. GCP

    gcloud コマンドで Project の一覧を表示
  2. error

    Unable to serialize object of class in v…
  3. console

    VMware Remote Console 9.0 was just relea…
  4. vsphere client

    vSphere Client (C#) 5.5 update 2 へのアップグレ…
  5. powercli

    オフラインで VMware PowerCLI 6.5.1 をインストールする
PAGE TOP
Translate »