Internalisation de Chocolatey

Internalisation de Chocolatey - Logiciels - Windows & Software

Marsh Posté le 12-07-2024 à 15:49:39    

Bonjour à tous,
 
Dans l'optique de maitriser toutes les sources utilisé par Chocolatey, je cherche à internaliser la solution
Donc héberger en interne les packages ET les exécutables, Chocolatey a assez bien documenté cette possibilité mais je bloque pour autant
 
J'ai créé un serveur local qui héberge les packages que j'ai édité pour qu'ils pointent sur un emplacement réseau local
Mais lorsque je tente de mettre à jour une application, Chocolatey télécharge bien le package depuis mon serveur mais il va quand même chercher l'exécutable sur internet
 
Comment fait-il pour aller le chercher sur internet vu qu'il n'y en a aucun lien dans mes packages  :fou:  
 
Y-a-t-il des gens qui connaissent bien la solution par ici qui pourrait m'aider ?
 
Merci pour vos retour

Reply

Marsh Posté le 12-07-2024 à 15:49:39   

Reply

Marsh Posté le 12-07-2024 à 16:03:24    

Ton package mis à jour tu as bien mis à jour le lien pour faire pointer sur ton emplacement local ?
 

Citation :

Internalizing a Chocolatey package at a high level involves:
 
    Downloading and unpacking the existing package as a zip file.
    Downloading the resources the package has and putting them in the package or somewhere internal (UNC, internal Http repository, DFS, SCCM Distribution point, etc).
   Editing the install script to point to the internal/embedded software.
    Packaging it back up (recompiling).
    Pushing it to your internal server.
    And that’s it!

Reply

Marsh Posté le 15-07-2024 à 12:10:48    

Oui j'ai bien édité le fichier chocolateyInstall.ps1 du package pour y mettre mon emplacement local
Je fais mes tests avec une ancienne version de Libre Office :
 

Code :
  1. $ErrorActionPreference = 'Stop'
  2. $toolsDir = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
  3. . $toolsDir\helpers.ps1
  4. $packageArgs = @{
  5.   packageName            = 'libreoffice-still'
  6.   version                = '7.6.6'
  7.   fileType               = 'msi'
  8.   url                    = 'file://***/Choco/LibreOffice_7.6.6_Win_x86-64.msi'
  9.   url64bit               = 'file://***/Choco/LibreOffice_7.6.6_Win_x86-64.msi'
  10.   checksum               = '80243cc35151e03fde57650e63aa6a62174af1ff6f9ebb520d1070641b770a0d'
  11.   checksum64             = '6570eb9362fa56dee557400d6b90967f18a5c442b4807dd5a56747ff760ae1bb'
  12.   checksumType           = 'sha256'
  13.   checksumType64         = 'sha256'
  14.   silentArgs             = '/qn /passive /norestart /l*v "{0}"' -f "$($env:TEMP)\$($env:ChocolateyPackageName).$($env:ChocolateyPackageVersion).MsiInstall.log"
  15.   validExitCodes         = @(0,3010)
  16.   softwareName           = 'LibreOffice*'
  17. }
  18. if (-not (IsUrlValid $packageArgs.url)) {
  19.   $exactVersion = GetLibOExactVersion $packageArgs.version
  20.   $packageArgs.url = $exactVersion.Url32
  21.   $packageArgs.url64bit = $exactVersion.Url64
  22. }
  23. Install-ChocolateyPackage @packageArgs


 
J'ai essayé également en écrivant ainsi  

Code :
  1. url64bit               = '\\***\Choco\LibreOffice_7.6.6_Win_x86-64.msi'


 
Mais même si j'ai mal écrit le chemin qui fait office de dépot de l'exécutable il devrait m'afficher une erreur et pas aller chercher sur internet l'exécutable
Sachant qu'il va chercher l'exécutable de la version exacte de mon package, j'ai aucune idée d'où il récupère cette URL
 
Je n'ai pas essayé d'intégrer l'exécutable au package vu qu'ils déconseillent de le faire si l'exécutable fait plus de 100Mo, ce qui est le cas...

Reply

Marsh Posté le 15-07-2024 à 12:17:08    

ton packet est en cache et il utilise pas celui que tu as généré ?

Reply

Marsh Posté le 15-07-2024 à 14:34:01    

Pas de souci sur le cache du package, j'avais déjà remarqué ce point lorsque j'avais fait des changements sur l'écriture dans l'URL entre "\\" et "file://"
 
Mais du coup je viens de faire un test sur un poste clean et j'ai des blocages sur la récupération de dépendance liée à l'exécutable que je n'avais pas encore eu
Il y a peu être autre chose en cache qui provoque la récupération sur internet, je vais continuer mes tests sur le poste clean (là ou j'aurais dû commencer en fait :x )

Reply

Marsh Posté le 23-07-2024 à 11:00:14    

Petit retour après mes différents tests
 
tout fonctionne bien !
 
Libre Office n'était pas le package le plus simple pour commencer la démarche
J'ai pris d'autres packages avec lesquels je n'ai pas eu de souci.
 
La solution pour Libre Office, il fallait retirer les lignes suivantes du package

Code :
  1. if (-not (IsUrlValid $packageArgs.url)) {
  2.   $exactVersion = GetLibOExactVersion $packageArgs.version
  3.   $packageArgs.url = $exactVersion.Url32
  4.   $packageArgs.url64bit = $exactVersion.Url64
  5. }


 
ça lui faisait aller voir dans un autre fichier qui lui contenait les URLs
 
Merci pour les échanges (qui même étant très basique au final, m'ont permis d'avancer dans ma réflexion)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed