chocolatey

¿Cómo instalar paquetes de Chocolatey offline?



(7)

Descargas de caché - No determinista

Si bien hay formas de configurar el nupkg original (con la versión en él, no la que se encuentra en el directorio de paquetes; use la descarga desde el lado izquierdo de la página de paquetes en el repositorio de paquetes de la comunidad de Chocolatey ) y preestablece los archivos binarios descargados en la carpeta del caché, es No siempre determinista que funcionará. También puede anular la ubicación de la memoria caché, de modo que la carpeta no esté en TEMP. Consulte choco config , choco config -h y choco config set cacheLocation c:/some/location para hacer esto.

Crea tus propios paquetes - Mejor

Para los paquetes que necesita sin conexión, tiene la capacidad de administrar sus propios paquetes y puede integrar el software directamente en el paquete. Esto se desea cuando desea administrar el software fuera de línea, ya que la mayoría de los elementos en el repositorio de la comunidad están sujetos a la ley de derechos de autor y derechos de distribución (por eso no tienen simplemente el software que representan).

Crear y trabajar con sus propios paquetes es muy seguro, pero tiende a tomar tiempo. Si está haciendo esto por usted mismo, entonces podría anular cualquier ahorro de tiempo que obtenga como consumidor utilizando Chocolatey y el repositorio de la comunidad.

Para las organizaciones, hemos desarrollado Package Builder, que crea implementaciones de software completas (paquetes) en 5-10 segundos. ¡También puede crear paquetes a partir del software instalado existente (Programas y Características) en menos de 60 segundos! Lea más acerca de Package Builder .

Paquetes internalizados - Mejor

Lo mejor que puede hacer aquí es un proceso llamado internalización, en el que descarga y extrae el paquete, descarga todos los recursos y los integra en el paquete (o los coloca en algún lugar local), edite los scripts para usar esos recursos integrados / locales. y recompilar el paquete.

Esto le permite aprovechar la lógica del paquete existente sin el problema de Internet.

Para obtener más información, consulte Internalización manual de paquetes y Internalizador de paquetes: internalice paquetes automáticamente .

Uso de la organización de Chocolatey

La mayoría de las organizaciones que utilizan Chocolatey están haciendo una combinación de crear paquetes e internalizar paquetes, porque necesitan confiabilidad y absoluta confianza y control sobre esos paquetes cuando se usan en escenarios de producción.

Estoy tratando de automatizar para configurar la instalación del software dev machine. Chocolatey es bueno para instalar paquetes cuando te conectas a internet. ¿Hay alguna manera de instalar paquetes sin conexión? Solo quiero poner todos los paquetes en una carpeta de red compartida y usar esos paquetes para instalar. Si tiene alguna aplicación interna, ¿cómo convertirla en un paquete de chocolate? ¿Alguien ha intentado esto antes?


¡Nifty, eso es exactamente lo que estoy haciendo actualmente!

Para lo que vale la pena, para instalar desde una carpeta compartida de red, estoy usando:

choco upgrade eclipse -y -s //network/users/KyleStoflet/Eclipse

Por ejemplo, aquí estoy actualizando eclipse, explicaré un poco más la línea:

-y salta la confirmación

-s proporciona la ruta de origen

network y los users son marcadores de posición para nuestra red y directorios de usuarios.

... y para propósitos de prueba , tengo nuestras versiones en mi directorio. Dentro de ese directorio hay varios directorios para Eclipse, Visual Studio y otros programas que utilizamos para el desarrollo.

Una nota importante: solo he conseguido que esto funcione para los archivos .nupkg que se recuperaron directamente de la página de paquetes de chocolate . No terminé encontrando una solución para los ejecutables.


He creado un proyecto llamado ChocolateStore que automatiza el proceso de copiar un paquete Chocolatey desde una fuente en línea y hacer que el paquete esté disponible para su uso sin conexión.

Puede ver la fuente aquí: https://github.com/BahKoo/ChocolateStore


Los documentos de Chocolatey pueden responder a la primera parte de la pregunta con esto: " Cómo alojar su propio servidor de repositorio de paquetes [privado / interno / público] (también conocido como alimentación de paquete) "

Explica tres tipos de repositorios de paquetes que le permiten proporcionar paquetes en su lan / intranet o a través de volúmenes compartidos:

  1. carpeta / unc share
  2. servidor simple
  3. galería de paquetes

La segunda parte de la pregunta podría responderse con la documentación de Chocolatey sobre la recompilación de paquetes . El título parece más complicado de lo que realmente es, y podría haber sido simplemente "Cómo hacer que un paquete existente sea local" y creo que lo que se describe allí puede aplicarse a lo que el autor de la pregunta llama "aplicaciones internas" (supongo que él significa programas también conocidos como archivos .exe que no están disponibles en ninguna fuente pública).


Ponga el instalador en el directorio de caché:

%TEMP%/chocolatey/<pkg>/<version>

y hacer una instalación forzada:

choco install -f <package_name>

Funcionó bien en mi versión (v0.9.10.3).


Por lo tanto, he creado un instalador de Nullsoft que necesitaba instalar los paquetes de Choco desde una computadora sin conexión. Estos son los pasos generales:

1) Descargar los paquetes de Choco a un directorio temporal con:

NuGet.exe Install some_package_name -OutputDirectory C:/Temp/ChocoPackages -ExcludeVersion

2) En el script de Nullsoft, agregue estas líneas para recoger los paquetes de descarga:

nsExec::Exec ''choco feature disable -n=allowGlobalConfirmation'' SetOutPath "${TmpPath}ChocoPackages" File /r "C:/Temp/ChocoPackages/*.*"

3) Mientras esté en el script de Nullsoft, use este comando para instalar un paquete choco desde el directorio Temp en el que se colocaron los archivos durante el proceso de instalación:

choco install --Source "${TmpPath}ChocoPackages" ${Name_Of_ChocoPackage} --acceptlicense --yes


chocolatey use $ env: TEMP como directorio de caché y el archivo de descarga ubicado en

$env:Temp/chocolatey/Firefox/60.0.2/FirefoxInstall.exe

60.0.2 es la versión del paquete, Firefox es el nombre del paquete.