「[[.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]