ラズパイに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
[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]
(略)
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
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
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)
(略)
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
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 $
using System;
namespace Application
{
class MainClass
{
public static void Main (string[] args)
{
Console.WriteLine ("Hello World!");
}
}
}
kurigohan@raspberrypi:~/src $ mcs HelloWorld.cskurigohan@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 $
短いですが今日はここまで!
この記事へのコメント