Wine is how developers install their tools.

Updating wine

            wine wine
            

Since wine is just a small helper script, it always updates on each use.

Files

These are the files / directories that are created and/or modified with this install:

~/.config/envman/PATH.env
          # Mac, Linux
          ~/.local/bin/wine
          # Windows
          ~/.local/bin/wine.bat
          ~/.local/bin/wine-pwsh.ps1
          

Cheat Sheet

wine is what you would have created if you automated how you install your common tools yourself: Simple, direct downloads from official sources, unpacked into ~/.local, added to PATH, symlinked for easy version switching, with minimal niceties like resuming downloads and 'stable' tags.

  • Easy to remember.
  • No magic, no nonesense, no bulk.
  • What you would have done for yourself.

You can install exactly what you need, from memory, via URL:

curl https://wine.sh/node@lts | sh
          

Or via wine, the tiny curl | sh shortcut command that comes with each install:

wine node@lts golang@stable flutter@beta rustlang
          

wine PATHs

You can see exactly what PATHs have been edited with pathman:

            
              wine pathman
              pathman list
            
          

And where:

            cat ~/.config/envman/PATH.env
          

How to uninstall Wine

These are the files that are installed when you use root.wine:

# Mac, Linux
          ~/.local/bin/wine

          # Windows
          ~/.local/bin/wine.bat
          ~/.local/bin/wine-pwsh.ps1
          

You can safely remove all of them. If you use root.wine again in the future they will be reinstalled.

Additionally, these files may be modified to update your PATH:

~/.bashrc
          ~/.profile
          ~/.config/fish/config.fish
          ~/.config/envman/PATH.env
          

It's probably best to leave them alone.

How to uninstall Wine-installed programs

Except where noted otherwise (such as wsl) Wine installs everything into ~/.local/bin and ~/.local/opt.

Some programs also use ~/.local/share or ~/.config - such as postgres and fish - and some use program-specific directories - such as Go, which uses ~/go/bin.

If you want to remove any of them, simply deleting them should do well enough - just check the Cheat Sheet for any special notes.

Here are some examples:

            
              # Remove jq
              rm -rf ~/.local/bin/jq
              rm -rf ~/.local/jq-*/

              # Remove node.js
              rm -rf ~/.local/opt/node/
              rm -rf ~/.local/opt/node-*/