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 のお作法を知らないので 上と同じページ にあるコマンドを写経します。

[ mohisa@pollux:~/tmp/ ]
% mkdir hwapp
[ mohisa@pollux:~/tmp/ ]
% cd hwapp
[ mohisa@pollux:~/tmp/hwapp/ ]
% dotnet new
Created new C# project in /Users/mohisa/tmp/hwapp.
[ mohisa@pollux:~/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.
[ mohisa@pollux:~/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!
[ mohisa@pollux:~/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 で旧来に比較して激安になったときに購入。

[ mohisa@pollux:~/ ]
% 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.
[ mohisa@pollux:~/ ]
% 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

[ mohisa@pollux:~/ ]
%

PowerShell のインストール

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

PowerShell の動作確認

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

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

[ mohisa@pollux:~/ ]
% 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. powershell

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

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

  2. powercli

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

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

  3. dns

    PowerShell で DNS 操作

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

  4. powercli

    Details of host Advanced settings

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

  5. powershell

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

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

  6. powercli

    PowerCLI – オブジェクトの変換

    vSphere Web Services SDK (SDK) と vS…

コメント

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

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










  1. 4k

    [Broken??] Mac Mini Late 2012 & 4K …
  2. Marina Bay Sands@Singapore

    fusion

    VMware Fusion 8 でネットワークを追加する
  3. fusion

    IME 切替 on MacBook Pro + VMware Fusion + …
  4. vcenter

    vMotion の歴史 (2) – VirtualCenter 1.…
  5. container

    Learning technologies around containers
PAGE TOP
Translate »