Welcome to the Inedo Forums! Check out the Forums Guide for help getting started.

If you are experiencing any issues with the forum software, please visit the Contact Form on our website and let us know!

[ProGet 5.1.17 (Build 4) Linux] A Powershell package gets a wrong version number when pulled from PS Gallery, if published from a machine, cannot be installed, seems corrupt



  • Hi,

    I'm trying out Linux version of ProGet - 5.1.17 (Build 4) on a Debian VM on Proxmox. ProGet is deployed using Ansible with a simple role, following the official guide.

    I've created a test PowerShell feed, "modules-test" and a connector to PS Gallery. When I pull in SqlServerDsc 12.1.0.0 module (the latest), it gets version number 12.1.0 and is not installed correctly - it does install, but the version folder is named "12.1.0", so Import-Module and related cmdlets do not find it.

    We have a Windows version of ProGet (4.8.8 (Build 2)) running on another VM and that one does not have the above problem.

    I've tried pulling SqlServerDsc module from our Windows instance into our Linux instance and also publishing the installed module from my machine.

    In both cases, the module gets the correct version number, but when I try to install the module from our Linux instance, I get a warning: "WARNING: Package 'SqlServerDsc' failed to be installed because: End of Central Directory record could not be found."

    I've tried pulling in a different module, SqlServer v21.1.18068. That one gets pulled in to the Linux instance correctly, but when I try to install it, I get the same warning.

    Both modules (pulled from PS Gallery) install fine when installed off our Windows ProGet instance.

    I've tried re-deploying the Linux version on another Proxmox host machine, but I'm seeing the same error.

    Kind regards,
    Marko

    Product: ProGet
    Version: 5.1.17


  • inedo-engineer

    Hello Marko,

    The SqlServerDsc package's manual download gives me a version number matching the one in ProGet (without the extra .0).

    I will investigate the "central directory" error. It seems like it may be caused by another error while ProGet is serving the file.

    I'm going to guess this is related to ProGet's symbol handing code. If you don't need symbol stripping, disabling it on the Linux NuGet feed might be a good workaround.

    Update: I was not able to reproduce this with the latest ProGet Docker version (5.1.22). It may have been fixed by some other change.



  • Hi Ben,

    Thank you for looking into this.

    I'm not getting the "End of Central Directory" error with the latest ProGet on Linux, either.

    However, I still have the same problem with SqlServerDsc module version. When I add the PowerShell Gallery connector to my modules' feed, I see the latest version listed as 12.3.0.0. When I pull the module into ProGet, it gets listed as 12.3.0. If I install it from the ProGet feed, it gets installed as 12.3.0, but the module's .PSD file specifies the version as 12.3.0.0, so the module is not listed when running "Get-Module SqlServerDsc -ListAvailable" command.

    If I install the module to my machine directly from PowerShell Gallery it gets installed as 12.3.0.0. If I then publish the installed module to my ProGet server, it get the correct version, 12.3.0.0.

    My guess is that there's a bug in ProGet's package pull process somewhere...

    Kind regards,
    Marko


  • inedo-engineer

    This is also being discussed here; long story short, this is a bug in Microsoft's PowerShell Gallery (and in the packages) in that they have two conflicting version numbers, and sometimes one is used, sometimes the other is used.

    The docs have been updated for now: https://github.com/Inedo/inedo-docs/commit/10c42c3ad546ac2feb4748b7736db06567c7a6d6



Inedo Website HomeSupport HomeCode of ConductForums GuideDocumentation