Linux環境下で C# などを使ってプログラムを書きたい場合
一昔前は Mono 一択でしたが、去年 Microsoftが .Net Core
として Linuxで使用できる オープンソースな .Netの環境を公開
してくれました。
Monoの環境が作ってあるので特に使っていなかったのですが、
気が向いたので本家版も導入してみようとして、
ちょっと詰まるところがあったのでメモしておきます。
基本的なインストール手順
基本的にインストール手順は .Net Coreの Get Startedに記載されています。
( ただ、ここ記載の方法ではうまく行きませんのでご注意ください )
一応書き出して置くと
◎Fedoraの場合
23 24 向けのファイルしか公開されていないので
Fedora25でも Fedora24のものを使うしかありません。
$ sudo dnf install libunwind libicu
$ curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?linkid=848833
$ sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet
$ sudo ln -s /opt/dotnet/dotnet /usr/local/bin
$ rm dotnet.tar.gz
◎Ubuntuの場合
Ubuntuも 16.10 までしか公式では対応していません。
以下は 16.10 のデータを使う方法です。
$ sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ yakkety main" > /etc/apt/sources.list.d/dotnetdev.list'
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893
$ sudo apt-get update
Failed to initialize CoreCLR, HRESULT: 0x80131500
上記公式の方法でインストールを行った場合
プロジェクトを作ろうとすると
Failed to initialize CoreCLR, HRESULT: 0x80131500
と表示されてうまく動作しません。
どうやら libicu のバージョンが古いものでないと行けなかったり
するようです。
Ubuntuでの対応方法
Ubuntuでは古い libicuが libicu52 というパッケージで導入可能なようです。
このあたりからパッケージを入手して
sudo dpkg -i libicu52_*.deb
などを実行すればOKです。
Fedoraでの対応方法
Fedoraの場合、一発で古い libicu 52.x を導入する方法は見つかりませんでした。
調べてみたところ Fedora23, 24時代の libicu 52.x のパッケージを開腹して
中のライブラリをまるごとコピーした後
$ dotnet='LD_LIBRARY_PATH=~/(展開したライブラリへのパス)/:$LD_LIBRARY_PATH dotnet'
みたいなことをする方法が紹介されていました、 ( ここ や ここ
ちょっときたない方法なので微妙ですね。
もう1つ
Fedora Copr を使う方法があります。
CoprはFeodraやCentOSで使えるサードパーティリポジトリで
最新パッケージを多数収録しているのが特徴です。
同時にオンラインのビルドシステムとしての機能もあり、
自作の srpmをアップロードして 自作rpmを配布することも
できます。
そのようなリポジトリなので信頼性に関して言うと問題も
あるのかもしれませんが、このCoprで配布されている
この パッケージを使うと
簡単に導入可能です。
$ sudo dnf copr enable nmilosev/dotnet-sig
$ sudo dnf install dotnetcore
以上です。
Hello World
導入が無事終わったので HW を書いてみます。
$ mkdir -p ~/work/dotnet/test
$ cd ~/work/dotnet/test
$ dotnet new
$ dotnet restore
$ dotnet run
無事実行できました。
コメントを追加する