Windows/Linux version

Feature comparison with Linux version (table)

Version number
The version numbers of the Windows and Linux versions of Zero Install are loosely coupled. If the first two components of the version number are the same (e.g. 2.1 and 2.1.3) they generally support the same features.

Shared settings
See also: Storage locations
The Windows version and the Linux version mostly use the same formats for settings files and caches. However, due to some limitations of the Windows filesystem they are not directly interchangeable.

~/.config/0install.net/injector/interfaces on Linux contains file names with colons in them. In the Windows counterpart %appdata%\0install.net\injector\interfaces these are encoded as %3a.

When extracting implementations symlinks and executable-bits are preserved and incorporated into the checksums. Since these data cannot be directly stored in the filesystem on Windows they are placed in additional files (.symlink and .xbit) instead.

Command-line differences
These commands are only available in the Windows version far:
0install update-all/integrate/repair-apps/sync/self-update

0launch --no-wait
On *nix systems Zero Install replaces itself with the application it launches using exec(). Since there is no direct exec() equivalent on Windows Zero Install launches a child process and waits for it to exit. This Windows-only command-line argument causes Zero Install to return immediately instead without waiting for the child to exit.

* --dry-run
Not implemented in the Windows version.

* --console
The Windows version uses separate executables for console and GUI mode instead of a command-line argument.

Other differences

  • Use NTFS ACLs instead of POSIX octets to make implementation directories read-only.
  • Since there is usually no tar, unzip, etc. in the PATH on Windows systems provide in-process extraction code for all supported archive formats.
  • Parse Unix-style $ENVIRONMENT_VARIABLES in feeds since %WINDOWS% would not understand them.
  • Create binaries instead of shell scripts for <executable-in-*> bindings and 0alias.

Running Windows version on Linux
Although the Windows version of Zero Install is primarily intended to be be used on Windows NT-based operating systems, it is written with cross-platform support in mind and works on Linux using Mono.
Currently only the command-line components can be expected to work reliably on non-Windows systems. The WinForms implementations have a non-native look and feel and may behave incorrectly.