Raspberry Pi 2にmonoを入れてC#でHello Worldする。

ラズパイにmonoをインストールしてC#をやってみようと思います。
monoのサイトにインストール手順が書いてあるのでその通りにやってみます。


まずはapt-keyコマンドで鍵のダウンロードですね!

kurigohan@raspberrypi:~ $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
[sudo] password for kurigohan:
Executing: /tmp/apt-key-gpghome.H3BR5TNU8G/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
gpg: failed to start the dirmngr '/usr/bin/dirmngr': No such file or directory
gpg: connecting dirmngr at '/tmp/apt-key-gpghome.H3BR5TNU8G/S.dirmngr' failed: No such file or directory
gpg: keyserver receive failed: No dirmngr

はいエラー発生(^_^) No dirmngrだそうで。
dirmngrというのは証明書を管理するツールらしい。ではまずそれをインストールします。

kurigohan@raspberrypi:~ $ sudo apt-get install dirmngr
(略)
kurigohan@raspberrypi:~ $ apt list --installed | grep dirmngr

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

dirmngr/stable,now 2.1.18-8~deb9u1 armhf [installed]

インストールしてから知ったのですが、今の時代はapt-getとかではなく「apt」コマンドがトレンドなのだそうですよ奥様知ってました?!
dirmngrがインストールできたので、もう一回鍵をGetしてみます。

kurigohan@raspberrypi:~ $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
Executing: /tmp/apt-key-gpghome.yfE4fFXaMy/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
gpg: key A6A19B38D3D831EF: public key "Xamarin Public Jenkins (auto-signing)
<releng@xamarin.com>" imported
gpg: Total number processed: 1
gpg:   imported: 1

今度は成功したようです。

次は/etc/apt/sources.list.dディレクトリにパッケージソースのリストファイルを作りupdateするのですな。。

kurigohan@raspberrypi:~ $ echo "deb http://download.mono-project.com/repo/debian stable-raspbianstretch main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
deb http://download.mono-project.com/repo/debian stable-raspbianstretch main
kurigohan@raspberrypi:~ $ sudo apt-get update
Get:1 http://download.mono-project.com/repo/debian stable-raspbianstretch InRelease [2,224 B]
Get:2 http://mirrordirector.raspbian.org/raspbian stretch InRelease [15.0 kB]
Get:3 http://archive.raspberrypi.org/debian stretch InRelease [25.3 kB]
Get:4 http://download.mono-project.com/repo/debian stable-raspbianstretch/main armhf Packages [48.6 kB]
Get:5 http://mirrordirector.raspbian.org/raspbian stretch/main armhf Packages [11.7 MB]
Get:6 http://archive.raspberrypi.org/debian stretch/main armhf Packages [144 kB]
Fetched 11.9 MB in 55s (216 kB/s)
Reading package lists... Done

そしてmonoをインストールします。全部入れちゃいますよぉ~!しかし時間かかるな…

kurigohan@raspberrypi:~ $ sudo apt-get install mono-complete
(略)
kurigohan@raspberrypi:~ $ mono --version
Mono JIT compiler version 5.10.0.160 (tarball Wed Mar 7 15:56:15 UTC 2018)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
  TLS:    __thread
  SIGSEGV:  normal
  Notifications: epoll
  Architecture: armel,vfp+hard
  Disabled:  none
  Misc:    softdebug
  Interpreter: yes
  LLVM:   supported, not enabled.
  GC:    sgen (concurrent by default)


やっとmonoがインストールできました。
試しにHello Worldしてみましょう。
monoのC#コンパイラはmcsというヤツなのですね。

kurigohan@raspberrypi:~/src $ cat HelloWorld.cs
using System;

namespace Application
{
   class MainClass
   {
      public static void Main (string[] args)
      {
         Console.WriteLine ("Hello World!");
      }
   }
}
kurigohan@raspberrypi:~/src $ mcs HelloWorld.cs
kurigohan@raspberrypi:~/src $ ls -la
total 16
drwxr-xr-x 2 kurigohan kurigohan 4096 Mar 21 02:37 .
drwxr-xr-x 3 kurigohan kurigohan 4096 Mar 21 02:36 ..
-rw-r--r-- 1 kurigohan kurigohan 178 Mar 21 02:37 HelloWorld.cs
-rwxr-xr-x 1 kurigohan kurigohan 3072 Mar 21 02:37 HelloWorld.exe
kurigohan@raspberrypi:~/src $ ./HelloWorld.exe
Hello World!
kurigohan@raspberrypi:~/src $


短いですが今日はここまで!




この記事へのコメント