Skip to content

DNET_DevEnvSetupLinux

nishi_74322014 edited this page Sep 11, 2026 · 1 revision

VM起動後の開発環境のセットアップ(Linux)

概要

ココの手順は、全て、Ubuntu18.04 LTSで行っています。

  • クラウド環境に依存しないVM起動後のLinux開発環境のセットアップ。
    (と言いつつ、ユーザ名が、AzureUserになっているのはアレ)

  • デスクトップは当該OSイメージにインストール済みだった。

  • とりあえず、Ubuntuでdotnet開発する環境構築(Linuxの各種 手順の該当節を参照)を目的にしても良いカモ。

  • Hyper-V + Ubuntu Desktopは、ホストのスペックが無いとキツそう。

事前の準備

SSH

以下のように接続する(CMD等から接続)。

  • 秘密鍵アリ

    ssh -i <秘密キーのパス> AzureUser@xxx.xxx.xxx.xxx
    
  • 秘密鍵ナシ

    ssh AzureUser@xxx.xxx.xxx.xxx
    

※ Azureの接続のSSHタブを参照するなど(AzureUserは既定のアカウント名)。

初期設定

アップデート

  • 以下のコマンドを実行

    $ sudo apt update
    $ sudo apt upgrade -y
    $ sudo apt autoremove -y
    $ sudo apt autoclean -y
    $ sudo reboot
    

再接続

タイムゾーン変更

  • 以下のコマンドを実行

    $ sudo timedatectl set-timezone Asia/Tokyo
    

日本語化

  • 以下のコマンドを実行

    $ 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
    

キーボードレイアウト変更

  • 以下のコマンドを実行

    $ sudo dpkg-reconfigure keyboard-configuration
    
  • ウィザードにて以下を指定。

    • Generic 105-key PC (Intl.)
    • 日本語
    • 日本語
    • キーボード配置のデフォルト
    • コンポーズキーなし
    • いいえ

RDS

手順(RDS)

  • インストール

    • インストール準備

      $ sudo apt update
      
    • xfceのインストール

      $ sudo apt -y install xfce4
      

      gdm3とlightdmの選択画面が
      表示されるので、lightdmを選択する。
      Linuxのデスクトップ環境の該当節を参照)

    • 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
      
  • 秘密鍵アリの場合、パスワードを設定

    $ sudo passwd <現在のユーザー名>
    
  • NSG受信セキュリティ規則
    リモート デスクトップ トラフィックにNSGルールを作成する

    >az vm open-port --resource-group <rgName> --name <vmName> --port <ポート番号>
    
  • RDP接続を行う。
    接続からRDPを選択し、RDPファイルをダウンロード、
    右クリック → 編集で、ユーザ名を入力して

    • 「資格情報を保存できるようにする」のチェックをオンにして接続。
    • 以降は、「資格情報を常に確認する」のチェックをオフにして接続。
      (そうすると、アカウント情報を、いちいち、手打ちする必要がなくなる)

参考(RDS)

インストール

Text Editor

gedit

標準でインストールされている。

Geany

$ sudo apt install geany

WWW Browser

Chrome

$ 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.

Git

手順(Git)

  • インストール

    $ sudo apt install git
    
  • 確認

    $ dpkg -l git
    
  • 初期設定

    $ git config --global user.name [任意のユーザ名]
    $ git config --global user.email [任意のメールアドレス]
    
  • 動作確認(Gitの「インストール」の該当節を参照)

参考(Git)

Docker

手順(Docker)

  • 準備

    • 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コンポーズのインストール

    • 準備

    • インストール

      • ダウンロードして

        $ 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
        
      • 確認(sudo無

        $ docker-compose -v
        docker-compose version 1.26.0, build d4451659
        
  • 動作確認(Dockerの該当節を参照)
    docker-composeで、voting-appを起動した所。

DockerOnLinux1

参考(Docker)

WWWサーバ

DBMS

統合開発環境 (IDE)

Node.js

  • 以下でインストール可能とあるが

    $ 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

Visual Studio Code

$ curl -L -o vscode.deb https://go.microsoft.com/fwlink/?LinkID=760868
$ sudo apt install -y ./vscode.deb

.NET Core SDK or Runtime

  • 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
    
  • 参考

参考(IDE)

追加の動作確認

EvaluateAspNetCoreOnDocker/LocalServicesを実行してみる。

EvaluateAspNetCoreOnDocker/LocalServicesが動くかどうか?

Readmeの手順を、そのまま、
Linux VM上で実行してみた。

DockerOnLinux2

...ボチボチ動くっぽい。

WebApplication1+Dockerコンポーズを実行してみる。

Dockerコンポーズ

Windows上で準備

  • WebApplication1を新規作成

  • Dockerサポートを追加し、

  • 「コンテナー オーケストレーター」の Docker Compose を選択(Visual Studio Tools for Dockerの該当節を参照)

  • 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.
    
  • 参考

ZIPしてWindows → Linuxへ

  • Windows上で圧縮し、

  • unzipのインストールは以下

    $ sudo apt install unzip
    
  • Linux上で解凍

    unzip WebApplication1.zip
    

起動(docker-compose up -d)

  • 起動

    • いつものコマンドで起動できる。

      docker-compose up -d
      
    • リビルドする場合、「--build 」オプションを指定する。

      $ docker-compose up --build -d
      
  • 以下のように画面が起動する。
    (Home page が Hoge pageになっている)

DockerOnLinux3

WebApplication1を新規作成してdebug込みのlaunchを構成する。

Windows上での手順

  • プロジェクト名と同名のフォルダを作成する。

  • 作成したフォルダに 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をインストール)。

  • [Start Debugging]で、Debug実行を開始する。

Linux上での手順

  • Windows上での手順とほぼ同様だが、

    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実行を開始できる。

以降のバージョン

Ubuntu18.04 LTS以降

Ubuntu 20.04 LTS

初期設定(20.04)

  • 以下が表示されたので、

    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への接続(20.04)

変更はなさそう。RDSを参照。

Ubuntu 22.04 LTS

普通に使ってましたケド、メモなしです。

Ubuntu 24.04 LTS

Ubuntu 24.04 on Azure via Bastion 2025/2/27(Python)

参考

Linux

apt-get、apt

Hyper-V + Ubuntu Desktop

Ubuntu Japanese Team

ubuntu-ja-18.04.3-desktop-amd64.iso を取得。

移行メモ

  • 「接続からRDPを選択肢、」→「選択し、」に修正した。
  • git config の 2 行目は user.email の設定であるにもかかわらず コメントが「[任意のユーザ名]」になっていたため「[任意のメールアドレス]」に修正した。
  • docker-compose.yml のポート指定が全角コロン("5000:5000")になっていたため 半角コロンに修正した。
  • 「確認(sodo無」→「確認(sudo無」に修正した。
  • 元 Wiki では見出しそのものが他ページへのリンクになっていた箇所 (「ローカル」「コンテナ」「Visual Studio Code」「Linux」「vi」「各種 基礎」 「EvaluateAspNetCoreOnDocker/LocalServices...」)は、GitHub Wiki では 見出しからアンカが生成されるため、見出しをプレーン・テキストとし、 リンクは直下の本文(箇条書き)に置いた。
  • 同名の見出し(「手順」「参考」「初期設定」「RDS」)が複数あり GitHub Wiki でアンカが衝突するため、括弧で文脈を補って一意にした。
  • マイクロソフト系技術情報 Wiki(techinfoofmicrosofttech.osscons.jp)への URL リンクは、移行済みの Visual Studio Code / CSharp for Visual Studio Code / Visual Studio Tools for Docker に張り替えた。
  • PukiWiki のページ内アンカ(#xxxxxxxx)は GitHub Wiki では再現できないため、 同一ページ内のアンカは見出しから生成されるアンカに張り替え、 他ページのアンカを指すリンクは「〜(ページ名 の該当節を参照)」の形に置き換えた。

Tags: 移行, Linux, Ubuntu, 開発環境, xrdp, RDP, Docker, docker-compose, Node.js, VS Code, .NET Core

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally