Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using a local clone.

Install.sh script

Introduction

The dlang.org/install.sh script is the official D version manager for DMD, GDC and LDC on FreeBSD, Linux and macOS. It provides a convenient way to fetch and install a D compiler without requiring administrative privileges nor external dependencies. Its features include:

Content

Downloading the installer

mkdir -p ~/dlang && wget https://dlang.org/install.sh -O ~/dlang/install.sh
Alternatively, the script can be invoked directly:
curl https://dlang.org/install.sh | bash -s

If no arguments are provided, the latest DMD compiler will be installed.

The installer also makes a copy of itself at ~/dlang/install.sh.

Usage

~/dlang/install.sh [<command>] [<args>]

Global options

-p --path
Changes the install location (default ~/dlang)
-v
Activates more verbose output
-h
Displays a help page

Install

~/dlang/install.sh install <compiler>
Download and install a D compiler. By default the latest release of the DMD compiler is selected.

Options

-a --active
Only prints the path to the activate script
dmd|ldc|gdc
Installs the latest version of a compiler
dmd|ldc|gdc-<version>
Installs a specific version of a compiler (e.g. dmd-2.071.1, ldc-1.1.0-beta2)
dmd|ldc-beta
Installs the latest beta version of a compiler
dmd-nightly
Installs DMD nightly
dmd-2017-02-10
Installs specific DMD nightly

Examples

~/dlang/install.sh
~/dlang/install.sh dmd
~/dlang/install.sh install dmd
~/dlang/install.sh install dmd-2.071.1
~/dlang/install.sh install ldc-1.1.0-beta2
~/dlang/install.sh install dmd-beta
~/dlang/install.sh install dmd-nightly
Once a compiler is installed, it can be activated for the current session. Run the respective activate script in a shell to use a compiler by default:
source ~/dlang/<installed-compiler>/activate
This will setup the PATH, LIBRARY_PATH, LD_LIBRARY_PATH, DMD, DC, and PS1 environment variables. It's also possible to combine this into one command:
source $(~/dlang/install.sh dmd -a)
The activated compiler can be removed from the current session by restoring the previous environment:
deactivate
Alternatively, it is also possible to call the compiler binary directly. Note that the exact path varies between the compiler vendors:
~/dlang/<installed-dmd-compiler>/bin64/dmd
~/dlang/<installed-ldc-compiler>/ldc2
Users of the Fish shell can activate.fish:
source ~/dlang/<installed-compiler>/activate.fish

Uninstall

Uninstall a D compiler.
~/dlang/install.sh uninstall <compiler>

Examples

~/dlang/install.sh uninstall dmd
~/dlang/install.sh uninstall dmd-2.071.1
~/dlang/install.sh uninstall ldc-1.1.0-beta2

List

List all installed D compilers.
~/dlang/install.sh list

Update

Update the installer itself.
~/dlang/install.sh update