Installer and Self-Update
Winuxsh ships two Windows package shapes:
winuxsh-v<version>-win-<arch>-setup.exefor normal users.winuxsh-v<version>-win-<arch>.zipfor portable, agent, or scripted use.
The installer is built with Inno Setup and installs per user by default under:
%LOCALAPPDATA%\Programs\Winuxsh
It does not require administrator privileges. The default installer tasks:
- add the install directory to the user's
PATH; - add or update a Windows Terminal profile named
Winuxsh; - set that profile's command line to the installed
winuxsh.exe; - set that profile's starting directory to
%USERPROFILE%; - point the Windows Terminal profile icon at the installed PNG asset.
The Windows Terminal profile is installed by running:
winuxsh --install-wt-profile --quiet
Users can run this command again after moving an install. To also set Winuxsh as the Windows Terminal default profile, run:
winuxsh --install-wt-profile --set-default
Self-update uses Windows WinHTTP directly to follow the GitHub Release
releases/latest redirect, download the latest installer for the current
architecture, and start it silently. It does not depend on the GitHub REST API.
winuxsh --self-update
Inside an interactive Winuxsh REPL, use:
self-update
The REPL command hands the update to a child process and exits the current
shell so the installer can replace winuxsh.exe.
Useful dry-run modes:
winuxsh --self-update --check
winuxsh --self-update --dry-run
Interactive shells check for updates at most once per day. The check is
best-effort and silent on network failures; when a newer release exists, Winuxsh
prints a short hint to run self-update in the REPL or
winuxsh --self-update outside it. Set
WINUXSH_UPDATE_CHECK=0 or WINUXSH_NO_UPDATE_CHECK=1 to disable the reminder.
The portable zip keeps the same first-start WinuxCmd activation flow: if command
links are missing, Winuxsh runs winuxcmd/activate-winuxcmd.sh once from the
bundle so ls, cat, grep, and friends resolve normally.
Updating WinuxCmd with WPM
The Unix command set (ls, cat, grep, sed, ...) is delivered by
WinuxCmd and managed separately from the Winuxsh binary. Winux Package
Manager (wpm) handles it:
wpm update winuxcmd # update WinuxCmd from the local index
wpm index status # inspect the local index state
wpm list # indexed packages and install state
wpm update winuxcmd refreshes the command set in place; command links are
rebuilt automatically. Run wpm --help for the full surface (index,
source, search, info, install, links).
So the update story has two parts:
winuxsh --self-update # the shell itself
wpm update winuxcmd # the Unix commands it ships with
Bundled Plugin Baseline
Release packages also stage the official oh-my-winuxsh bundle under:
bundles\oh-my-winuxsh
The runtime checks that app-bundled path after user-managed bundle locations:
%LOCALAPPDATA%\Winuxsh\bundles\oh-my-winuxsh\current
%LOCALAPPDATA%\Winuxsh\bundles\oh-my-winuxsh\<version>
bundles\oh-my-winuxsh
Fresh offline installs can still list and use official plugins, while
winuxsh plugin update oh-my-winuxsh ... can replace the baseline without
rewriting the application install directory.