Powershell 7でInstall-Moduleしたモジュールが自動で起動しない
Powershell 7でTerminal-Icons使おうとしたけどなんか自動で起動しねぇ。
調べたところ、Pathがおかしいということで。
記録しながら修正する。
その前にフォントの設定方法。
もともとCascadia Monoを使っていたので、CaskaydiaMono Nerd Fontを導入。
Windowsなので設定のフォント設定に入れる。
使っているターミナルエミュレータのフォントを変更する。
Windows TerminalのPowerShell 7のフォントをCascadia MonoからCaskaydiaMono Nerd Fontに変更。
また、フォントサイズを標準から中に変更。
これをしないとアイコンが文字化けを起こす。というよりか読み込めない文字としてバツがでる。
閑話休題。
いろいろ調べた。Microsoftの記事が役に立たんのを再度理解した。
これでパスの場所は解決した。
(Get-Module -ListAvailable -Name Terminal-Icons).Path
~ユーザ名~\Documents\PowerShell\Modules\Terminal-Icons\0.11.0\Terminal-Icons.psd1
%ProgramFiles%\WindowsPowerShell\Modules
に入っていると思ってたよ。
ProgramFilesに入れる形にしたい。
そのまま移していいのか、やってみる。
無理でした。
Install-Module -Name Terminal-Icons -Repository PSGallery
これにこれを使ってみる。
Install-Module -Name Terminal-Icons -Repository PSGallery -Scope AllUsers
失敗。
一応、ProgramFilesには入った。
C:\Program Files\PowerShell\Modules\Terminal-Icons\0.11.0\Terminal-Icons.psd1
.psd1の問題かぁこれ?
環境変数を再確認する。
多分、PowerShell 5系統のほうを見ている可能性が高いな。
PowerShell 7系のフォルダーを指定してみる。
C:\Program Files\PowerShell\Modules
起動しない。
C:\Program Files\PowerShell\7\Modules
これも起動しない。
もしかしてPowershell 7のImport周りってクソシステム?
時間が欲しい。
やっぱクソシステムだこれ。
もしかして環境変数自体が違う変数で定義されている?
そんなことないよなぁ。
読める時間に読む。
一応このフォルダーに入れる別の手段。
環境変数に入っていたら認識するのでは?
可能性のある場所に入れてみるか。
五分。
インストール スコープの PowerShell 7.0のやつがない時点でうまく動かないのでは・・・?
ボブは訝しんだ。
記録用
%ProgramFiles%\WindowsPowerShell\Modules
%SystemRoot%\system32\WindowsPowerShell\v1.0\Modules
から
%ProgramFiles%\PowerShell\7\Modules
C:\Program Files\PowerShell\Modules
%ProgramFiles%\WindowsPowerShell\Modules
%SystemRoot%\system32\WindowsPowerShell\v1.0\Modules
C:\Users<user>\Documents\PowerShell\Modules
Profileの設定かこれ。Powershellでできるの。
ようやくできた。
この記事がなかったらできなかった。profileを使うものなのか。
できたけどInport-Moduleが遅い。
500ms超えは流石に遅いから止める。
早くする方法があるなら考える。