Saltar al contenido

¿Cómo instalo el proveedor Nuget para PowerShell en una máquina no conectada para poder instalar un paquete nuget desde la línea de comandos de PS?

Luego de mucho trabajar ya encontramos el resultado de este apuro que muchos usuarios de nuestro sitio tienen. Si tienes algún dato que aportar no dudes en dejar tu conocimiento.

Solución:

Aunque probé todas las respuestas anteriores, solo la siguiente funcionó:

1 – Abrir Powershell (como administrador)

2 – Ejecutar:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

3 – Ejecutar:

Install-PackageProvider -Name NuGet

El autor es Niels Weistra: Microsoft Forum

Acepté la respuesta de trebleCode, pero quería proporcionar un poco más de detalles sobre los pasos que tomé para instalar el nupkg de interés. pswindowsupdate.2.0.0.4.nupkg en mi máquina Win 7 desconectada siguiendo la respuesta de trebleCode.

Primero: después de investigar un poco, creo que encontré los documentos de MS a los que se refiere trebleCode:

Bootstrap del proveedor de NuGet y NuGet.exe

Install-PackageProvider

Para continuar, como dijo TrebleCode, hice lo siguiente

Instalar el proveedor de NuGet en mi máquina conectada

En una máquina conectada (máquina Win 10), desde la línea de comandos de PS, ejecuté Install-PackageProvider -Name NuGet -RequiredVersion 2.8.5.201 -Force. El software Nuget se obtuvo de la red y se instaló en mi máquina local conectada.

Después de la instalación, encontré el software del proveedor de NuGet en C:Program FilesPackageManagementProviderAssemblies (Nota: el nombre de la carpeta ProviderAssemblies Opuesto a ReferenceAssemblies fue la única diferencia menor en relación con la respuesta de trebleCode.

El software del proveedor está en una estructura de carpetas como esta:

C:Program FilesPackageManagementProviderAssemblies
   NuGet
      2.8.5.208
         Microsoft.PackageManagement.NuGetProvider.dll

Instalar el proveedor de NuGet en mi máquina desconectada

Copié la carpeta NuGet (y todos sus elementos secundarios) de la máquina conectada en una memoria USB y la copié en C:Program FilesPackageManagementProviderAssemblies en mi máquina desconectada (Win 7)

Inicié PS (v5) en mi máquina desconectada (Win 7) y ejecuté Import-PackageProvider -Name NuGet -RequiredVersion 2.8.5.201 para importar el proveedor a la actual PowerShell sesión.

Yo corrí Get-PackageProvider -ListAvailable y vi esto (NuGet aparece donde no estaba presente antes):

Name                     Version          DynamicOptions                                                                                                                                                                      
----                     -------          --------------                                                                                                                                                                      
msi                      3.0.0.0          AdditionalArguments                                                                                                                                                                 
msu                      3.0.0.0                                                                                                                                                                                              
NuGet                    2.8.5.208        Destination, ExcludeVersion, Scope, SkipDependencies, Headers, FilterOnTag, Contains, AllowPrereleaseVersions, ConfigFile, SkipValidate                                             
PowerShellGet            1.0.0.1          PackageManagementProvider, Type, Scope, AllowClobber, SkipPublisherCheck, InstallUpdate, NoPathUpdate, Filter, Tag, Includes, DscResource, RoleCapability, Command, PublishLocati...
Programs                 3.0.0.0          IncludeWindowsInstaller, IncludeSystemComponent

Crear un repositorio local en mi máquina desconectada

En una máquina no conectada (Win 7), creé una carpeta para que sirviera como mi repositorio de PS (digamos, c:usersfooDocumentsPSRepository)

Registré el repositorio: Register-PSRepository -Name fooPsRepository -SourceLocation c:usersfooDocumentsPSRepository -InstallationPolicy Trusted

Instale el paquete NuGet

Obtuve y copié el nupkg pswindowsupdate.2.0.0.4.nupkg para c:usersfooDocumentsPSRepository en mi máquina Win7 desconectada

Aprendí el nombre del módulo ejecutando Find-Module -Repository fooPsRepository

Version    Name                                Repository           Description                                                                                                                      
-------    ----                                ----------           -----------                                                                                                                      
2.0.0.4    PSWindowsUpdate                     fooPsRepository      This module contain functions to manage Windows Update Client.

Instalé el módulo ejecutando Install-Module -Name pswindowsupdate

Verifiqué el módulo instalado ejecutando Get-Command –module PSWindowsUpdate

CommandType     Name                                               Version    Source                                                                                                                 
-----------     ----                                               -------    ------                                                                                                                 
Alias           Download-WindowsUpdate                             2.0.0.4    PSWindowsUpdate                                                                                                        
Alias           Get-WUInstall                                      2.0.0.4    PSWindowsUpdate                                                                                                        
Alias           Get-WUList                                         2.0.0.4    PSWindowsUpdate                                                                                                        
Alias           Hide-WindowsUpdate                                 2.0.0.4    PSWindowsUpdate                                                                                                        
Alias           Install-WindowsUpdate                              2.0.0.4    PSWindowsUpdate                                                                                                        
Alias           Show-WindowsUpdate                                 2.0.0.4    PSWindowsUpdate                                                                                                        
Alias           UnHide-WindowsUpdate                               2.0.0.4    PSWindowsUpdate                                                                                                        
Alias           Uninstall-WindowsUpdate                            2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Add-WUServiceManager                               2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Enable-WURemoting                                  2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Get-WindowsUpdate                                  2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Get-WUApiVersion                                   2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Get-WUHistory                                      2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Get-WUInstallerStatus                              2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Get-WUJob                                          2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Get-WULastResults                                  2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Get-WURebootStatus                                 2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Get-WUServiceManager                               2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Get-WUSettings                                     2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Get-WUTest                                         2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Invoke-WUJob                                       2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Remove-WindowsUpdate                               2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Remove-WUServiceManager                            2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Set-WUSettings                                     2.0.0.4    PSWindowsUpdate                                                                                                        
Cmdlet          Update-WUModule                                    2.0.0.4    PSWindowsUpdate 

Creo que estoy listo para irme

MSDocs indica esto para su escenario:

Para ejecutarse por primera vez, PackageManagement requiere una conexión a Internet para descargar el proveedor de paquetes Nuget. Sin embargo, si su computadora no tiene conexión a Internet y necesita usar el proveedor Nuget o PowerShellGet, puede descargarlos en otra computadora y copiarlos en su computadora de destino. Siga los siguientes pasos para hacer esto:

  1. Correr Install-PackageProvider -Name NuGet -RequiredVersion 2.8.5.201 -Force para instalar el proveedor desde una computadora con conexión a Internet.

  2. Después de la instalación, puede encontrar el proveedor instalado en $env:ProgramFilesPackageManagementReferenceAssemblies\\
    o
    $env:LOCALAPPDATAPackageManagementProviderAssemblies\\.

  3. Coloque la carpeta, que en este caso es la carpeta Nuget, en la ubicación correspondiente en su computadora de destino. Si su computadora de destino es un servidor Nano, debe ejecutar Install-PackageProvider desde Nano Server para descargar los binarios de Nuget correctos.

  4. Reinicie PowerShell para cargar automáticamente el proveedor de paquetes. Alternativamente, ejecuta Get-PackageProvider -ListAvailable para enumerar todos los proveedores de paquetes disponibles en la computadora. Entonces usa
    Import-PackageProvider -Name NuGet -RequiredVersion 2.8.5.201 para importar el proveedor a la sesión actual de Windows PowerShell.

Aquí tienes las comentarios y puntuaciones

Te invitamos a añadir valor a nuestro contenido informacional aportando tu experiencia en las críticas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *