しばたテックブログ

気分で書いている技術ブログです。

LinuxとmacOSでPowerShell Coreのパッケージ管理方法が変わります

先日公開されたPowerShell Core 6.1.0-preview.3からLinuxとmacOSでパッケージマネージャーを使ったインストールをする際のパッケージ名に変更が入ります。

github.com

安定版とプレビュー版の分離

PowerShell Core 6.1.0-preview.2まではLinuxやmacOSのパッケージマネージャーを使う際のパッケージ名は「powershell」の一つで管理していました。
これだと安定版のみを更新していきたい人に対してプレビュー版の更新が強制されることになり非常に問題がありました。

本件に先立ってGitHubのホームにあるインストーラーのリンクが安定版とプレビュー版で分離される様になり、今回PowerShell Core 6.1.0-preview.3でパッケージ名も分離されることとなりました。

f:id:stknohg:20180615132146p:plain

(図は安定版、プレビュー版が分離されたGitHubのホーム画面)

パッケージ名の変更

ここまでを踏まえて、今後PowerShell Coreのパッケージ名は以下の様に変更されます。

  • 安定版 : powershell
  • プレビュー版 : powershell-preview

例としてapt-getの場合は以下の様に使い分けることになります。

# 安定版のインストール
sudo apt-get install -y powershell

# プレビュー版のインストール
sudo apt-get install -y powershell-preview

インストール可能なバージョン

ここから少しややこしいのですが、「OSやディストリビューションによってサポート対象となるPowerShellのバージョンが異なる」、「既にPowerShell Core 6.1.0-preview.1~preview.2をリリースしてしまっている」といった事情があるため、パッケージ毎にインストール可能なPowerShell Coreのバージョンはややこしいことになっています。

以下に現時点での一覧を記載します。

f:id:stknohg:20180615131756p:plain

これが将来的には下図の様になっていくのですが、既存のPowerShell Core 6.1.0-preview.1~preview.2がどうなるかはまだ不明です。

f:id:stknohg:20180615131837p:plain

シンボリックリンクの変更

パッケージ名の変更に合わせてPowerShell Coreの実行バイナリに対するシンボリックリンクにも変更が入ります。

たとえばUbuntuの場合、PowerShell Coreのバイナリは

  • /opt/microsoft/powershell/<バージョン番号>/pwsh

にあり、シンボリックリンクが

  • /usr/bin/pwsh

に貼られていますが、このシンボリックリンクが

  • /usr/bin/pwsh-preview

に変更されます。
安定版は/usr/bin/pwshのまま変わりません。

最後に

ざっとこんな感じです。

本来この点は最初のプレビューリリース前に考えるべき話でした。
若干対応が遅れたものの、あるべき姿に落ち着いたのは良いことだと思います。