7 ms·
... this thing literally just downloads .exe files and then executes them. There's no dependency management. Look at the firefox "package": https://github.com/
by phiresky 6y ago
... this thing literally just downloads .exe files and then executes them. There's no dependency management.
Look at the firefox "package": https://github.com/microsoft/winget-pkgs/blob/master/manifests/Mozilla/Firefox/75.0.yaml https://github.com/microsoft/winget-pkgs/blob/master/manifes...
There isn't even any uninstall functionality.
This is a package manager as much as a piece of cardboard is a swiss army knife.
Even if you say "but it's a preview", there's just no where to go when your starting point is "execute some arbitrary binary". The point of packages is to be declarative as much as possible.
- nojito 6y ago>There isn't even any uninstall functionality. Control Panel --> uninstall apps The issue is with how windows setup exes are designed. Most allow you to uninstall after running the exe again...others do not and leave traces of themselves everywhere. This is a great first step and leads to some automation possibilities when setting up new installs.
- olyjohn 6y agoAs a former SCCM admin, I can tell you that packaging things like this will be a nightmare. Microsoft really needs to revamp the way software is installed on Windows, and make it all work the same way. Putting a wrapper around an MSI or EXE can be a nightmare. I mean, /SILENT is not good enough for many apps to make installers silent, so the switch /VERYSILENT came out. And even then, it's still not standardized, and many programs will still pop up dialogs and kill your automation. And then you'll find that the same package won't run the same depending on what version of Windows, what edition, 32 or 64 bit, etc and the installer will fail. Then when the MSIs aren't built correctly, they will leave you with a detection method that gets hosed when the software auto-updates. So you run your package manager, and it'll detect that your software is no longer installed, because the MSI product code changed for the newer version. I mean we have so many ways to do software on Windows. Let's count them: * MSI * EXE * MSU * AppX * Windows Features * dism * Windows Update * SCCM Deployments Even just open up the "Uninstall Apps" control panel, or the old "Add / Remove Programs" and look how long it takes to load the list. It's pulling from like 20 different places in the registry and various places in the WMI database just to build that list. So when you want to use that as a detection method, good luck...
- GordonS 6y agoI haven't had the misfortune to have to repackage other apps for SCCM, but I have had the misfortune to create MSI installers for several apps. It's horrible. MSI is so complex, and there are constraints, limitations and oddities at every twist and turn. I love Windows for desktops, but my all time favourite item on my wishlist is for Microsoft to completely revamp how software is installed, from scratch, to improve things. I really mean from scratch - I know Microsoft like every new thing they do to be compatible all the way back to Windows 3.1, but no, really, from scratch!
- cm2187 6y agoWell that's what the windows store was meant to do but then they added a pay toll, limited it to apps that could run on a fraction of the machines deployed, so it never took off. But agree, there should be no need to things like docker if apps were sufficiently compartimented and explicit about their requirements.
- cpascal 6y agoI recently went down this path. I discovered the WiX MSI toolkit and it was very smooth. If you ever find yourself needing to create an installer and haven’t used it, give it a look. It can install dependencies, customize the UI, create/start/stop/remove Windows services, configure IIS websites, and run custom actions. It’s all done via declarative XML and made my life much easier.
- fomine3 6y agoWiX is great tool but a bit steep learning curve because it won't abstract MSI spec so I need to learn MSI spec.
- GordonS 6y agoIt is powerful, but the curve is really steep, and it is still subject to the seemingly random, myriad of constraints and limitations - for example, there is a whole class of variables that you can only write to at certain stages in the install process. The last MSI installer I wrote had to install 2 Windows services, write to the registry, grant file system access rights, and install a minifilter driver. There was a lot of swearing, and I was really close to launching my laptop out of a Window several times. It was a very unhappy period of my life, and if I never have to write another MSI installer, it will be too soon.
- wronex 6y agoI think their approach is a very nice start. This way it can be immediately useful. It would risk not getting any use if it was too involved to create new packages. With this approach anyone can create a package. There is nothing stopping them from adding more traditional packages in the future.
- nlawalker 6y agoThis is how Chocolatey works too for most stuff. Most Chocolatey “packages” are config and/or script files that point to the URL of an MSI installer.
- blacksmith_tb 6y agoThough at least it does let you update everything you've installed with it by running a single command, which is one of the nice things about 'proper' package management like apt etc.
- bproven 6y agoUninstall, Deps and other items are on the roadmap here: https://github.com/microsoft/winget-cli/blob/master/doc/windows-package-manager-v1-roadmap.md#v10-scenarios https://github.com/microsoft/winget-cli/blob/master/doc/wind...
- alkonaut 6y agoWould dependency management really make much sense on Windows? Under normal circumstances you share as little as possible. There isn’t a situation where an app needs “library X version Y or greater”. Some runtimes etc is usually all that’s shared.
- r00fus 6y agoHas this changed from the 90s/2000s? I've been on Lin/Mac for the past decade, but back then many libraries (DLLs) required (msxml4.dll, msvbvm50.dll) - note specific versions.
- alkonaut 6y agoTypically that's not a problem any more, no.
- r00fus 6y agoSo is everything statically linked now?
- thrower123 6y agoNo, you just usually ship all of your DLLs and put them next to your exe, if that is in any way possible. It might as well be statically linked...
- Tuna-Fish 6y agoYou can't statically link because of licenses, but your own directory is higher in the dll load path than anywhere else, so you just ship a copy of all the dlls you use. Basically, this is a good way of getting most of the worst features of both dynamic and static linking.
- plorkyeran 6y agoWindows has supported installing multiple versions of the same system library ever since Windows XP via WinSxS. It's been a non-issue for a long time.
- neves 6y agoThis isn't useless. Just the fact that Microsoft decided to make its own package manager is great! With it I can: - rebuild my machine from scratch. I've bought a new machine 2 months ago and still need to install something that I don't have. - know that the packages I'll install have less chance of being malware. - maybe I can install authorized packages myself in my business computer. - automatic updates
- cm2187 6y agoPlease give chocolatey a try. That combined with batch files that sets all my environment right, plus all my data backed up with synology cloudstation means setting up a new machine is a 15 min job. And even if you installed softwares manually, try uninstalling them and re-installing them through chocolatey (usually you don't lose the settings). The ability to update all of your softwares with just one command line is something you quickly get addicted to. I wouldn't wait for this Microsoft version. Until it has thousands of 3rd party packages it will be pretty much useless.
- GordonS 6y ago> Please give chocolatey a try Please don't (see my other comment for a range of reasons why). I find scoop far more reliable than chocolately.
- cm2187 6y agoI don't have an opinion on the respective technical merits, but after a quick glance at the package list, it doesn't come even close. Including "essential" desktop apps like Chrome, Firefox, SQL Management Studio, iTunes, Sysinternals, notepad++, irfanview, azure storage explorer, skype, etc. Because the worst pain the in the ass is not so much to install them all initially but to keep all of those updated over time.
- GordonS 6y agoThe amount of software available has been my only gripe for scoop vs chocolately - but I find scoop superior in every other way. But someone else here mentioned scoop-extras[0], which I hadn't heard of before, and contains over 1,000 apps (including Chrome, Firefox, notepad++, Irfanview, Skype, Sysinternals). [0] https://github.com/lukesampson/scoop-extras https://github.com/lukesampson/scoop-extras
- flohofwoe 6y agoScoop on Windows and Homebrew on Mac are quite similar and they work just fine. I wouldn't call such tools "package managers" but "installation and update managers", they have some functionality overlap with tools like apt or pacman, but in the end they serve a different purpose, installing tools and application on the command line and keeping track of what has been installed.
- Sangeppato 6y agoI'm not 100% sure about Homebrew, but Scoop uses the "portable" installers every time it's possible, trying to put all the files in a well defined position, controlled by Scoop itself. I think that Homebrew (not Cask) does a very similar thing. What this Windows package manager does is running classical installers and there's absolutely no way to know exactly what the installer is going to do. Homebrew Cask follows a similar approach, but thanks to how .app and .pkg work it's actually possible to manage the uninstallation quite well
- runjake 6y agoThese are on the roadmap: https://github.com/microsoft/winget-cli/blob/master/doc/windows-package-manager-v1-roadmap.md https://github.com/microsoft/winget-cli/blob/master/doc/wind...
- kbumsik 6y ago> ... this thing literally just downloads .exe files and then executes them. There's no dependency management. But do snap and flatpak do the same thing?
- contextfree 6y agoThe declarative package format on Windows is MSIX