{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreic3ew4mutmxdqrw5aeodccg6bc545uog7wwlgfp23pirchheaugpy",
"uri": "at://did:plc:nag2oldw2cdjruz3dtaxj52d/app.bsky.feed.post/3mjshkn6grav2"
},
"path": "/en/blog/2026/gestores-de-paquetes-en-windows/",
"publishedAt": "2026-04-17T05:00:00.000Z",
"site": "https://www.cosmoscalibur.com",
"tags": [
"WinGet",
"Chocolatey",
"Scoop",
"WinGet Official Documentation",
"Scoop.sh",
"Chocolatey Software",
"Allow mklink for a non-admin user"
],
"textContent": "Historically, Windows hasn’t been the most developer-friendly operating system when it comes to installing software quickly and centrally. For years, the default workflow was finding an `.exe` or `.msi` on a website, downloading it, and clicking through a setup wizard. Today, however, the ecosystem has matured. We now have solid options: WinGet, Microsoft’s official package manager, and community-driven alternatives like Chocolatey and Scoop.\n\nInstalling software on Windows from the terminal: Scoop and WinGet as primary package managers.\n\n## Comparison\n\nTo get the most out of these tools, it’s important to understand their key differences:\n\n * Both WinGet and Chocolatey require administrator permissions, as they install software globally (for all users). Scoop, on the other hand, installs in user space (`~/scoop`) and requires no elevated privileges.\n\n * Chocolatey and Scoop require enabling PowerShell script execution; WinGet does not, since it is native to the system.\n\n * WinGet and Chocolatey include third-party software that may not be open source, while Scoop focuses exclusively on open-source software and development tools.\n\n * Scoop avoids popup interactions, enabling silent, unattended installation.\n\n\n\n\n### Which one to choose?\n\n * **WinGet:** Best for Microsoft software or anything that needs deep system integration (registry entries, Start Menu, file type associations).\n\n * **Chocolatey:** Suited for third-party software with a wide catalog:\n\n choco install <package>\n\nHowever, if most of your tools are open source or development-focused, Chocolatey adds little over Scoop—and still requires admin rights—so it falls outside my usual workflow.\n\n * **Scoop:** The natural choice for open-source software and development tools. It will feel familiar if you are coming from Linux or macOS.\n\n\n\n\nMost of the tools I use daily are open source and development-oriented, so **Scoop** covers the vast majority. For the rest, I rely on **WinGet**.\n\n## Working with Scoop\n\nTo install Scoop, run the following in PowerShell:\n\n\n Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression\n\nScoop organizes software into “buckets” (repositories). The main bucket is available right after installation, but you can add others as needed. Essential commands:\n\n\n # Install packages scoop install 7zip git # Search for a package scoop search <name> # List installed apps and check update status scoop list scoop status # Update everything scoop update *\n\n## Why I Also Use WinGet\n\nEven though Scoop is my primary tool, there are specific cases where WinGet is the right choice:\n\n * **LibreOffice:** WinGet registers it in the system as a file-type handler (`.odt`, `.ods`, etc.), which Scoop intentionally skips to avoid touching global registry entries.\n\n * **Zed:** Zed’s built-in auto-update works correctly when installed via WinGet. Installed through Scoop, Zed updates itself to the system’s default path, ignoring Scoop’s directory structure, which removes the managed executable and makes the editor impossible to launch.\n\n * **zoxide:** The developer explicitly recommends installing it via WinGet on Windows.\n\n\n\n\nTo update everything installed through WinGet:\n\n\n winget upgrade --all\n\n## Pinning Versions\n\nSome software is better left unpinned from automatic updates: Teams, OneDrive, Visual Studio Community, and Microsoft Visual C++ redistributables are typical examples, since their updates can break dependencies or work environments. In WinGet, use `pin`:\n\n\n # List pinned packages winget pin list # Pin to the current version winget pin add --id Microsoft.Teams # Pin to a specific version winget pin add --id Microsoft.Teams --version 1.2.3 # Block all updates winget pin add --id Microsoft.Teams --blocking\n\nNota\n\nWhen running `winget upgrade --all`, pinned packages are skipped. To explicitly include them, use `winget upgrade --all --include-pinned`.\n\nIn Scoop, the equivalent is `hold`:\n\n\n scoop hold <app> scoop unhold <app>\n\n## Tips for Developers\n\n### Windows Developer Mode\n\nEnable it under _Settings > Privacy & security > For developers_. This allows tools like Scoop to create symbolic links (`mklink`) without administrator permissions, which is required for Scoop to manage its internal structure correctly.\n\n### PowerShell Profiles\n\nThe profile for Windows PowerShell (v5.1) and PowerShell Core (v7+) are located in different paths:\n\n * Windows PowerShell (v5.1): `%USERPROFILE%\\Documents\\WindowsPowerShell\\Microsoft.PowerShell_profile.ps1`\n\n * PowerShell Core (v7+): `%USERPROFILE%\\Documents\\PowerShell\\Microsoft.PowerShell_profile.ps1`\n\n\n\n\nIf you customize aliases, functions, or initialize tools like zoxide, make sure to configure both profiles.\n\n## Conclusion\n\nMy usual workflow is: **Scoop** for CLI tools and open-source software, and **WinGet** for GUI applications that need system integration or when the project itself recommends it. Chocolatey stays out of the picture because Scoop already covers everything I need in that category—without the extra admin requirements.\n\n## References\n\n * WinGet Official Documentation. Microsoft.\n\n * Scoop.sh. Community.\n\n * Chocolatey Software. Chocolatey Software, Inc.\n\n * Allow mklink for a non-admin user. Stack Overflow.\n\n\n",
"title": "Package Managers on Windows",
"updatedAt": "2026-04-17T05:00:00.000Z"
}