I introduced WSL2 + Ubuntu to Window10 and tried using GDC, DMD, LDC

Introduction

Although it was late, I introduced WSL2 and Ubuntu to Window10. At that time, it will be a memo when building the ** D language ** compilation environment.

Windows 10 environment

Introduced in two environments.

The following output log and execution result are for environment 1.

Reference information for WSL2 installation

Installation Guide for Windows Subsystem for Linux for Windows 10 Use WSL2 on Windows 10

In my environment, wsl --set-default-version 2 gives an execution error, but I don't have any problems, so I leave it as it is.

`wsl --set-default-version 2` execution example
PS D:\dev> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

Deployment image services and management tools
version: 10.0.18362.900

Image version: 10.0.18363.1082

The function is enabled
[==========================100.0%==========================]
The operation completed successfully.
PS D:\dev> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all

Deployment image services and management tools
version: 10.0.18362.900

Image version: 10.0.18363.1082

The function is enabled
[==========================100.0%==========================]
The operation completed successfully.
PS D:\dev> wsl --set-default-version 2
Kernel component updates are required to run WSL 2. For more information https://aka.ms/See wsl2kernel
For the main differences from WSL 2, https://aka.ms/See wsl2

I installed up to Ubuntu according to the reference information.

GDC installation and trial run

Run the commands in the following order to install GDC 10.

GDC installation command


sudo apt update
sudo apt upgrade
sudo apt install gdc-10

The execution log is posted for reference. It's long so it's folded.

user001@server001:~$ `sudo apt update`
[sudo] password for user001:
Get:1 http://security.ubuntu.com/ubuntu focal-security InRelease [107 kB]
Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease
Get:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease [111 kB]
Get:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease [98.3 kB]
Fetched 317 kB in 3s (110 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.
user001@server001:~$ `sudo apt upgrade`
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
user001@server001:~$ `sudo apt install gdc-10`
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  binutils binutils-common binutils-x86-64-linux-gnu cpp-10 g++-10 gcc-10 libasan6 libatomic1 libbinutils libc-dev-bin
  libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0 libgcc-10-dev libgomp1 libgphobos-10-dev libgphobos1 libisl22
  libitm1 liblsan0 libmpc3 libquadmath0 libstdc++-10-dev libtsan0 libubsan1 linux-libc-dev manpages-dev zlib1g-dev
Suggested packages:
  binutils-doc gcc-10-locales g++-10-multilib gcc-10-doc gcc-10-multilib glibc-doc libstdc++-10-doc
The following NEW packages will be installed:
  binutils binutils-common binutils-x86-64-linux-gnu cpp-10 g++-10 gcc-10 gdc-10 libasan6 libatomic1 libbinutils
  libc-dev-bin libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0 libgcc-10-dev libgomp1 libgphobos-10-dev
  libgphobos1 libisl22 libitm1 liblsan0 libmpc3 libquadmath0 libstdc++-10-dev libtsan0 libubsan1 linux-libc-dev
  manpages-dev zlib1g-dev
0 upgraded, 31 newly installed, 0 to remove and 0 not upgraded.
Need to get 69.4 MB of archives.
After this operation, 355 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Get:1 http://archive.ubuntu.com/ubuntu focal/main amd64 binutils-common amd64 2.34-6ubuntu1 [207 kB]
Get:2 http://archive.ubuntu.com/ubuntu focal/main amd64 libbinutils amd64 2.34-6ubuntu1 [474 kB]
Get:3 http://archive.ubuntu.com/ubuntu focal/main amd64 libctf-nobfd0 amd64 2.34-6ubuntu1 [47.0 kB]
Get:4 http://archive.ubuntu.com/ubuntu focal/main amd64 libctf0 amd64 2.34-6ubuntu1 [46.6 kB]
Get:5 http://archive.ubuntu.com/ubuntu focal/main amd64 binutils-x86-64-linux-gnu amd64 2.34-6ubuntu1 [1614 kB]
Get:6 http://archive.ubuntu.com/ubuntu focal/main amd64 binutils amd64 2.34-6ubuntu1 [3376 B]
Get:7 http://archive.ubuntu.com/ubuntu focal/main amd64 libisl22 amd64 0.22.1-1 [592 kB]
Get:8 http://archive.ubuntu.com/ubuntu focal/main amd64 libmpc3 amd64 1.1.0-1 [40.8 kB]
Get:9 http://archive.ubuntu.com/ubuntu focal/universe amd64 cpp-10 amd64 10-20200411-0ubuntu1 [8050 kB]
Get:10 http://archive.ubuntu.com/ubuntu focal/main amd64 libcc1-0 amd64 10-20200411-0ubuntu1 [41.1 kB]
Get:11 http://archive.ubuntu.com/ubuntu focal/main amd64 libgomp1 amd64 10-20200411-0ubuntu1 [101 kB]
Get:12 http://archive.ubuntu.com/ubuntu focal/main amd64 libitm1 amd64 10-20200411-0ubuntu1 [26.3 kB]
Get:13 http://archive.ubuntu.com/ubuntu focal/main amd64 libatomic1 amd64 10-20200411-0ubuntu1 [9284 B]
Get:14 http://archive.ubuntu.com/ubuntu focal/main amd64 libasan6 amd64 10-20200411-0ubuntu1 [344 kB]
Get:15 http://archive.ubuntu.com/ubuntu focal/main amd64 liblsan0 amd64 10-20200411-0ubuntu1 [144 kB]
Get:16 http://archive.ubuntu.com/ubuntu focal/main amd64 libtsan0 amd64 10-20200411-0ubuntu1 [319 kB]
Get:17 http://archive.ubuntu.com/ubuntu focal/main amd64 libubsan1 amd64 10-20200411-0ubuntu1 [136 kB]
Get:18 http://archive.ubuntu.com/ubuntu focal/main amd64 libquadmath0 amd64 10-20200411-0ubuntu1 [146 kB]
Get:19 http://archive.ubuntu.com/ubuntu focal/main amd64 libgcc-10-dev amd64 10-20200411-0ubuntu1 [2340 kB]
Get:20 http://archive.ubuntu.com/ubuntu focal/universe amd64 gcc-10 amd64 10-20200411-0ubuntu1 [16.3 MB]
Get:21 http://archive.ubuntu.com/ubuntu focal/main amd64 libc-dev-bin amd64 2.31-0ubuntu9 [71.8 kB]
Get:22 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 linux-libc-dev amd64 5.4.0-45.49 [1137 kB]
Get:23 http://archive.ubuntu.com/ubuntu focal/main amd64 libcrypt-dev amd64 1:4.4.10-10ubuntu4 [104 kB]
Get:24 http://archive.ubuntu.com/ubuntu focal/main amd64 libc6-dev amd64 2.31-0ubuntu9 [2520 kB]
Get:25 http://archive.ubuntu.com/ubuntu focal/universe amd64 libstdc++-10-dev amd64 10-20200411-0ubuntu1 [1717 kB]
Get:26 http://archive.ubuntu.com/ubuntu focal/universe amd64 g++-10 amd64 10-20200411-0ubuntu1 [9034 kB]
Get:27 http://archive.ubuntu.com/ubuntu focal/universe amd64 libgphobos1 amd64 10-20200411-0ubuntu1 [1385 kB]
Get:28 http://archive.ubuntu.com/ubuntu focal/main amd64 zlib1g-dev amd64 1:1.2.11.dfsg-2ubuntu1 [156 kB]
Get:29 http://archive.ubuntu.com/ubuntu focal/universe amd64 libgphobos-10-dev amd64 10-20200411-0ubuntu1 [11.7 MB]
Get:30 http://archive.ubuntu.com/ubuntu focal/universe amd64 gdc-10 amd64 10-20200411-0ubuntu1 [8363 kB]
Get:31 http://archive.ubuntu.com/ubuntu focal/main amd64 manpages-dev all 5.05-1 [2266 kB]
Fetched 69.4 MB in 4min 22s (265 kB/s)
Extracting templates from packages: 100%
Selecting previously unselected package binutils-common:amd64.
(Reading database ... 31910 files and directories currently installed.)
Preparing to unpack .../00-binutils-common_2.34-6ubuntu1_amd64.deb ...
Unpacking binutils-common:amd64 (2.34-6ubuntu1) ...
Selecting previously unselected package libbinutils:amd64.
Preparing to unpack .../01-libbinutils_2.34-6ubuntu1_amd64.deb ...
Unpacking libbinutils:amd64 (2.34-6ubuntu1) ...
Selecting previously unselected package libctf-nobfd0:amd64.
Preparing to unpack .../02-libctf-nobfd0_2.34-6ubuntu1_amd64.deb ...
Unpacking libctf-nobfd0:amd64 (2.34-6ubuntu1) ...
Selecting previously unselected package libctf0:amd64.
Preparing to unpack .../03-libctf0_2.34-6ubuntu1_amd64.deb ...
Unpacking libctf0:amd64 (2.34-6ubuntu1) ...
Selecting previously unselected package binutils-x86-64-linux-gnu.
Preparing to unpack .../04-binutils-x86-64-linux-gnu_2.34-6ubuntu1_amd64.deb ...
Unpacking binutils-x86-64-linux-gnu (2.34-6ubuntu1) ...
Selecting previously unselected package binutils.
Preparing to unpack .../05-binutils_2.34-6ubuntu1_amd64.deb ...
Unpacking binutils (2.34-6ubuntu1) ...
Selecting previously unselected package libisl22:amd64.
Preparing to unpack .../06-libisl22_0.22.1-1_amd64.deb ...
Unpacking libisl22:amd64 (0.22.1-1) ...
Selecting previously unselected package libmpc3:amd64.
Preparing to unpack .../07-libmpc3_1.1.0-1_amd64.deb ...
Unpacking libmpc3:amd64 (1.1.0-1) ...
Selecting previously unselected package cpp-10.
Preparing to unpack .../08-cpp-10_10-20200411-0ubuntu1_amd64.deb ...
Unpacking cpp-10 (10-20200411-0ubuntu1) ...
Selecting previously unselected package libcc1-0:amd64.
Preparing to unpack .../09-libcc1-0_10-20200411-0ubuntu1_amd64.deb ...
Unpacking libcc1-0:amd64 (10-20200411-0ubuntu1) ...
Selecting previously unselected package libgomp1:amd64.
Preparing to unpack .../10-libgomp1_10-20200411-0ubuntu1_amd64.deb ...
Unpacking libgomp1:amd64 (10-20200411-0ubuntu1) ...
Selecting previously unselected package libitm1:amd64.
Preparing to unpack .../11-libitm1_10-20200411-0ubuntu1_amd64.deb ...
Unpacking libitm1:amd64 (10-20200411-0ubuntu1) ...
Selecting previously unselected package libatomic1:amd64.
Preparing to unpack .../12-libatomic1_10-20200411-0ubuntu1_amd64.deb ...
Unpacking libatomic1:amd64 (10-20200411-0ubuntu1) ...
Selecting previously unselected package libasan6:amd64.
Preparing to unpack .../13-libasan6_10-20200411-0ubuntu1_amd64.deb ...
Unpacking libasan6:amd64 (10-20200411-0ubuntu1) ...
Selecting previously unselected package liblsan0:amd64.
Preparing to unpack .../14-liblsan0_10-20200411-0ubuntu1_amd64.deb ...
Unpacking liblsan0:amd64 (10-20200411-0ubuntu1) ...
Selecting previously unselected package libtsan0:amd64.
Preparing to unpack .../15-libtsan0_10-20200411-0ubuntu1_amd64.deb ...
Unpacking libtsan0:amd64 (10-20200411-0ubuntu1) ...
Selecting previously unselected package libubsan1:amd64.
Preparing to unpack .../16-libubsan1_10-20200411-0ubuntu1_amd64.deb ...
Unpacking libubsan1:amd64 (10-20200411-0ubuntu1) ...
Selecting previously unselected package libquadmath0:amd64.
Preparing to unpack .../17-libquadmath0_10-20200411-0ubuntu1_amd64.deb ...
Unpacking libquadmath0:amd64 (10-20200411-0ubuntu1) ...
Selecting previously unselected package libgcc-10-dev:amd64.
Preparing to unpack .../18-libgcc-10-dev_10-20200411-0ubuntu1_amd64.deb ...
Unpacking libgcc-10-dev:amd64 (10-20200411-0ubuntu1) ...
Selecting previously unselected package gcc-10.
Preparing to unpack .../19-gcc-10_10-20200411-0ubuntu1_amd64.deb ...
Unpacking gcc-10 (10-20200411-0ubuntu1) ...
Selecting previously unselected package libc-dev-bin.
Preparing to unpack .../20-libc-dev-bin_2.31-0ubuntu9_amd64.deb ...
Unpacking libc-dev-bin (2.31-0ubuntu9) ...
Selecting previously unselected package linux-libc-dev:amd64.
Preparing to unpack .../21-linux-libc-dev_5.4.0-45.49_amd64.deb ...
Unpacking linux-libc-dev:amd64 (5.4.0-45.49) ...
Selecting previously unselected package libcrypt-dev:amd64.
Preparing to unpack .../22-libcrypt-dev_1%3a4.4.10-10ubuntu4_amd64.deb ...
Unpacking libcrypt-dev:amd64 (1:4.4.10-10ubuntu4) ...
Selecting previously unselected package libc6-dev:amd64.
Preparing to unpack .../23-libc6-dev_2.31-0ubuntu9_amd64.deb ...
Unpacking libc6-dev:amd64 (2.31-0ubuntu9) ...
Selecting previously unselected package libstdc++-10-dev:amd64.
Preparing to unpack .../24-libstdc++-10-dev_10-20200411-0ubuntu1_amd64.deb ...
Unpacking libstdc++-10-dev:amd64 (10-20200411-0ubuntu1) ...
Selecting previously unselected package g++-10.
Preparing to unpack .../25-g++-10_10-20200411-0ubuntu1_amd64.deb ...
Unpacking g++-10 (10-20200411-0ubuntu1) ...
Selecting previously unselected package libgphobos1:amd64.
Preparing to unpack .../26-libgphobos1_10-20200411-0ubuntu1_amd64.deb ...
Unpacking libgphobos1:amd64 (10-20200411-0ubuntu1) ...
Selecting previously unselected package zlib1g-dev:amd64.
Preparing to unpack .../27-zlib1g-dev_1%3a1.2.11.dfsg-2ubuntu1_amd64.deb ...
Unpacking zlib1g-dev:amd64 (1:1.2.11.dfsg-2ubuntu1) ...
Selecting previously unselected package libgphobos-10-dev:amd64.
Preparing to unpack .../28-libgphobos-10-dev_10-20200411-0ubuntu1_amd64.deb ...
Unpacking libgphobos-10-dev:amd64 (10-20200411-0ubuntu1) ...
Selecting previously unselected package gdc-10.
Preparing to unpack .../29-gdc-10_10-20200411-0ubuntu1_amd64.deb ...
Unpacking gdc-10 (10-20200411-0ubuntu1) ...
Selecting previously unselected package manpages-dev.
Preparing to unpack .../30-manpages-dev_5.05-1_all.deb ...
Unpacking manpages-dev (5.05-1) ...
Setting up manpages-dev (5.05-1) ...
Setting up binutils-common:amd64 (2.34-6ubuntu1) ...
Setting up linux-libc-dev:amd64 (5.4.0-45.49) ...
Setting up libctf-nobfd0:amd64 (2.34-6ubuntu1) ...
Setting up libgomp1:amd64 (10-20200411-0ubuntu1) ...
Setting up libasan6:amd64 (10-20200411-0ubuntu1) ...
Setting up libgphobos1:amd64 (10-20200411-0ubuntu1) ...
Setting up libquadmath0:amd64 (10-20200411-0ubuntu1) ...
Setting up libmpc3:amd64 (1.1.0-1) ...
Setting up libatomic1:amd64 (10-20200411-0ubuntu1) ...
Setting up libubsan1:amd64 (10-20200411-0ubuntu1) ...
Setting up libcrypt-dev:amd64 (1:4.4.10-10ubuntu4) ...
Setting up libisl22:amd64 (0.22.1-1) ...
Setting up libbinutils:amd64 (2.34-6ubuntu1) ...
Setting up libc-dev-bin (2.31-0ubuntu9) ...
Setting up libcc1-0:amd64 (10-20200411-0ubuntu1) ...
Setting up liblsan0:amd64 (10-20200411-0ubuntu1) ...
Setting up cpp-10 (10-20200411-0ubuntu1) ...
Setting up libitm1:amd64 (10-20200411-0ubuntu1) ...
Setting up libtsan0:amd64 (10-20200411-0ubuntu1) ...
Setting up libctf0:amd64 (2.34-6ubuntu1) ...
Setting up libgcc-10-dev:amd64 (10-20200411-0ubuntu1) ...
Setting up libc6-dev:amd64 (2.31-0ubuntu9) ...
Setting up binutils-x86-64-linux-gnu (2.34-6ubuntu1) ...
Setting up libstdc++-10-dev:amd64 (10-20200411-0ubuntu1) ...
Setting up binutils (2.34-6ubuntu1) ...
Setting up gcc-10 (10-20200411-0ubuntu1) ...
Setting up zlib1g-dev:amd64 (1:1.2.11.dfsg-2ubuntu1) ...
Setting up g++-10 (10-20200411-0ubuntu1) ...
Setting up libgphobos-10-dev:amd64 (10-20200411-0ubuntu1) ...
Setting up gdc-10 (10-20200411-0ubuntu1) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for libc-bin (2.31-0ubuntu9) ...

Try compiling with GDC 10. It is a program that displays the compiler and version information.

ver1.d


import std.stdio;

void main()
{
  writeln(__VENDOR__);
  writeln(__VERSION__);
}

Execution result


user001@server001:~$ which gdc-10
/usr/bin/gdc-10

user001@server001:~$ gdc-10 ver1.d

user001@server001:~$ ls
a.out  ver1.d

user001@server001:~$ ./a.out
GNU D
2076

The binary version of GDC, which is downloadable for Windows, is 2.068.2, so a newer version, 2.076, was available.

DMD installation and trial run

Continue to install DMD. For the installation method on Ubuntu, execute the commands in order because there is information on the DMD Download page.

DMD installation command


sudo wget https://netcologne.dl.sourceforge.net/project/d-apt/files/d-apt.list -O /etc/apt/sources.list.d/d-apt.list
sudo apt-get update --allow-insecure-repositories
sudo apt-get -y --allow-unauthenticated install --reinstall d-apt-keyring
sudo apt-get update && sudo apt-get install dmd-compiler dub
user001@server001:~$ `sudo wget https://netcologne.dl.sourceforge.net/project/d-apt/files/d-apt.list -O /etc/apt/sources.list.d/d-apt.list`
[sudo] password for user001:
--2020-09-27 17:13:13--  https://netcologne.dl.sourceforge.net/project/d-apt/files/d-apt.list
Resolving netcologne.dl.sourceforge.net (netcologne.dl.sourceforge.net)... 78.35.24.46, 2001:4dd0:1234:6::5f
Connecting to netcologne.dl.sourceforge.net (netcologne.dl.sourceforge.net)|78.35.24.46|:443... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: https://downloads.sourceforge.net/project/d-apt/files/d-apt.list?download&failedmirror=netcologne.dl.sourceforge.net [following]
--2020-09-27 17:13:15--  https://downloads.sourceforge.net/project/d-apt/files/d-apt.list?download&failedmirror=netcologne.dl.sourceforge.net
Resolving downloads.sourceforge.net (downloads.sourceforge.net)... 216.105.38.13
Connecting to downloads.sourceforge.net (downloads.sourceforge.net)|216.105.38.13|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://master.dl.sourceforge.net/project/d-apt/files/d-apt.list [following]
--2020-09-27 17:13:16--  https://master.dl.sourceforge.net/project/d-apt/files/d-apt.list
Resolving master.dl.sourceforge.net (master.dl.sourceforge.net)... 216.105.38.12
Connecting to master.dl.sourceforge.net (master.dl.sourceforge.net)|216.105.38.12|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 117 [application/octet-stream]
Saving to: ‘/etc/apt/sources.list.d/d-apt.list’

/etc/apt/sources.list.d/d-apt 100%[=================================================>]     117  --.-KB/s    in 0s

2020-09-27 17:13:16 (1.16 MB/s) - ‘/etc/apt/sources.list.d/d-apt.list’ saved [117/117]
user001@server001:~$ `sudo apt-get update --allow-insecure-repositories`
Get:1 http://security.ubuntu.com/ubuntu focal-security InRelease [107 kB]
Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease
Get:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease [111 kB]
Get:4 https://netcologne.dl.sourceforge.net/project/d-apt d-apt InRelease [5617 B]
Ign:4 https://netcologne.dl.sourceforge.net/project/d-apt d-apt InRelease
Get:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease [98.3 kB]
Get:6 https://netcologne.dl.sourceforge.net/project/d-apt d-apt/main amd64 Packages [116 kB]
Get:7 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [195 kB]
Get:8 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [374 kB]
Get:9 http://security.ubuntu.com/ubuntu focal-security/main Translation-en [69.0 kB]
Get:10 http://security.ubuntu.com/ubuntu focal-security/main amd64 c-n-f Metadata [4696 B]
Get:11 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 Packages [38.4 kB]
Get:12 http://security.ubuntu.com/ubuntu focal-security/restricted Translation-en [9856 B]
Get:13 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages [60.7 kB]
Get:14 http://security.ubuntu.com/ubuntu focal-security/universe Translation-en [32.2 kB]
Get:15 http://security.ubuntu.com/ubuntu focal-security/universe amd64 c-n-f Metadata [2544 B]
Get:16 http://archive.ubuntu.com/ubuntu focal-updates/main Translation-en [142 kB]
Get:17 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 c-n-f Metadata [9828 B]
Get:18 http://archive.ubuntu.com/ubuntu focal-updates/restricted amd64 Packages [43.6 kB]
Get:19 http://archive.ubuntu.com/ubuntu focal-updates/restricted Translation-en [10.8 kB]
Get:20 http://archive.ubuntu.com/ubuntu focal-updates/restricted amd64 c-n-f Metadata [352 B]
Get:21 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [170 kB]
Get:22 http://archive.ubuntu.com/ubuntu focal-updates/universe Translation-en [90.1 kB]
Get:23 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 c-n-f Metadata [5712 B]
Get:24 http://archive.ubuntu.com/ubuntu focal-backports/universe amd64 Packages [3088 B]
Get:25 http://archive.ubuntu.com/ubuntu focal-backports/universe amd64 c-n-f Metadata [224 B]
Fetched 1700 kB in 6s (267 kB/s)
Reading package lists... Done
W: GPG error: https://netcologne.dl.sourceforge.net/project/d-apt d-apt InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY EBCF975E5BA24D5E
W: The repository 'https://netcologne.dl.sourceforge.net/project/d-apt d-apt InRelease' is not signed.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.
user001@server001:~$ `sudo apt-get -y --allow-unauthenticated install --reinstall d-apt-keyring`
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  d-apt-keyring
0 upgraded, 1 newly installed, 0 to remove and 42 not upgraded.
Need to get 3354 B of archives.
After this operation, 14.3 kB of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
  d-apt-keyring
Authentication warning overridden.
Get:1 https://netcologne.dl.sourceforge.net/project/d-apt d-apt/main amd64 d-apt-keyring all 2012.02.19-3.1 [3354 B]
Fetched 3354 B in 3s (1250 B/s)
Selecting previously unselected package d-apt-keyring.
(Reading database ... 37698 files and directories currently installed.)
Preparing to unpack .../d-apt-keyring_2012.02.19-3.1_all.deb ...
Unpacking d-apt-keyring (2012.02.19-3.1) ...
Setting up d-apt-keyring (2012.02.19-3.1) ...
Warning: apt-key should not be used in scripts (called from postinst maintainerscript of the package d-apt-keyring)
OK
user001@server001:~$ `sudo apt-get update && sudo apt-get install dmd-compiler dub`
Hit:1 http://archive.ubuntu.com/ubuntu focal InRelease
Get:2 https://netcologne.dl.sourceforge.net/project/d-apt d-apt InRelease [5617 B]
Hit:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:4 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Fetched 5617 B in 3s (1892 B/s)
Reading package lists... Done
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  cpp cpp-9 gcc gcc-9 gcc-9-base libasan5 libdpkg-perl libfile-fcntllock-perl libgcc-9-dev libphobos2-94
  libphobos2-dev pkg-config
Suggested packages:
  cpp-doc gcc-9-locales dmd-doc dmd-tools gcc-multilib make autoconf automake libtool flex bison gdb gcc-doc
  gcc-9-multilib gcc-9-doc debian-keyring bzr dpkg-dev
The following NEW packages will be installed:
  cpp cpp-9 dmd-compiler dub gcc gcc-9 gcc-9-base libasan5 libdpkg-perl libfile-fcntllock-perl libgcc-9-dev
  libphobos2-94 libphobos2-dev pkg-config
0 upgraded, 14 newly installed, 0 to remove and 42 not upgraded.
Need to get 29.6 MB of archives.
After this operation, 195 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://archive.ubuntu.com/ubuntu focal/main amd64 gcc-9-base amd64 9.3.0-10ubuntu2 [19.3 kB]
Get:2 http://archive.ubuntu.com/ubuntu focal/main amd64 cpp-9 amd64 9.3.0-10ubuntu2 [7491 kB]
Get:3 https://netcologne.dl.sourceforge.net/project/d-apt d-apt/main amd64 libphobos2-94 amd64 2.094.0-0 [1377 kB]
Get:4 https://netcologne.dl.sourceforge.net/project/d-apt d-apt/main amd64 libphobos2-dev amd64 2.094.0-0 [4366 kB]
Get:5 https://netcologne.dl.sourceforge.net/project/d-apt d-apt/main amd64 dmd-compiler amd64 2.094.0-0 [2393 kB]
Get:6 https://netcologne.dl.sourceforge.net/project/d-apt d-apt/main amd64 dub amd64 1.23.0-0 [2590 kB]
Get:7 http://archive.ubuntu.com/ubuntu focal/main amd64 cpp amd64 4:9.3.0-1ubuntu2 [27.6 kB]
Get:8 http://archive.ubuntu.com/ubuntu focal/main amd64 libdpkg-perl all 1.19.7ubuntu3 [230 kB]
Get:9 http://archive.ubuntu.com/ubuntu focal/main amd64 pkg-config amd64 0.29.1-0ubuntu4 [45.5 kB]
Get:10 http://archive.ubuntu.com/ubuntu focal/main amd64 libasan5 amd64 9.3.0-10ubuntu2 [395 kB]
Get:11 http://archive.ubuntu.com/ubuntu focal/main amd64 libgcc-9-dev amd64 9.3.0-10ubuntu2 [2359 kB]
Get:12 http://archive.ubuntu.com/ubuntu focal/main amd64 gcc-9 amd64 9.3.0-10ubuntu2 [8234 kB]
Get:13 http://archive.ubuntu.com/ubuntu focal/main amd64 gcc amd64 4:9.3.0-1ubuntu2 [5208 B]
Get:14 http://archive.ubuntu.com/ubuntu focal/main amd64 libfile-fcntllock-perl amd64 0.22-3build4 [33.1 kB]
Fetched 29.6 MB in 1min 15s (392 kB/s)
Selecting previously unselected package gcc-9-base:amd64.
(Reading database ... 37702 files and directories currently installed.)
Preparing to unpack .../00-gcc-9-base_9.3.0-10ubuntu2_amd64.deb ...
Unpacking gcc-9-base:amd64 (9.3.0-10ubuntu2) ...
Selecting previously unselected package cpp-9.
Preparing to unpack .../01-cpp-9_9.3.0-10ubuntu2_amd64.deb ...
Unpacking cpp-9 (9.3.0-10ubuntu2) ...
Selecting previously unselected package cpp.
Preparing to unpack .../02-cpp_4%3a9.3.0-1ubuntu2_amd64.deb ...
Unpacking cpp (4:9.3.0-1ubuntu2) ...
Selecting previously unselected package libphobos2-94:amd64.
Preparing to unpack .../03-libphobos2-94_2.094.0-0_amd64.deb ...
Unpacking libphobos2-94:amd64 (2.094.0-0) ...
Selecting previously unselected package libdpkg-perl.
Preparing to unpack .../04-libdpkg-perl_1.19.7ubuntu3_all.deb ...
Unpacking libdpkg-perl (1.19.7ubuntu3) ...
Selecting previously unselected package pkg-config.
Preparing to unpack .../05-pkg-config_0.29.1-0ubuntu4_amd64.deb ...
Unpacking pkg-config (0.29.1-0ubuntu4) ...
Selecting previously unselected package libphobos2-dev:amd64.
Preparing to unpack .../06-libphobos2-dev_2.094.0-0_amd64.deb ...
Unpacking libphobos2-dev:amd64 (2.094.0-0) ...
Selecting previously unselected package libasan5:amd64.
Preparing to unpack .../07-libasan5_9.3.0-10ubuntu2_amd64.deb ...
Unpacking libasan5:amd64 (9.3.0-10ubuntu2) ...
Selecting previously unselected package libgcc-9-dev:amd64.
Preparing to unpack .../08-libgcc-9-dev_9.3.0-10ubuntu2_amd64.deb ...
Unpacking libgcc-9-dev:amd64 (9.3.0-10ubuntu2) ...
Selecting previously unselected package gcc-9.
Preparing to unpack .../09-gcc-9_9.3.0-10ubuntu2_amd64.deb ...
Unpacking gcc-9 (9.3.0-10ubuntu2) ...
Selecting previously unselected package gcc.
Preparing to unpack .../10-gcc_4%3a9.3.0-1ubuntu2_amd64.deb ...
Unpacking gcc (4:9.3.0-1ubuntu2) ...
Selecting previously unselected package dmd-compiler.
Preparing to unpack .../11-dmd-compiler_2.094.0-0_amd64.deb ...
Unpacking dmd-compiler (2.094.0-0) ...
Selecting previously unselected package dub.
Preparing to unpack .../12-dub_1.23.0-0_amd64.deb ...
Unpacking dub (1.23.0-0) ...
Selecting previously unselected package libfile-fcntllock-perl.
Preparing to unpack .../13-libfile-fcntllock-perl_0.22-3build4_amd64.deb ...
Unpacking libfile-fcntllock-perl (0.22-3build4) ...
Setting up libfile-fcntllock-perl (0.22-3build4) ...
Setting up libphobos2-94:amd64 (2.094.0-0) ...
Setting up dub (1.23.0-0) ...
Setting up libdpkg-perl (1.19.7ubuntu3) ...
Setting up gcc-9-base:amd64 (9.3.0-10ubuntu2) ...
Setting up libasan5:amd64 (9.3.0-10ubuntu2) ...
Setting up pkg-config (0.29.1-0ubuntu4) ...
Setting up cpp-9 (9.3.0-10ubuntu2) ...
Setting up libgcc-9-dev:amd64 (9.3.0-10ubuntu2) ...
Setting up cpp (4:9.3.0-1ubuntu2) ...
Setting up gcc-9 (9.3.0-10ubuntu2) ...
Setting up gcc (4:9.3.0-1ubuntu2) ...
Setting up libphobos2-dev:amd64 (2.094.0-0) ...
Setting up dmd-compiler (2.094.0-0) ...
Processing triggers for libc-bin (2.31-0ubuntu9) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for shared-mime-info (1.15-1) ...

Now that the DMD installation is complete, let's compile it. I was able to install the latest version 2.094 released the other day.

ver1.d


import std.stdio;

void main()
{
  writeln(__VENDOR__);
  writeln(__VERSION__);
}

Execution result


user001@server001:~$ which dmd
/usr/bin/dmd

user001@server001:~$ dmd ver1.d

user001@server001:~$ ls
a.out  ver1  ver1.d  ver1.o

user001@server001:~$ ./ver1
Digital Mars D
2094

LDC installation and trial run

Install LDC by referring to the LDC – Installation page. The package name at installation is ldc, but the compiler command is ldc2.

LDC installation command


sudo apt install ldc
user001@server001:~$ `sudo apt install ldc`
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  libphobos2-ldc-shared-dev libphobos2-ldc-shared90
The following NEW packages will be installed:
  ldc libphobos2-ldc-shared-dev libphobos2-ldc-shared90
0 upgraded, 3 newly installed, 0 to remove and 42 not upgraded.
Need to get 11.5 MB of archives.
After this operation, 86.9 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://archive.ubuntu.com/ubuntu focal/universe amd64 libphobos2-ldc-shared90 amd64 1:1.20.1-1 [1215 kB]
Get:2 http://archive.ubuntu.com/ubuntu focal/universe amd64 libphobos2-ldc-shared-dev amd64 1:1.20.1-1 [6262 kB]
Get:3 http://archive.ubuntu.com/ubuntu focal/universe amd64 ldc amd64 1:1.20.1-1 [4000 kB]
Fetched 11.5 MB in 44s (259 kB/s)
Selecting previously unselected package libphobos2-ldc-shared90:amd64.
(Reading database ... 38902 files and directories currently installed.)
Preparing to unpack .../libphobos2-ldc-shared90_1%3a1.20.1-1_amd64.deb ...
Unpacking libphobos2-ldc-shared90:amd64 (1:1.20.1-1) ...
Selecting previously unselected package libphobos2-ldc-shared-dev.
Preparing to unpack .../libphobos2-ldc-shared-dev_1%3a1.20.1-1_amd64.deb ...
Unpacking libphobos2-ldc-shared-dev (1:1.20.1-1) ...
Selecting previously unselected package ldc.
Preparing to unpack .../ldc_1%3a1.20.1-1_amd64.deb ...
Unpacking ldc (1:1.20.1-1) ...
Setting up libphobos2-ldc-shared90:amd64 (1:1.20.1-1) ...
Setting up libphobos2-ldc-shared-dev (1:1.20.1-1) ...
Setting up ldc (1:1.20.1-1) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for libc-bin (2.31-0ubuntu9) ...

ver1.d


import std.stdio;

void main()
{
  writeln(__VENDOR__);
  writeln(__VERSION__);
}

Execution result


admin1@fractal:~$ which ldc2
/usr/bin/ldc2

admin1@fractal:~$ ldc2 ver1.d

admin1@fractal:~$ ./ver1
LDC
2090

Reference information

Installation Guide for Windows Subsystem for Linux for Windows 10 Use WSL2 on Windows 10

apt command cheat sheet

Recommended Posts

I introduced WSL2 + Ubuntu to Window10 and tried using GDC, DMD, LDC
I tried using YOLO v4 on Ubuntu and ROS
[Rails] I tried to implement "Like function" using rails and js
I tried to integrate Docker and Maven / Netbean nicely using Jib
I tried to make my own transfer guide using OpenTripPlanner and GTFS
I introduced OpenAPI (Swagger) to Spring Boot (gradle) and tried various settings
I installed WSL2 without using Microsoft Store and tried to build an environment where Docker can be used
I tried to link grafana and postgres [docker-compose]
[Android] I quit SQLite and tried using Realm
I tried to link JavaFX and Spring Framework.
I tried to implement a server using Netty
[JDBC ③] I tried to input from the main method using placeholders and arguments.
I tried using Wercker to create and publish a Docker image that launches GlassFish 5.
I built an Ubuntu environment on Windows 10 using WSL2.
I tried to operate SQS using AWS Java SDK
I started MySQL 5.7 with docker-compose and tried to connect
I tried to integrate AWS I oT button and Slack
I tried to chew C # (reading and writing files)
I tried to build an environment using Docker (beginner)
I tried using Gson
I tried using TestNG
I tried using Galasa
A story I was addicted to before building a Ruby and Rails environment using Ubuntu (20.04.1 LTS)
I tried unit testing Rails app using RSpec and FactoryBot
I tried to collect and solve Ruby's "class" related problems.
I tried to summarize the basics of kotlin and java
I tried to verify this and that of Spring @ Transactional
I tried to introduce UI animation to Pokedex using Poké API
I tried using Hotwire to make Rails 6.1 scaffold a SPA
I tried to make Java Optional and guard clause coexist
I tried to build the environment little by little using docker
I tried to summarize personally useful apps and development tools (development tools)
I tried to automate LibreOffice Calc with Ruby + PyCall.rb (Ubuntu 18.04)
I tried to build the environment of WSL2 + Docker + VSCode
I tried to summarize personally useful apps and development tools (Apps)
I tried using Dapr in Java to facilitate microservice development
I tried to get started with Swagger using Spring Boot
[Rails] Implementation of multi-layer category function using ancestry "I tried to make a window with Bootstrap 3"
I tried using azure cloud-init
I tried using Apache Wicket
I tried using Java REPL
I tried to verify yum-cron
[Metal] I tried to figure out the flow until rendering using Metal
I tried connecting to MySQL using JDBC Template with Spring MVC
A note when I was addicted to converting Ubuntu on WSL1 to WSL2
[Unity] I tried to make a native plug-in UniNWPathMonitor using NWPathMonitor
I tried to build a simple application using Dockder + Rails Scaffold
I tried to see if Koalas and Elasticsearch can work together
I tried to summarize the methods of Java String and StringBuilder
I tried to make it an arbitrary URL using routing nesting
I tried to display the calendar on the Eclipse console using Java.
Rails API mode I tried to implement the keyword multiple search function using arrays and iterative processing.