「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。
-[[戻る>VM起動後の開発環境のセットアップ]]
--[[VM起動後の開発環境のセットアップ(Windows)]]
--VM起動後の開発環境のセットアップ(Linux)
*目次 [#j2413fcb]
#contents
*概要 [#k6bf2200]
ココの手順は、全て、Ubuntu18.04 LTSで行っています。
-クラウド環境に依存しないVM起動後のLinux開発環境のセットアップ。~
(と言いつつ、ユーザ名が、AzureUserになっているのはアレ)
-デスクトップは当該OSイメージにインストール済みだった。
-とりあえず、Ubuntuで[[dotnet開発する環境構築>Linuxの各種 手順#f67a87ad]]を目的にしても良いカモ。
-[[Hyper-V + Ubuntu Desktop>#eb4e9275]]は、ホストのスペックが無いとキツそう。
*事前の準備 [#d5928084]
**SSH [#r7796446]
以下のように接続する(CMD等から接続)。
-秘密鍵アリ
ssh -i <秘密キーのパス> AzureUser@xxx.xxx.xxx.xxx
-秘密鍵ナシ
ssh AzureUser@xxx.xxx.xxx.xxx
※ Azureの接続のSSHタブを参照するなど(AzureUserは既定のアカウント名)。
**初期設定 [#r43e1401]
***アップデート [#j0f4acbd]
-以下のコマンドを実行
$ sudo apt update
$ sudo apt upgrade -y
$ sudo apt autoremove -y
$ sudo apt autoclean -y
$ sudo reboot
※ [[再接続>#r7796446]]
***タイムゾーン変更 [#p13318b2]
-以下のコマンドを実行
$ sudo timedatectl set-timezone Asia/Tokyo
***日本語化 [#lf16770c]
-以下のコマンドを実行
$ sudo apt install -y language-pack-ja-base language-pack-ja ibus-mozc fonts-takao-pgothic fonts-takao-gothic fonts-takao-mincho
$ sudo localectl set-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"
$ source /etc/default/locale
***キーボードレイアウト変更 [#e513dd54]
-以下のコマンドを実行
$ sudo dpkg-reconfigure keyboard-configuration
-ウィザードにて以下を指定。
--Generic 105-key PC (Intl.)
--日本語
--日本語
--キーボード配置のデフォルト
--コンポーズキーなし
--いいえ
**RDS [#x437df57]
***手順 [#y4d3a201]
-インストール
--インストール準備
$ sudo apt update
--xfceのインストール
$ sudo apt -y install xfce4
[[gdm3とlightdm>Linuxのデスクトップ環境]]の選択画面が~
表示されるので、[[lightdm>Linuxのデスクトップ環境#ja267d39]]を選択する。
--xfce4-sessionのインストール
$ sudo apt install xfce4-session
--xrdpをインストール
$ sudo apt -y install xrdp
-xrdpを構成する
--サービスの自動起動を有効化
$ sudo systemctl enable xrdp
--セッションの開始時に使用するデスクトップ環境を xrdp に指定
$ echo xfce4-session >~/.xsession
--ポート番号を変更する場合、
---設定ファイルを開き、
$ sudo vi /etc/xrdp/xrdp.ini
---設定値を変更する。
port=3389 ←ここの数値を任意のポートに変更
--xrdp サービスを再起動し、変更内容を有効にする。
$ sudo service xrdp restart
-[[秘密鍵アリ>#r7796446]]の場合、パスワードを設定
$ sudo passwd <現在のユーザー名>
-NSG受信セキュリティ規則~
リモート デスクトップ トラフィックにNSGルールを作成する
>az vm open-port --resource-group <rgName> --name <vmName> --port <ポート番号>
-RDP接続を行う。~
接続からRDPを選択肢、RDPファイルをダウンロード、~
右クリック → 編集で、ユーザ名を入力して~
--「資格情報を保存できるようにする」のチェックをオンにして接続。~
--以降は、「資格情報を常に確認する」のチェックをオフにして接続。~
(そうすると、アカウント情報を、いちいち、手打ちする必要がなくなる)
***参考 [#o8b3b26c]
-Linux で xrdp を使用する - Azure Virtual Machines~
https://docs.microsoft.com/ja-jp/azure/virtual-machines/linux/use-remote-desktop
-AzureのLinuxマシンにリモートデスクトップで接続してみた | NE + Azure~
https://cloud.nissho-ele.co.jp/blog/azure_connect_xrdp/
-Azure VM (Ubuntu Server 20.04 LTS) に~
GNOME + TigerVNC + xrdp を導入、~
リモート デスクトップ接続を行う | 焦げlog~
https://kogelog.com/2020/05/12/20200512-01/
-Ubuntu 18.04にリモートデスクトップを構成してみる | cloud.config Tech Blog~
https://tech-blog.cloud-config.jp/2020-02-03-azure-vm-xrdp-install/
*インストール [#xd400887]
**Text Editor [#la5f716d]
***gedit [#z15a3bd9]
標準でインストールされている。
***Geany [#u62c1b10]
$ sudo apt install geany
**WWW Browser [#q9d76ef4]
***Chrome [#z63cb19e]
$ sudo wget --no-check-certificate https://dl-ssl.google.com/linux/linux_signing_key.pub
$ sudo apt-key add linux_signing_key.pub
$ sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main " >> /etc/apt/sources.list'
$ sudo apt update
$ sudo apt install -y google-chrome-stable
***, etc. [#b75c00bc]
**Git [#v4b8ab42]
***手順 [#sd9b2197]
-インストール
$ sudo apt install git
-確認
$ dpkg -l git
-初期設定
$ git config --global user.name [任意のユーザ名]
$ git config --global user.email [任意のユーザ名]
-[[動作確認>Git#f825d4d1]]
***参考 [#u905f25a]
-UbuntuにGitをインストールする - Qiita~
https://qiita.com/tommy_g/items/771ac45b89b02e8a5d64
**Docker [#l2d9ece0]
***手順 [#d2b98d57]
-準備
--aptのアップデート
$ sudo apt update
--HTTPSでrepositoryと通信するパッケージのインストール
$ sudo apt install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
--Dockerの公式GPG keyを追加
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
--パッケージ・マネージャのリポジトリを追加
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
--再度 aptのアップデート
$ sudo apt update
-[[Docker]]のインストール
--インストール
$ sudo apt install -y docker-ce
--確認
$ docker
...
-一般ユーザでも sudo 無しでdockerを使えるようにする
--確認
$ whoami
AzureUser
$ docker ps
Got permission denied while...
--一般ユーザをDockerグループに追加
---確認
$ cat /etc/group | grep docker
docker:x:999:
---追加
sudo gpasswd -a AzureUser docker
---確認
$ cat /etc/group | grep docker
docker:x:999:AzureUser
--使用するソケットを読み込み出来るようにする
---権限付与
$ sudo chmod 666 /var/run/docker.sock
---確認
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
-[[Dockerコンポーズ]]のインストール
--準備
---リリースを確認~
https://github.com/docker/compose/releases
---バージョン番号の設定(変数に設定)
export compose='1.26.0'
--インストール
---ダウンロードして
$ sudo curl -L https://github.com/docker/compose/releases/download/${compose}/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
---実行権限を付与し、
$ sudo chmod 0755 /usr/local/bin/docker-compose
---確認(sodo無
$ docker-compose -v
docker-compose version 1.26.0, build d4451659
-[[動作確認>Docker#xbfee1d5]]~
docker-composeで、voting-appを起動した所。
#ref(1.png,left,nowrap,DockerOnLinux1,60%)
***参考 [#yac51e82]
-Ubuntu18.04にDockerをインストールする手順~
https://www.virment.com/ubuntu18-04-how-to-setup-docker/
-Ubuntu 18.04にDockerをインストールして使用する方法~
https://www.codeflow.site/ja/article/how-to-install-and-use-docker-on-ubuntu-18-04
-Ubuntu 18.04 LTS に Docker をインストールする | SIDfm™ VM ユーザガイド~
https://www.softek.co.jp/SID/support/sidfmvm/guide/install-docker-ubuntu1804.html
-Qiita
--Ubuntuにdockerをインストールする~
https://qiita.com/tkyonezu/items/0f6da57eb2d823d2611d
--Docker のインストール on Ubuntu~
https://qiita.com/ossan_pg/items/2d2ff8e9ee13ea32b3ab
--Ubuntu 18.04にDockerをインストールする(+docker-composeも)~
https://qiita.com/iganari/items/fe4889943f22fd63692a
--Hyper-V上のUbuntu 18.04LTSにdockerインストール~
https://qiita.com/mfunaki/items/be04a6082272bb7e6100
**WWWサーバ [#lc5c62cf]
***[[ローカル>Linuxの各種 手順#s1b5681a]] [#jc55fb21]
***コンテナ [#cd2035ce]
**DBMS [#bfd4056f]
***[[ローカル>Linuxの各種 手順#dd27e8e6]] [#f930c3c7]
***[[コンテナ>#r919f9a4]] [#s49aaab7]
**統合開発環境 (IDE) [#b3881ad7]
***Node.js [#u3ffb2e6]
-以下でインストール可能とあるが
$ sudo apt install nodejs -y
$ sudo apt install npm -y
-調べてみると、バージョンが古い。
$ npm -v
3.5.2
$node -v
v8.10.0
- n package を導入
sudo npm install n -g
-n package を使って node をインストール
$ sudo n stable
-最初に入れた nodejs, npm を削除。
$ sudo apt purge -y nodejs npm
-ターミナルを再起動し、バージョンを確認する。
$ npm -v
6.14.5
$node -v
v12.18.1
***Visual Studio Code [#xa15e19f]
$ curl -L -o vscode.deb https://go.microsoft.com/fwlink/?LinkID=760868
$ sudo apt install -y ./vscode.deb
-参考
--UbuntuにVSCodeをインストールする3つの方法 - Qiita~
https://qiita.com/yoshiyasu1111/items/e21a77ed68b52cb5f7c8
***.NET Core SDK or Runtime [#f8a6bda9]
- Linux リポジトリを構成
wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
-SDK のインストール
sudo apt-get update; \
sudo apt-get install -y apt-transport-https && \
sudo apt-get update && \
sudo apt-get install -y dotnet-sdk-3.1
-ランタイムをインストール
sudo apt-get update; \
sudo apt-get install -y apt-transport-https && \
sudo apt-get update && \
sudo apt-get install -y aspnetcore-runtime-3.1
-参考
--Ubuntu に .NET Core をインストールする - .NET Core | Microsoft Docs~
https://docs.microsoft.com/ja-jp/dotnet/core/install/linux-ubuntu
***参考 [#zc77ff34]
-簡単にUbuntuにVSCode (Visual Studio Code) をインストールする方法 | カレリエ~
https://www.karelie.net/install-vscode-ubuntu/
-UbuntuにVisual Studio Codeをインストールしてみた | あんらぶぎーくどっとこむ~
https://anlovegeek.com/ubuntu-install-vscode/
-Qiita
--Node.js
---Ubuntuに最新のNode.jsを難なくインストールする~
https://qiita.com/seibe/items/36cef7df85fe2cefa3ea
--Visual Studio Code
---UbuntuにVSCodeをインストールする3つの方法~
https://qiita.com/yoshiyasu1111/items/e21a77ed68b52cb5f7c8
---ubuntu 18.04にvscodeをインストールする~
https://qiita.com/yoshiyasu1111/items/e4db676e846897f8d554
---Ubuntu 18.04 をRDP接続し日本語化してVisual Studio Codeを使用するまで~
https://qiita.com/y_ohr/items/67ddc580f9d47f87b061
*追加の動作確認 [#v677a7ee]
**[[EvaluateAspNetCoreOnDocker/LocalServices>https://github.com/daisukenishino2/EvaluateAspNetCoreOnDocker/tree/master/LocalServices]]を実行してみる。 [#r919f9a4]
が動くかどうか?
Readmeの手順を、そのまま、~
Linux VM上で実行してみた。
#ref(2.png,left,nowrap,DockerOnLinux2,60%)
...ボチボチ動くっぽい。
**WebApplication1+[[Dockerコンポーズ]]を実行してみる。 [#r26fd095]
***Windows上で準備 [#s4c26832]
-WebApplication1を新規作成
-Dockerサポートを追加し、
-[[「コンテナー オーケストレーター」の Docker Compose を選択>https://techinfoofmicrosofttech.osscons.jp/index.php?Visual%20Studio%20Tools%20for%20Docker#z92ecb75]]
-docker-compose.override.ymlを削除し、~
docker-compose.ymlを以下のように変更する。
version: '3.4'
services:
webapplication1:
image: ${DOCKER_REGISTRY-}webapplication1
build:
context: .
dockerfile: WebApplication1/Dockerfile
ports:
- "5000:5000"
-HTTPSで起動しないようにHTTPの5000に固定する(Program.cs)。
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseUrls("http://0.0.0.0:5000/")
.Build();
-これは、以下のエラーを封じるため。~
(HTTPSで起動するには証明書を作成する必要があるらしい)
Unable to start Kestrel.
-参考
--ASP.NET CoreをUbuntu18.04 LTSで動かしてみたよ~ - Qiita~
https://qiita.com/jiey@github/items/4d08c341ca3b9239b15f
--linux - Unable to start Kestrel.~
System.IO.IOException: Failed to bind to address~
http://127.0.0.1:5000: address already in use - Stack Overflow~
https://stackoverflow.com/questions/55143246/unable-to-start-kestrel-system-io-ioexception-failed-to-bind-to-address-http
***ZIPしてWindows → Linuxへ [#m1d7c411]
-Windows上で圧縮し、
-unzipのインストールは以下
$ sudo apt install unzip
-Linux上で解凍
unzip WebApplication1.zip
***起動(docker-compose up -d) [#c7336540]
-起動
--いつものコマンドで起動できる。
docker-compose up -d
--リビルドする場合、「--build 」オプションを指定する。
$ docker-compose up --build -d
-以下のように画面が起動する。~
(Home page が Hoge pageになっている)
#ref(3.png,left,nowrap,DockerOnLinux3,50%)
**WebApplication1を新規作成してdebug込みのlaunchを構成する。 [#k7292bfa]
***Windows上での手順 [#ldad410e]
-プロジェクト名と同名のフォルダを作成する。
-作成したフォルダに cd する。
-dotnet new mvc する。
>dotnet new mvc
The template "ASP.NET Core Web App (Model-View-Controller)" was created successfully.
This template contains technologies from parties other than Microsoft, see https://aka.ms/aspnetcore/3.1-third-party-notices for details.
Processing post-creation actions...
Running 'dotnet restore' on C:\Users\nishi\source\repos\WebApplication1\WebApplication1.csproj...
C:\Users\nishi\source\repos\WebApplication1\WebApplication1.csproj の復元が 172.54 ms で完了しました。
-dotnet run する。~
コレで launch.json 等が自動生成される模様
>dotnet run
info: Microsoft.Hosting.Lifetime[0]
Now listening on: https://localhost:5001
info: Microsoft.Hosting.Lifetime[0]
Now listening on: http://localhost:5000
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
Content root path: C:\Users\nishi\source\repos\WebApplication1
info: Microsoft.Hosting.Lifetime[0]
Application is shutting down...
-URLにアクセスして動作確認する。
-VS Codeで、フォルダを開く。
-[Run]に移動し(Ctrl + Shift + D)、以下を押下。
To customize Run and Debug [create a launch.json file].
-[.NET Core] を選択する(存在しない場合、[[C#のExtension>https://techinfoofmicrosofttech.osscons.jp/index.php?CSharp%20for%20Visual%20Studio%20Code]]をインストール)。
-[Start Debugging]で、Debug実行を開始する。
***Linux上での手順 [#h73e5287]
-[[Windows上での手順>#ldad410e]]とほぼ同様だが、
Unable to start Kestrel.
の問題のために、そのままでは、dotnet run できない。
-HTTPSで起動しないようにHTTPの5000に固定する(Program.cs)。
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>()
.UseUrls("http://0.0.0.0:5000/");
});
-そして、[Start Debugging]で、Debug実行を開始できる。
*以降のバージョン [#b8dd5203]
Ubuntu18.04 LTS以降
**Ubuntu 20.04 LTS [#v624729e]
***[[初期設定>#r43e1401]] [#g89cd1d4]
-以下が表示されたので、
sshd_config: A new version (/tmp/filehV7Xqu) of configuration file /etc/ssh/sshd_config is available, but the version installed currently has been locally modified.
-一覧中から、以下を選択した。
keep the local version currently installed
***[[RDS>#x437df57]]への接続 [#y464ac94]
変更はなさそう。
**Ubuntu 22.04 LTS [#gd249de1]
普通に使ってましたケド、メモなしです。
**[[Ubuntu 24.04 LTS>#n1f3a6b6]] [#y8ae3bf6]
*参考 [#cb6115c2]
**[[Linux]] [#kf107ffb]
***[[vi]] [#zac078a3]
***[[各種 基礎>Linuxの各種 基礎]] [#i725c86f]
**apt-get、apt [#kc78299f]
-apt と apt-get の違い | rs-techdev~
https://rs-techdev.com/archives/151
-パッケージ管理コマンド aptとapt-getの違い - Qiita~
https://qiita.com/quzq/items/8e47414bf95d1fcfa24a
-aptコマンドはこれまでのapt-getなどと比べて何が楽になるか~
https://yutarine.blogspot.com/2017/07/apt-aptget-compare.html
**Hyper-V + Ubuntu Desktop [#eb4e9275]
-Windows 10 Pro Hyper-V に Ubuntu 18.04 LTS をインストール - Qiita~
https://qiita.com/mfunaki/items/9e2901936b04f00f9cd7
-Windows上にUbuntuのVMを立ててVSCodeでつないで開発環境にする | Qrunch(クランチ)~
https://qrunch.net/@eaaaaaaaaaaai/entries/uCUJJeskp2em19Ou
-Ubuntu 18.04 LTS Desktop をインストールする方法 | SEECK.JP サポート~
https://kb.seeck.jp/archives/8056
**Ubuntu Japanese Team [#rd6ad7d7]
ubuntu-ja-18.04.3-desktop-amd64.iso を取得。
-Ubuntu 18.04 LTS 日本語 Remix リリース~
https://www.ubuntulinux.jp/News/ubuntu1804-ja-remix
-Ubuntu Desktop 日本語 Remixのダウンロード~
https://www.ubuntulinux.jp/download/ja-remix
**[[Ubuntu 24.04 on Azure via Bastion 2025/2/27]](Python) [#n1f3a6b6]