Introduction
.NET CoreをDocker経由で動かしたりしました。
今回はGUIで動かしたいですし、きちんとホストOSに環境を構築します。
対象はRedhat Enterprise Linux 7.3です。
Install .NET Core
結論から良うと、2017/05/16の時点で、.NET Coreの公式ページのRHELへのインストール手順は動きません。
コマンド自体は間違っていませんが、
- コマンドが古い
- .NET Core 1.0がインストールされてしまう
- パッケージが見つからない
- RHELは下準備が必要
なのです。
実際に、インストールコマンドを入力すると、
$ sudo yum install rh-dotnetcore10
読み込んだプラグイン:langpacks, product-id, search-disabled-repos, subscription-manager
Repo rhel-rs-for-rhel-7-server-eus-rpms forced skip_if_unavailable=True due to: /etc/pki/entitlement/7836591386407218947-key.pem
Repo rhel-7-server-extras-rpms forced skip_if_unavailable=True due to: /etc/pki/entitlement/7836591386407218947-key.pem
Repo rhel-ha-for-rhel-7-server-eus-rpms forced skip_if_unavailable=True due to: /etc/pki/entitlement/7836591386407218947-key.pem
Repo rhel-7-server-eus-rpms forced skip_if_unavailable=True due to: /etc/pki/entitlement/7836591386407218947-key.pem
Repo rhel-7-server-rt-beta-rpms forced skip_if_unavailable=True due to: /etc/pki/entitlement/7836591386407218947-key.pem
Repo rhel-rs-for-rhel-7-server-rpms forced skip_if_unavailable=True due to: /etc/pki/entitlement/7836591386407218947-key.pem
Repo rhel-ha-for-rhel-7-server-rpms forced skip_if_unavailable=True due to: /etc/pki/entitlement/7836591386407218947-key.pem
Repo rhel-7-server-rpms forced skip_if_unavailable=True due to: /etc/pki/entitlement/7836591386407218947-key.pem
Repo rhel-7-server-rt-rpms forced skip_if_unavailable=True due to: /etc/pki/entitlement/7836591386407218947-key.pem
https://cdn.redhat.com/content/beta/rhel/server/7/x86_64/rt/os/repodata/repomd.xml: [Errno 14] curl#58 - "unable to load client key: -8178 (SEC_ERROR_BAD_KEY)"
他のミラーを試します。
警告: 一致するものが見つかりません: dotnetcore
No matches found
となります。
RHELの場合、サブスクリプションを再登録し、リポジトリへ.NET Coreのチャネルを登録する必要があります。
CHAPTER 1. INSTALL .NET CORE 1.0 ON RED HAT ENTERPRISE LINUX
サブスクリプションの再登録
$ subscription-manager unregister
$ subscription-manager clean
# RedHatのアカウントを入力
$ subscription-manager register
登録中: subscription.rhsm.redhat.com:443/subscription
ユーザー名: XXX@YYY.ZZZ
パスワード:
このシステムは次の ID で登録されました: XXXXXXXX-YYYY-ZZZZ-AAAA-BBBBCCCCDDDD
# 日本語環境なら、subscription-manager list --available | egrep "サブスクリプション名|プール ID"
$ subscription-manager list --available | egrep "Subscription Name|Pool"
サブスクリプション名: Red Hat Enterprise Linux Developer Suite
プール ID: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
subscription-manager attach --pool=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
サブスクリプションが正しく割り当てられました: Red Hat Enterprise Linux Developer Suite
リポジトリの登録
# workstationなら -server- を -workstation- に変更
$ subscription-manager repos --enable=rhel-7-server-dotnet-rpms
# ついでにベータのリポジトリを無効
$ subscription-manager repos --disable=rhel-7-server-rt-beta-rpms
scl-utilsのインストール
$ yum install scl-utils
.NET Coreのインストール
.NET Core 1.1をインストールします。
- 誤) dotnetcore10
- 正) dotnetcore11
です。
$ yum install rh-dotnetcore11 -y
.NET Coreの有効化
まだこの状態では.NET Coreは使えません。下記のコマンドを実行して、.NET Coreを有効化します。
$ scl enable rh-dotnetcore11 bash
上記コマンド実行後、同一のシェルのみで、dotnetが使えます。
逆を言えば、別のシェルを立ち上げても、dotnetは使えません。
毎回、上記コマンドを実行するのは面倒なので、
$ source scl_source enable rh-dotnetcore11
を実行すれば良い、と前述のRedhatのページに書いてあるのですが、何故か効果がありません。
なので、シェルを立ち上げる際に、毎回自動で実行されるよう、~/.bashrcにコマンドを追記します。
$ su -
$ vi ~/.bashrc
viを起動し、末尾に
source scl_source enable rh-dotnetcore10
を追記します。
そして、シェルを立ち上げ直して、dotnetのバージョンを確認します。
$ dotnet --version
1.0.0-preview2-1-003177
これで、.NET Coreが利用できるようになりました。
Conclusion
基本となる.NET Coreの導入が完了です。