3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Oh My PoshをPowerShellモジュール版からバイナリインストール版に移行してみる(Windows)

Last updated at Posted at 2022-05-01

oh-my-poshについて、今まではPowerShell GalleryPowerShellモジュールをインストールすることによって機能を提供していました。

この提供方法がversion 7.75.0 から変更になるようです。

PowerSHellモジュール版のoh-my-poshのバージョンを7.75.0にアップデートした所、起動時にプロンプトに下記の表示がされるようになっていました。

image.png

PowerShellモジュールで提供されているoh-my-poshの機能は、しばらく前からバイナリ化(oh-my-posh.exe)されており。
モジュールに含まれるコマンドレットは実はバイナリ(oh-my-posh.exe)のラッパーとして機能していました。

今回、下記の利用からPowerShellモジュールの機能提供は更新されなくなり、これからはバイナリをインストールする方法に移行されるようです。

・downloading the binary is a problem on company managed computers
・the module syncs cross device thanks to OneDrive sync, causing versions to be out of sync and configs to break
・it's impactful having to explain the difference time and time again (for me)

ドキュメント

PowerShell module

すでにモジュール版をインストールしている場合、移行ドキュメントが用意されています。

ドキュメントにはモジュールのアンインストール方法とバイナリのインストール方法と設定方法が記載されています。

本記事では、こちらを参照して移行してみます。

今回対象とする環境

  • Windows 10 21H2
  • PowerShell 7.3.0-preview.3
  • oh-my-posh 7.75.0
  • winget v1.3.431-preview

wingetでoh-my-poshをインストール

Windows Set up your terminal

Windows環境へのインストールでは、winget、scoop、manual。
3種類のインストール方法が提供されています。

本記事ではwingetを利用してインストールします。

winget install oh-my-posh

ドキュメントには下記のように記載されており、今回実施した端末でも再起動しないとPATHが反映されなかったため、ここで再起動しました。

For the $PATH to reload, a restart of your terminal is advised.

なおインストールPATHを確認すると下記のように追加されていました。

image.png

なおwingetでインストールしたバイナリを更新する場合は下記を実行します。

winget upgrade oh-my-posh

モジュール版のアンインストール

Uninstall the PowerShell module

Uninstall-Module oh-my-posh -AllVersions

ちなみにモジュールがうまくアンインストールできない場合は、下記でPowerShellモジュールのインストール先を調べ、そのディレクトリを直接削除する方法もあります。

# モジュールがインストールされているパスを確認する
# 適宜、表示されたパスを削除して下さい。
(Get-Module -ListAvailable oh-my-posh).ModuleBase

起動プロファイルに記載している設定を削除する。

今回対象となる端末では、起動プロファイルでImport-ModuleとSet-PoshPromptを利用していたので起動プロファイルからこちらを削除します。

Profile
Import-Module oh-my-posh
Set-PoshPrompt "hogehoge\myTheme.omp.json"

起動プロファイルの更新

Adjust setting the prompt

いままで起動プロファイルにSet-PoshPromptコマンドレットで設定していたテーマ設定を下記のような記述に置き換えます。

$profile
oh-my-posh init pwsh --config ~/.custom.omp.json | Invoke-Expression

総評

現在、oh-my-poshの機能がoh-my-posh.exeで提供されるようになり。
PowerShellモジュールのコマンドレットがoh-my-posh.exeのラッパーとして機能している状況となるため。

直接、oh-my-posh.exeをインストールして実行するようにするようになるのは極めてその通りな気はします。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?