Skip to content

Scoop

Scoop is a command-line installer for Windows and functions as a package management tool analogous to those used in Linux environments.^[400-devops-02-os-and-linux-basics-windows-scoop.md, 400-devops__02-OS-and-Linux-Basics__windows__scoop.md] It is designed to operate within [[PowerShell]], allowing users to install software without requiring administrator privileges.^[400-devops-02-os-and-linux-basics-windows-scoop.md, 400-devops__02-OS-and-Linux-Basics__windows__scoop.md]

Installation

To install Scoop, it is recommended to use [[PowerShell]] 7.^[400-devops-02-os-and-linux-basics-windows-scoop.md, 400-devops__02-OS-and-Linux-Basics__windows__scoop.md] The official installation script can be executed using the following command:

Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')

Once executed, the script initializes the environment, downloads necessary components, extracts them, creates "Shims" for command execution, and adds the Scoop shim directory to the system path.^[400-devops-02-os-and-linux-basics-windows-scoop.md, 400-devops__02-OS-and-Linux-Basics__windows__scoop.md]

Design Philosophy

Scoop differentiates itself from other installation methods by its default installation location. It installs programs into the user's home directory rather than system-wide directories like Program Files.^[400-devops-02-os-and-linux-basics-windows-scoop.md, 400-devops__02-OS-and-Linux-Basics__windows__scoop.md] This architecture offers several advantages:

  • Non-Admin Execution: Users can install or remove software without needing administrator rights.^[400-devops-02-os-and-linux-basics-windows-scoop.md, 400-devops__02-OS-and-Linux-Basics__windows__scoop.md]
  • No UAC Prompts: Because installations are user-specific, they do not trigger User Account Control (UAC) pop-up windows.^[400-devops-02-os-and-linux-basics-windows-scoop.md, 400-devops__02-OS-and-Linux-Basics__windows__scoop.md]

Usage and Concepts

Shims

Scoop uses "Shims" to manage command execution. These small files placed in the ~\scoop\shims directory act as intermediaries that point to the actual executable binaries of installed applications.^[400-devops-02-os-and-linux-basics-windows-scoop.md, 400-devops__02-OS-and-Linux-Basics__windows__scoop.md] This mechanism allows applications to be run from the command line without manually modifying the system's PATH environment variable for every application.^[400-devops-02-os-and-linux-basics-windows-scoop.md, 400-devops__02-OS-and-Linux-Basics__windows__scoop.md]

Buckets

Scoop organizes available software packages into repositories known as "buckets."^[400-devops-02-os-and-linux-basics-windows-scoop.md, 400-devops__02-OS-and-Linux-Basics__windows__scoop.md] While a main bucket exists, users can add specialized buckets to access specific software collections.

Version Switching

Scoop provides a mechanism to manage multiple versions of the same software simultaneously. Users can switch the active version using the scoop reset command, which updates the symbolic links to point to the desired version.^[400-devops-02-os-and-linux-basics-windows-scoop.md, 400-devops__02-OS-and-Linux-Basics__windows__scoop.md]

Example Workflow: Java Development

A common use case for Scoop is managing Java Development Kits (JDKs).^[400-devops-02-os-and-linux-basics-windows-scoop.md, 400-devops__02-OS-and-Linux-Basics__windows__scoop.md]

  1. Add the Java Bucket: scoop bucket add java
  2. Install Versions:
    • scoop install openjdk17
    • scoop install openjdk11
  3. Switch Active Version: scoop reset openjdk11

After running the reset command, commands like java -version will reflect the selected version (e.g., OpenJDK 11).^[400-devops-02-os-and-linux-basics-windows-scoop.md, 400-devops__02-OS-and-Linux-Basics__windows__scoop.md]

Sources

  • 400-devops-02-os-and-linux-basics-windows-scoop.md
  • 400-devops__02-OS-and-Linux-Basics__windows__scoop.md