Install .NET Core SDK on elementary OS

At this writing, I’m running elementary OS 0.4.1 Loki, which is based on Ubuntu 16.04.2 LTS. (It is important to know the Ubuntu version, since the .NET Core SDK distribution has different source list for different Linux distros and versions.)

.NET Core SDK version: v2.1.301

  1. Go to the All .NET Download site of Microsoft at
  2. Click the link to the SDK version you want. For example, 2.1 SDK (v2.1.301) downloads.
  3. Choose the link of the Linux distro and version you are using. For example, since I’m running elementary OS, I click on the Ubuntu 14.04 Instructions link.
  4. Follow the instruction on the page to register Microsoft key and repository, and to follow steps to install .NET SDK.

    In my case, since my connection to the internet is behind a proxy server, I first make sure that wget is using proxy (see this post about [wget proxy setting]).

    Register Microsoft key and package source

    I type in the following wget command to get the .deb package from Microsoft.

    ~$ wget
    --2018-06-27 11:03:08--
    Connecting to connected.
    Proxy request sent, awaiting response... 200 OK
    Length: 2452 (2.4K) [application/octet-stream]
    Saving to: ‘packages-microsoft-prod.deb’
    packages-microsoft-prod.deb                                 100%[==========================================================================================================================================>]   2.39K  --.-KB/s    in 0s      
    2018-06-27 11:03:09 (469 MB/s) - ‘packages-microsoft-prod.deb’ saved [2452/2452]

    I then install the downloaded package

    ~$ sudo dpkg -i packages-microsoft-prod.deb
    Selecting previously unselected package packages-microsoft-prod.
    (Reading database ... 173634 files and directories currently installed.)
    Preparing to unpack packages-microsoft-prod.deb ...
    Unpacking packages-microsoft-prod (1.0-3) ...
    Setting up packages-microsoft-prod (1.0-3) ...

    Which does three things: 1) adds the Microsoft packages information to the source list; 2) adds the Microsoft key to the trusted list; and 3) sets root as the owner of the two added files. See directory listing below:

    ~$ ls -l /etc/apt/sources.list.d/
    total 16
    -rw-r--r-- 1 root root  56 Feb 14 10:56 appcenter.list
    -rw-r--r-- 1 root root 144 Feb 14 10:56 elementary.list
    -rw-r--r-- 1 root root  78 Nov 27  2017 microsoft-prod.list
    -rw-r--r-- 1 root root 152 Feb 14 10:56 patches.list
    ~$ ls -l /etc/apt/trusted.gpg.d
    total 4
    -rw-r--r-- 1 root root 641 Jan 23  2017 microsoft-prod.gpg

    Install .NET Core SDK

    Make sure that https download transport for APT is installed and up to date.

    ~$ sudo apt-get install apt-transport-https

    downloads the package lists from the repositories and updates them to get information on the newest versions of packages and their dependencies.

    ~$ sudo apt-get update

    Install .NET SDK Core 2.1

    ~$ sudo apt-get -y install dotnet-sdk-2.1

    At the end of the installation, you will see the following information…

    This software may collect information about you and your use of the software, and send that to Microsoft.
    Please visit for more information.
    Welcome to .NET Core!
    Learn more about .NET Core:
    Use 'dotnet --help' to see available commands or visit:
    The .NET Core tools collect usage data in order to help us improve your experience. The data is anonymous and doesn't include command-line arguments. The data is collected by Microsoft and shared with the community. You can opt-out of telemetry by setting the DOTNET_CLI_TELEMETRY_OPTOUT environment variable to '1' or 'true' using your favorite shell.
    Read more about .NET Core CLI Tools telemetry:
    A command is running to populate your local package cache to improve restore speed and enable offline access. This command takes up to one minute to complete and only runs once.

    Verify that .NET Core 2.1 is installed

    ~$ dotnet --version

Getting pacman to work through proxy with Wget

  1. Configure pacman to use Wget

    Edit pacman.conf

    $ sudo nano /etc/pacman.conf

    Uncomment or add the following line

    XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u

    Save and exit.

  2. Set Wget proxies and set Wget to use proxy

    Edit wgetrc

    sudo nano /etc/wgetrc

    Find the following section in wgetrc regarding proxy settings.

    # You can set the default proxies for Wget to use for http, https, and ftp.
    # They will override the value in the environment.
    #https_proxy =
    #http_proxy =
    #ftp_proxy =
    # If you do not want to use proxy at all, set this to off.
    #use_proxy = on

    Uncomment and edit the default proxies, or add your own default proxies for Wget. For example,

    https_proxy =
    http_proxy =
    ftp_proxy =

    Uncomment, or add the following line to set Wget use_proxy on.

    use_proxy = on

Give /tmp more room

Sometimes when I do an update, or build an AUR install with yaourt, I get a “no space left on device” error.

I can temporarily increase the size of /tmp with:

sudo mount -o remount,exec,suid,size=2G,noatime /tmp

That will set /tmp to 2 Gb

Or, for a more long term solution, set the yaourt temporary directory to another location. For example, the following steps set the TMPDIR to the temp directory in my home directory.

$ cd ~
$ mkdir temp
$ sudo nano /etc/yaourtrc

Edit the line



TMPDIR="/home/<my user name>/temp"

Using Multiple Desktops in Raspbian Jessie

To set up multiple desktops:

  1. Click Menu
  2. Click Preferences
  3. Click Openbox Configuration Manager
    menu to Openbox Configuration Manager
    Menu to obconf

    If you do not see the Openbox Configuration Manager, install it by running:
    sudo apt-get install -y obconf

  4. Click on the Desktops tab, and select the desired Number of desktops.
    Desktop Settings
    Desktop Settings

You now have multiple desktops, use the keyboard shortcuts Ctrl + Alt + ⇨ or Ctrl + Alt + ⇦ to switch between the next and previous desktop.

If the shortcuts keys do not work, refer to the following post for Raspbian keyboard shortcuts to change your key-binding in Openbox.

Location of Raspbian Jessie keyboard shortcuts

The default keyboard shortcut setting is in the file
under the <keyboard> section.

There may also be an rc.xml setting file in the same folder for your reference

Your personal shortcuts, if they exists, is in

For examle, add the following in the <keyboard> section to move to adjacent desktop workspace

<keybind key="C-A-Left">
  <action name="DesktopLeft"/>
<keybind key="C-A-Right">
  <action name="DesktopRight"/>