#目的
WindowsPCでC#プログラムを作成したが、それをUbuntuの仮想マシンで実行したくなった。
さらにソースコードにちょこちょこ変更を加えながら実行したくもなった。
よってC#プログラムを仮想マシン上でコンパイル・実行だけできるような環境を作ろうとした。
#前提
・Windows10のPCでUbuntu18.04の仮想マシンを作成し、そこで作業
#環境構築手順
###やることの概略
「Mono」という、異なるプラットフォームで動く.NETアプリを作るためのソフトをUbuntuにインストールする。
###手順
1.Ubuntuにログインする。
2.Mono公式の「Download」のページのLinuxタブを開いたところに実行すべきコマンドが記載されているので、ぞの通りに実行する。
記事執筆時点でのコマンドは以下の通りであった。
sudo apt install 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-bionic main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update
で、自身は1行目の「sudo apt install gnupg ca-certificates」で早速こけた。
root@ubuntu-VirtualBox:/home/ubuntu# apt install gnupg ca-certificate
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package ca-certificate
この場合は、「apt install gnupg ca-certificate」する前に「apt-get update」する必要があるのだそう
(askubuntuの:"Ubuntu Docker Container update-ca-certificates: command not found"より)。
で、その通りにやってみたらうまくいった↓
コマンド実行し直し・・・
sudo apt-get update
sudo apt install gnupg ca-certificates
結果は?
root@ubuntu-VirtualBox:/home/ubuntu# apt install gnupg ca-certificates
Reading package lists... Done
Building dependency tree
Reading state information... Done
ca-certificates is already the newest version (20180409).
gnupg is already the newest version (2.2.4-1ubuntu1.2).
0 upgraded, 0 newly installed, 0 to remove and 15 not upgraded.
3.以下のコマンドを実行してMonoをインストール。
しばらくログがだ~っと出力されて、いつの間にかインストールが終わる。
sudo apt install mono-devel
4.monoコマンドが使えるようになっているか確認するため、「mono --version」を実行する。
以下のような感じに出力されればOK。
#コンパイル・実行の動作確認
適当な場所に簡単なC#ソースコードを作成して試してみる。
今回は「/home/[ユーザ名]/」配下に「Sources」ディレクトリを作り、その中にソースコードを置くことにした。
1.ディレクトリを移動してからviコマンドで新規ファイルを.cs拡張子で作り・・・
cd /home/[ユーザ名]/Sources
vi Hello.cs
2.手抜きコードを書いて保存して閉じる
using System;
namespace Hello
{
class HelloWorld
{
static void Main()
{
Console.WriteLine("Hello World!!");
Console.ReadLine();
}
}
}
3.以下のコマンドを実行してソースコードをコンパイルする。
mcs Hello.cs
コマンド実行後に現在のディレクトリを見てみると、新たにソースコードのファイル名と同名のexeファイルが作られていることがわかる。
4.そしていよいよexeファイルを実行する
mono Hello.exe
((゚∀゚))
#参考にさせて頂いたサイト
・Monoの公式サイト
・LinuxでもC#プログラミング(導入編)
#追記(2020/01/25)
「コンパイル・実行の動作確認」の手順3に誤りがある旨をご指摘頂きましたので、修正しました。
実行コマンドが"msc"となっていましたが、正しくは"mcs"です。
これまで読んでいただいた方にはご迷惑をおかけしました。