microsoft / winget-cli

WinGet is the Windows Package Manager. This project includes a CLI (Command Line Interface), PowerShell modules, and a COM (Component Object Model) API (Application Programming Interface).
https://learn.microsoft.com/windows/package-manager/
MIT License
23.35k stars 1.45k forks source link

NASM is not detected after installation #2453

Open Stadly opened 2 years ago

Stadly commented 2 years ago

Brief description of your issue

After installing NASM, it is not detected by winget list, and cannot be uninstalled by winget uninstall.

Steps to reproduce

  1. winget install -e --id NASM.NASM
  2. winget list -e --id NASM.NASM
  3. winget uninstall -e --id NASM.NASM

Expected behavior

  1. NASM is installed
  2. NASM is detected
  3. NASM is uninstalled

Actual behavior

  1. NASM is installed
  2. No installed package found matching input criteria.
  3. No installed package found matching input criteria.

Environment

Windows Package Manager v1.3.2091
Copyright (c) Microsoft Corporation. All rights reserved.

Windows: Windows.Desktop v10.0.22000.795
System Architecture: X64
Package: Microsoft.DesktopAppInstaller v1.18.2091.0

Logs: %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir

Links
---------------------------------------------------------------------------
Privacy Statement   https://aka.ms/winget-privacy
License Agreement   https://aka.ms/winget-license
Third Party Notices https://aka.ms/winget-3rdPartyNotice
Homepage            https://aka.ms/winget
Windows Store Terms https://www.microsoft.com/en-us/storedocs/terms-of-sale
Trenly commented 2 years ago

This is actually an issue with NASM itself. When the publishers created the installer for NASM, they are not setting any Registry Entries in the Add & Remove Programs table. In other words, the NASM installer isn't registering that it has installed NASM. This isn't something that winget can do, since it is up to the publishers to register the components they install as part of their program.

I would recommend filing a bug report with the publishers of NASM and asking them to set the DisplayName, DisplayVersion, and Publisher registry keys when they install NASM. It should be very simple for them to do as they are using Nullsoft Installer System to compile their installer

Stadly commented 2 years ago

Thanks for the detailed explanation! How can I contact the publishers? On the Chocolatey page they have a link to "Contact Maintainers", but I couldn't find such a thing on the winget page.

denelon commented 2 years ago

I'm not a Chocolatey expert, but I believe the maintainers would be the maintainers of the Chocolatey package which might not be the publisher. The WinGet community repository has a slightly different model where there aren't specific maintainers for the manifests. You may be able to use the package metadata to find a website which could lead to a contact page.

winget show nasm displays https://www.nasm.us/

iamnotaskynet commented 4 months ago

@Stadly I had the same issue with Rscript.exe, so issue is that it doesn't add executables to environment variables. Temporary powershell session fix (this path works for me, I hope you too):

$env:Path += ';C:\Users\{USERNAME}\AppData\Local\bin\NASM'

Or permanently with this kind of instructions: Control panel -> System -> About -> Advanced System Settings -> Environment Variables And add it to Path variable.

And again, here is powershell permanently instructions: Set-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH -Value $env:Path

But do it very carefully.

I hope this can help somebody, since it almost 2 years from original Issue