Skip to content

Instantly share code, notes, and snippets.

@DamianSuess
Last active August 8, 2022 16:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DamianSuess/c4db8bae30b2ab6a3b2107eb39ab2cd1 to your computer and use it in GitHub Desktop.
Save DamianSuess/c4db8bae30b2ab6a3b2107eb39ab2cd1 to your computer and use it in GitHub Desktop.
Building DotDevelop and MonoDevelop from scratch

Building DotDevelop

Build Steps

Ubuntu 22.04 doesn’t support .NET Core 3.1 or 2.0 since the distro only supports openSSL 3.

sudo apt update
sudo apt install wget
sudo apt install intltool fsharp gtk-sharp2

## Ubuntu 22.04
# wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
# sudo dpkg -i packages-microsoft-prod.deb
# rm packages-microsoft-prod.deb

## Ubuntu 20.04
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

# Install .NET 3.1 - Not supported on Ubuntu 22.04
sudo apt-get install -y apt-transport-https
sudo apt-get update
sudo apt-get install -y dotnet-sdk-3.1

# Install .NET 6
sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-6.0

# Install Mono and MSBuild
sudo apt-get install -y gnupg ca-certificates
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF

# Reference mono and msbuild from stable repo for versions 6.12.0.122 (mono) and 16.6.0.15201 (msbuild)
echo "deb https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list

# Reference mono and msbuild from preview repo for versions 6.12.0.147 (mono) and 16.10.1 (msbuild)
# echo "deb https://download.mono-project.com/repo/ubuntu preview-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-preview.list
sudo apt-get update

# Install mono-complete and ca-certificates-mono
sudo apt-get install -y mono-complete ca-certificates-mono

# Synchronise Mono SSL certs
cert-sync /etc/ssl/certs/ca-certificates.crt

# Install extra packages required for dotdevelop build
sudo apt-get install -y sed git build-essential intltool nuget fsharp gtk-sharp2
sudo apt-get install -y software-properties-common
sudo apt-get update

Build

git clone -b main https://github.com/dotdevelop/dotdevelop.git
cd dotdevelop/

./configure --profile=gnome
make

# Start MonoDevelop
mono main/build/bin/MonoDevelop.exe

## Detatches process from terminal
(mono main/build/bin/MonoDevelop.exe &)

Issues

Missing DotNetDbg

The basic install steps do not include, "Samsung .NET Core Debugger" by default. To build this, you must have cmake installed.

To build (requires ~500 MB):

sudo apt install curl
sudo apt install cmake
sudo apt install clang
cd main/external/Samsung.Netcoredbg
bash build.sh

New Location: main/build/AddIns/Samsung.Netcoredbg/netcoredbg

BASH History

This my BASH history used to stand-up DotDevelop.

# Basics
sudo apt install git
sudo apt install intltool fsharp gtk-sharp2
sudo apt install wget

# .NET 3.1
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

sudo apt-get install -y apt-transport-https
sudo apt-get update
sudo apt-get install -y dotnet-sdk-3.1

# MonoDevelop Dependencies
sudo apt-get install -y gnupg ca-certificates
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt-get update
sudo apt-get install -y mono-complete ca-certificates-mono
cert-sync /etc/ssl/certs/ca-certificates.crt
sudo apt-get install -y sed git build-essential intltool nuget fsharp gtk-sharp2
sudo apt-get install -y software-properties-common
sudo apt-get update
git clone -b main https://github.com/dotdevelop/dotdevelop.git
cd dotdevelop
./configure --profile=gnome
make
# dotnet MonoDevelop.exe
mono MonoDevelop.exe

References

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment