Skip to content

Uninstall an installed App #121

Closed

Description

As a user I want to be able to use winget to uninstall a package so I don't have to go through the Add/Remove software UX.

Experimental Feature
winget uninstall <package> - uninstalls the specified package.
winget uninstall -? - displays help for the uninstall command.

Note: uninstall depends on list also being enabled.

winget features - displays all experimental features and their status
winget settings - launches settings.json to configure settings like experimental features

Note:
There are limitations about how programs get installed and whether or not that binary supports uninstall. This may also need to be supported in the manifest with new key(s) and or syntax.

Edited: experimental status

Activity

  1. phiresky commented on May 19, 2020

    @phiresky

    This is never going to happen since packages just consist of running random executable files that can do whatever they want. There's no package building step or anything.

    (edit: see also my clarification below)

  2. jedieaston commented on May 19, 2020

    @jedieaston
    Contributor

    Chocolatey (and scoop in certain scenarios) already does it through running the uninstaller that is registered in the control panel, I thought. winget could do a similar thing, although the flags for a silent uninstall would have to be in the manifest somewhere.

  3. michaelvolz commented on May 21, 2020

    @michaelvolz

    IMHO this is basic functionality which is paramount for the success of winget.

  4. Smart123s commented on May 21, 2020

    @Smart123s

    This is never going to happen since packages just consist of running random executable files that can do whatever they want. There's no package building step or anything.

    There could be references to the programs' "uninstaller" executables as well.
    For example, it could launch C:\Program Files (x86)\Steam\uninstall.exe to uninstall Steam.

  5. Karl-WE commented on May 21, 2020

    @Karl-WE
    Contributor

    The uninstaller reference comes with every installation. There are RARE cases of applications that cannot be uninstalled this way but it is doubtful they will be ever accessible / installable via winget.

    Other than that you can clearly uninstall all apps using a WMI call and I have even borrowed a method someone else that is even able to crawl the registry for uninstalling applications by a name or wildcards.

    Without blaming anyone, I certainly support an /u --uninstall switch, which can also be combined with /h --silent

  6. Karl-WE commented on May 21, 2020

    @Karl-WE
    Contributor

    in terms of naming i would not use Winget remove, imho as it is "install" it should be named "uninstall" for ease of use. https://github.com/microsoft/winget-cli/issues/192

  7. changed the title [-]--uninstall[/-] [+]--uninstall Uninstall an installed App[/+] on May 23, 2020
  8. added this to the milestone on May 23, 2020
  9. changed the title [-]--uninstall Uninstall an installed App[/-] [+]Uninstall an installed App[/+] on May 23, 2020
  10. masx200 commented on May 24, 2020

    @masx200

    i support it

  11. phiresky commented on May 24, 2020

    @phiresky

    For clarification about what I meant with my (admittedly flippant) comment above, see these three threads:

    Basically, my point is that since this works by running arbitrary exe files on the host computer, the only thing it can do to uninstall something is run another arbitrary exe, again pulled from 3rd party sources. That exe can do anything, especially not clean up all the crap left by the install process.

    What you expect from package managers (coming from other OSs) is that they build packages that are pretty much just declarative file archives with as little logic as possible, then those are installed with logic defined almost completely on the side of the package manager instead of the to-be-installed app. The logic that comes with the package itself is minimal if it exists at all, runs at specific times with specific functions (preinstall / postinstall / etc) and is declared as readable code (e.g. shell scripts). The package manager or user then can also verify that the package does not do anything weird like copying files to unusual locations or removing other files, or setting up / starting system services. (that's also a job of the package manager).

  12. Karl-WE commented on May 25, 2020

    @Karl-WE
    Contributor

    Yes in fact what you are describing is something like MSI or MSIX / Windows Store that allows an internal uninstall via WinGet while at the moment and forseeable future winget is just the commandline (now also GUI) proxy for this task, but relies on some of the mentioned packagers and installation methods.

  13. Mallchad commented on Jun 3, 2020

    @Mallchad

    I don't understand, if one of the intents of this program is to let allow you to install pre-existing software as well as any packages it may have.
    Is it not possible to run an installer in a kind of sandbox and track installed files?
    Projects such as Nix, GNU Stow and Arch packages ect ect have worked hard to provide similar functionality with streamlines the proccess with the only difference being that almost always programs are explicitly made to interface with this proccess.
    Would it not be possible to achieve similar funcitonality with this?
    There might be some issues with cleaning up files after the installation proccess, but this is a problem that no package manager (that I know of) has solved, and a package manager like this in it's early development could look to solve it, especially since it is official some of this functionality could be facilitated with the kernel.

  14. Caltor commented on Jun 3, 2020

    @Caltor

    This is basic functionality for a package manager really. Without that we have something that is just barely above a powershell script or even a good ol' batch file.

  15. 49 remaining items

  16. Masamune3210 commented on Nov 15, 2021

    @Masamune3210

    If you are getting a error installing something, open a ticket. Things can't get fixed if the devs don't know of the issue

  17. jthoward64 commented on Nov 15, 2021

    @jthoward64

    Demitrius Nelon (@denelon) > We're not trying to replace any of them.

    I'd be... more cautious with that statement. https://keivan.io/the-day-appget-died/

    #353 (comment)

    Last I'll say on the topic

  18. JanPokorny commented on Nov 15, 2021

    @JanPokorny

    Keen Bowl (@keenbowl3009) If you're afraid, don't use winget. Nobody is forcing you. If you want to install PowerShell manually, feel free to go to https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/PowerShell-7.2.0-win-x64.msi and run it yourself, although be aware that you will be doing precisely the same thing as the winget you're afraid of.

    Also there is no error, unless you mean the disambiguation note which happens if you enabled the msstore source and thus have two locations to install PowerShell from.

    image

  19. JanPokorny commented on Nov 15, 2021

    @JanPokorny

    @tajetaje Yeah, I know. I just felt the itch to point this out, due to the statement's wording reminding me of this controversy. (Also did the "something to share" already happen?)

  20. keenbowl3009 commented on Nov 15, 2021

    @keenbowl3009

    Also there is no error, unless you mean the disambiguation note which happens if you enabled the msstore source and thus have two locations to install PowerShell from.

    There is no error.
    Unless, of course, there's an error.
    Then the error is a feature!

  21. keenbowl3009 commented on Nov 15, 2021

    @keenbowl3009

    Keen Bowl (@keenbowl3009) If you're afraid, don't use winget. Nobody is forcing you. If you want to install PowerShell manually, feel free to go to https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/PowerShell-7.2.0-win-x64.msi and run it yourself, although be aware that you will be doing precisely the same thing as the winget you're afraid of.

    Also there is no error, unless you mean the disambiguation note which happens if you enabled the msstore source and thus have two locations to install PowerShell from.

    image

    I have not "enabled" mstore.
    It get's enabled by itself, automatically.
    Absolutely no input on my side.

  22. keenbowl3009 commented on Nov 15, 2021

    @keenbowl3009

    If you are getting a error installing something, open a ticket. Things can't get fixed if the devs don't know of the issue

    Thanks.
    #1711

  23. JanPokorny commented on Nov 15, 2021

    @JanPokorny

    Keen Bowl (@keenbowl3009) Using command line package managers requires a basic degree of computer literacy, including the ability to comprehend bright yellow text in simple English. I am afraid that I can not help you further, sorry.

  24. Masamune3210 commented on Nov 15, 2021

    @Masamune3210

    If you already had a ticket, what was the point other than to scratch the chip on your shoulder you seem to have of bringing it up.
    I'm done. Its obvious you arent acting in good faith and just want to stir up trouble

  25. EqualDust commented on Nov 29, 2021

    @EqualDust

    IMHO it is a dishonest attitude closing this issue since the uninstaller is currently broken and most of the time does not work.

  26. JanPokorny commented on Nov 29, 2021

    @JanPokorny

    EqualDust (@EqualDust) The feature is implemented, that's why this issue is closed. It can certainly be buggy for some uninstallers -- the correct attitude to fix this problem is to report each individual bugged uninstaller.

    Also, stop creating new GitHub accounts, please.

  27. EqualDust commented on Nov 29, 2021

    @EqualDust
  28. Mallchad commented on Nov 29, 2021

    @Mallchad

    Please don't make an ordeal of this,
    the topic of the issue has been resolved, if you have an issue (and I don't doubt you have),
    it is correct to make a new issue.

    This thread is getting long and very noisy now, noisy threads are hard to follow.
    Are you will be bothering people that are still inadvertently following a virtually dead issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

ExperimentalThis experimental feature can be enabled in settingsIssue-FeatureThis is a feature request for the Windows Package Manager client.

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions