PowerShell

2019-09-10

やりたいこと

Install-Moduleをやりたいとこだが、インターネットへの接続が限られていたり帯域を絞りたい場合に
ローカルディスクに保存したnupkgファイルからインストールする方法について

前提

管理者権限を持たず、自分の$HOMEないし%USERPROFILE%以下に対する変更権限しか持たない場合を想定

1.パッケージをインストール

#sh(ruby){{
$repoRemote = "\\path\to\remote_repo_dir"; # Windows SMB
#$repoRemote = "/path/to/remote_repo_dir"; # Unix filesystem
$module = "NameOfModule";

Install-Package -Scope CurrentUser -Source $repoRemote -Name $module;
}}

2.$HOMEないし%USERPROFILE%以下のディレクトリをリポジトリとして登録

#sh(ruby){{
$repoLocal = @($Env:LocalAppData, "PackageManagement", "NuGet", "Packages") -join [IO.Path]::DirectorySeparatorChar; # Windows
#$repoLocal = @($Env:HOME, ".local", "share", "PackageManagement", "NuGet", "Packages") -join [IO.Path]::DirectorySeparatorChar; # Unix
$nameRepo = "LocalNuGetRepository";

if(!(Get-PSRepository -Name $nameRepo -ErrorAction SilentlyContinue)) {
Register-PSRepository -Name $nameRepo -SourceLocation $repoLocal -InstallationPolicy Trusted;
}
}}

3.登録したローカルのリポジトリからモジュールをインストール

#sh(ruby){{

Install-Module -Repository $nameRepo -Name $module -Scope CurrentUser;

}} ※試したところ、WindowsのPowerShellCoreではOK、LinuxのPowerShellCoreではモジュールが見つからないエラー

PS ~> Install-Module -Repository LocalNuGetRepository -Name SampleModule -Scope CurrentUser
PackageManagement\Install-Package : No match was found for the specified search criteria and module name 'SampleModule'. Try Get- 
PSRepository to see all available registered module repositories.
At /opt/microsoft/powershell/6/Modules/PowerShellGet/PSModule.psm1:9508 char:21
+ ...          $null = PackageManagement\Install-Package @PSBoundParameters
+                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : ObjectNotFound: (Microsoft.PowerShel\u2026lets.InstallPackage:InstallPackage) [Install-Package], Exception
+ FullyQualifiedErrorId : NoMatchFoundForCriteria,Microsoft.PowerShell.PackageManagement.Cmdlets.InstallPackage

Install-Moduleが成功したら$Env:PSModulePathのディレクトリに保存されるので、今後はImport-ModuleでモジュールをインポートすればOK


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-09-18 (水) 21:28:28