Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support installing .zip files #140

Closed
denelon opened this issue May 14, 2020 · 161 comments · Fixed by #2500
Closed

Support installing .zip files #140

denelon opened this issue May 14, 2020 · 161 comments · Fixed by #2500
Labels
Issue-Feature This is a feature request for the Windows Package Manager client.
Milestone

Comments

@denelon
Copy link
Contributor

denelon commented May 14, 2020

I want to be able to have winget install apps inside of .zip files.

Related to:

Proposed technical implementation details (optional)

@denelon denelon added the Issue-Feature This is a feature request for the Windows Package Manager client. label May 14, 2020
@denelon denelon added this to the Package Manager Backlog milestone May 14, 2020
@markrussinovich
Copy link

This would enable Winget to support all the Sysinternals tools.

@aclinick-zz
Copy link
Contributor

aclinick-zz commented May 14, 2020

What would we want to happen here? specify in the yaml where we want the folder to be unzipped to? Or ask the user where to unzip to?

@denelon
Copy link
Contributor Author

denelon commented May 16, 2020

@bitcrazed
Copy link

@aclinick - Installing ZIP files could also help support the very long tail of stand-alone and other common tools & utilities, esp. command-line tools like curl, and others that are distributed via ZIP.

Have reached-out to curl re. signing their tools and building an MSI/MSIX.

@utybo
Copy link

utybo commented May 19, 2020

This would be great! Gradle has always required a package manager on Windows (I'm currently using it with Scoop) and having it on winget would be fantastic, but it's a .zip file.

Also, wouldn't zip files (and standalone .exe apps) require some more complicated setup steps that would have to be described in winget's YAML file? e.g. adding things to PATH, creating a desktop link, creating a Start menu entry etc.

@zuozishi
Copy link

This would be great! Gradle has always required a package manager on Windows (I'm currently using it with Scoop) and having it on winget would be fantastic, but it's a .zip file.

Also, wouldn't zip files (and standalone .exe apps) require some more complicated setup steps that would have to be described in winget's YAML file? e.g. adding things to PATH, creating a desktop link, creating a Start menu entry etc.

And environment variable.

@DennisGaida
Copy link

DennisGaida commented May 20, 2020

I think there should be a default Apps folder maybe within the %USERPROFILE%. Unzipped zips should be per default copied there maybe within a subfolder. The same may also happen for PowerShell Scripts (PS1) and EXEs. An additional parameter may choose another folder where the package is copied to.

@pedrolamas
Copy link

I was about to create a manifest for Paint.net when I noticed that .zip is not supported... yet! 🙂

@pashagolub
Copy link

A lot of .msi installers are packed into .zip files because you cannot execute .msi downloaded from internet. ;-)

I wanted to add PostgreSQL support, but lack of zip extraction is a problem here.

@maxandersen
Copy link

related to microsoft/winget-pkgs#580

Right now Winget can't be used to package/install anything without complex installers.

@chausner
Copy link
Contributor

I think there are actually two issues or requests related to ZIP:

  1. Support software that is provided as ZIP archives for plain xcopy deployment
  2. Support installers (MSI, EXE, etc.) that are made available for download in a ZIP file (e.g. https://mh-nexus.de/de/downloads.php?product=HxD20)

@timsneath
Copy link

@aclinick, ideally it would be a) unzip a ZIP file; b) (optionally) run a batch file script to perform some configuration. Would be reasonable if there's also an uninstall script that reverses the latter.

We'd use this for installing Dart and Flutter on Windows.

@marypcbuk
Copy link

I'd suggest ZIP support with a parameter to install to either Program Files or a specified location given in the command

@shayvt
Copy link

shayvt commented May 21, 2020

If we have a solution that works for everybody (Scoop), why trying to duplicate it?

@KevinMarquette
Copy link

KevinMarquette commented May 22, 2020

@aclinick, ideally it would be a) unzip a ZIP file; b) (optionally) run a batch file script to perform some configuration. Would be reasonable if there's also an uninstall script that reverses the latter.

Having your PowerShell scripts in the zip to be executed opens up a lot of options to universally install anything. PowerShell can be used to fill any gaps that WinGet has not covered yet. Every one of my custom Chocolatey packages is basically a folder full of files with an install.ps1.

A good example is something like #166 where someone needs to install fonts.

@tap52384
Copy link

Adobe Creative Cloud is another example of an installer inside a zip file:
https://ccmdl.adobe.com/AdobeProducts/KCCC/CCD/5_1/win64/ACCCx5_1_0_407.zip

This seems like the installer that supports silent installation, not the smaller one that requires an internet connection.

It seems that "tar.exe" is a part of Windows 10, so this could be really useful.

@bitcrazed
Copy link

@tap52384 😲

@benc-uk
Copy link

benc-uk commented May 22, 2020

I think we need to support installing standalone binary only tools like kubectl where you typically just download a exe and put into your path. That leads to the question where in path to put it?

This is how a lot of modern developer tools are distributed

@ElSrJuez
Copy link

Or... post an issue on @Sysinternals to publish their packages as MSIX?

@WtfJoke
Copy link

WtfJoke commented May 22, 2020

Or... post an issue on @Sysinternals to publish their packages as MSIX?

There are ton of tools which doesnt need an installer, sysinternals is just one of them.

You download an exe add it to path and thats it. I usually preferr them, no hastle at all. And should be easy to implement for winget too.

Curl, minkube, github cli, putty, or all sysinternals tool as you mentioned. Or any go executable/programm... even adoptopenjdk would offer a api for downloading zip.

@shayvt
Copy link

shayvt commented May 22, 2020

Or... post an issue on @Sysinternals to publish their packages as MSIX?

There are ton of tools which doesnt need an installer, sysinternals is just one of them.

You download an exe add it to path and thats it. I usually preferr them, no hastle at all. And should be easy to implement for winget too.

Curl, minkube, github cli, putty, or all sysinternals tool as you mentioned. Or any go executable/programm... even adoptopenjdk would offer a api for downloading zip.

That's exactly what you have in scoop - extracts the zip file and creates a shim to the exe. Shims folder is in the path.

We can use scoop and winget in parallel, or take the functionality from scoop and add it to winget if we want the whole solution in one place.

@UzEE
Copy link

UzEE commented May 22, 2020

+1 for adding the ability to execute a .ps1 or .bat script after extracting a ZIP file. Ideally, this should be a file that may not be included in the original package. This should allow us to work with most types of packages distributed as ZIP files.

For example, MSI Afterburner setup is distributed in a ZIP file. Ideally, we should be able to include the script along with the manifest in winget-pkgs as well.

@ghost ghost added Resolution-Fix-Committed and removed In-PR Issue related to a PR labels Sep 27, 2022
@RokeJulianLockhart
Copy link

Should microsoft/winget-cli-restsource#117 be closed?

@rollingmoai
Copy link

rollingmoai commented Feb 1, 2023

Winget has to support other archive formats as well and not just .zip. See #2899

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Issue-Feature This is a feature request for the Windows Package Manager client.
Projects
None yet
Development

Successfully merging a pull request may close this issue.