D Programming Language Specifications

DMD/Phobos Documentation


APT repository for D

"d-apt" is an APT repository to easily install/upgrade D binary packages on systems like Debian, Ubuntu, LinuxMint, etc.

To enable it, add the repository sources:

$ sudo wget -O /etc/apt/sources.list.d/d-apt.list

then update local info and install "d-apt" public key (fingerprint 0xEBCF975E5BA24D5E):

$ sudo apt-get update && sudo apt-get -y --allow-unauthenticated install --reinstall d-apt-keyring && sudo apt-get update

List of available packages:

Packages of shared libraries ends their names with the supported dmd version number.
This allows to install several versions of the same shared library.
This fix the API/ABI breaking changes problem on every DMD release.
Packages listed below ending with "nn" are shared libraries. This "nn" must be replaced by the given version.
Phobos2 shared library for "dmd" v2.066.1 ends its name with "66" ("libphobos2-nn" -> "libphobos2-66").
TkD shared library for "dmd" v2.065.0 ends its name with "65" ("libtkd-nn" -> "libtkd-65").

Installing packages:

i.e. install GtkD3 development files and documentation:

$ sudo apt-get install libgtkd3-dev libgtkd3-doc

or just install GtkD3 runtime shared library:

$ sudo apt-get install libgtkd3-nn

Installing legacy packages:

i.e. install TkD development files for dmd v2.067.1:

$ sudo apt-get install dmd-bin=2.067.1-0 libphobos2-dev=2.067.1-0 libtkd-dev=1.1.4-0.1

prevent or allow packages from being automatically upgraded:

$ sudo apt-mark {hold | unhold} dmd-bin libphobos2-dev libtkd-dev

display all available versions of each package:

$ apt-cache madison dmd-bin libphobos2-dev libtkd-dev


Every dev package contains "pkg-config" (shared and static) configuration files for the specific library.

i.e. link GtkD3 applications against "" and "" shared libraries:

$ dmd `pkg-config --cflags --libs gtkd3` my_gtkd3_app.d

or link GtkD3 applications against "libgtkd3.a" and "libphobos2.a" static libraries:

$ dmd `pkg-config --cflags --libs gtkd3-static` my_gtkd3_app.d


On 64-bit multiarch systems (like Ubuntu 12.04 and Debian 7.0), it is allowed to compile and link to 32-bit.

Install "gcc-multilib" deb package.

i.e. compile GtkD3 applications to 32-bit on a 64-bit Linux system:

$ sudo apt-get install gcc-multilib libgtkd3-dev:i386
$ dmd -m32 `pkg-config --cflags --libs gtkd3` my_gtkd3_app.d


Use soname to link against curl shared library:

$ dmd my_d_curl_app.d


Every doc package contains the related documentation with a system menu entry. It also contains examples if any.

contact: g.sayol at gmail dot com