Scala を、Visual Studio Code で動かしたいんじゃ~、あ、どうもボクです。
ちまたでは、VSCode とか略称で呼ばれたりしてるそうですが、Wikipedia 先輩によりますと、
Visual Studio Codeはソースコードエディタである。マイクロソフトにより開発され、Windows、Linux、macOS上で動作する。デバッグ、Gitクライアントの統合、シンタックスハイライト、インテリセンス、スニペット、リファクタリングなどの機能を持つ。カスタマイズもでき、利用者はエディタのテーマやキーボードショートカット等を変更できる。
⇧ MicroSoft 製のソースコードエディター であると。
Visual Studio CodeはElectronフレームワークを使用しており、Node.jsを使ったBlinkで描画されるデスクトップアプリケーションである。なお、Electronを使用したテキストエディタとしてAtomが有名であるが、そこからの派生ではなく、Visual Studio Online のエディタ(コードネーム "Monaco")が基になっている。
⇧ Electron って言われてもね。
Electronは、GitHubが開発したオープンソースのソフトウェアフレームワークである。
ChromiumとNode.jsを使っており、HTML、CSS、JavaScriptのようなWeb技術で、macOS、Windows、Linuxに対応したデスクトップアプリケーションをつくることができる。
⇧ GitHubが開発元らしい。
また、Visual Studioとは名称に共通点があり、使われている技術にも共有されている部分があるものの、直接的な派生関係は無い
⇧ 統合開発環境の Visual Studio とは、違うよと。
Visual Studio Codeとvscode(GitHub上のリポジトリ名)は完全に同一のものと思われがちだ。しかし、Visual Studio Codeはオープンソースのvscodeを元に作成されたものでありライセンスを含め違ったものである。
⇧ ちまたで呼ばれてる略称であるVSCodeと、GitHubのリポジトリ名であるvscodeって...紛らわしいんだけど~。
そして、MicroSoftさん、
⇧ Linux との相性悪い説を払拭できるのか~。Windows 環境でのLinux環境が難しいんであって、Linux環境でのWindows環境は意外に障壁が少ないのかな?
そんなこんなで、今回は、Visual Studio Codeで、Scala環境を作っていこうということで、レッツトライ~。
Visual Studio Code をインストールしていること
まずは、PCにVisual Studio Codeをインストールしている必要があると。
⇧ インストールされてない方は、上記サイト様を参考にインストールしていただくということで。
では、インストールが済んだという体で、Visual Studio Code を起動で。バージョンを確認したいので、「ヘルプ」>「バージョン情報」で。
バージョンは、1.37.1 ということが分かりました。
バージョンは、1.35.1 以上が必要なので、旧い場合は更新で。Visual Studio Code を起動すると、アップデートするかどうかのウィンドウっぽいのが右下に表示されるので更新しても問題なければ更新しちゃいましょう。
拡張機能の追加
Visual Studio Code は、拡張機能をインストール ことで、エディターができることを増やしていくことができるようです。
今回は、リモート接続できるようにする拡張機能をインストールで。
それでは、 のアイコンをクリックで。検索欄に、「Remote Develop」と入力。
「Remote Development」っていう拡張機能をインストールで。説明にあるように、
- Remote - SSH
- Remote - Containers
- Remote - WSL
の3つの拡張機能のセットが、「Remote Development」っていう拡張機能ということらしい。
拡張機能のインストールが完了すると、左下に、 のアイコンが表示されます。後ほどクリックしていきます。
この拡張機能を使うと、
1. SSH 接続の場合
2. コンテナに直で接続の場合
3. Windows Subsystem for Linux (WSL) で接続の場合
⇧ みたいなことができるらしい。
ただし、「2. コンテナに直で接続の場合」については、
System requirements
Local:
-
Windows: Docker Desktop 2.0+ on Windows 10 Pro/Enterprise. (Docker Toolbox is not supported.)
-
macOS: Docker Desktop 2.0+.
-
Linux: Docker CE/EE 18.06+ and Docker Compose 1.21+. (The Ubuntu snap package is not supported.)
Developing inside a Container using Visual Studio Code Remote Development
⇧ 上記を満たすPCでないと対応していません。つまり、Windows 10 Home では利用できないということになります。
まぁ、なんで、今回は、「1. SSH 接続の場合」 を使っていこうかと。
ただし、「1. SSH 接続の場合」についても、
System requirements
Local: See minimum requirements for VS Code. A supported OpenSSH compatible SSH client must also be installed.
Remote SSH Host: A running SSH server on:
-
Full support: x86_64 Debian 8+, Ubuntu 16.04+, CentOS / RHEL 7+.
-
Experimental support: ARMv7l (or ARMv8 in 32-bit mode) Raspbian Stretch/9+ (32-bit).
Other glibc
based Linux distributions for x86_64 and ARMv7l should work if they have the needed prerequisites. See the Remote Development with Linux article for information prerequisites and tips for getting community supported distributions up and running.
While ARMv7l support is available in VS Code Insiders, some extensions installed on these devices may not work due to the use of x86 native code in the extension.
Developing inside a Container using Visual Studio Code Remote Development
⇧ OpenSSH が必要らしい。
Installation
To get started, you need to:
-
Install an OpenSSH compatible SSH client if one is not already present.
-
Install Visual Studio Code or Visual Studio Code Insiders.
-
Install the Remote Development extension pack.
-
[Optional] If you are on macOS or Linux and need to enter a token or password when connecting to your host, you can enable
ControlMaster
in your SSH config to prevent you from having to enter it multiple times.
Developing inside a Container using Visual Studio Code Remote Development
⇧ 上記の1. ~ 3. は必須のようです。Windows 意外の場合は、4. も必要のようです。
Visual Studio Code からSSH接続
とりあえず、OpenSSH については、
⇧ 上記サイト様によりますと、Windows 10 を使っている場合で、2018年4月以降のアップデートを行っている場合は、SSHクライアントについては、インストール済となるようです。
⇧ バージョンが表示されれば、インストール済ということらしい。
そんでは、サーバ側は?
Docker ToolBoxで作成した仮想マシンには、SSHがインストールされているはずです。なぜならば、docker-machine ssh でSSH接続ができるので。
ということで、仮想マシンを起動しておきます。
そしたらば、Visual Studio Code の、 のアイコンをクリックで。
「Remote-SSH: Coonect to Host...」を選択。
「Select configured SSH host or enter user@host」ってなってたんで、「docker@[仮想マシンのIPアドレス]」で接続できると思っていたけど、できない...。
ちなみに、
Docker for Windows や Docker for Mac であればこのままリモートコンテナにローカルのファイルをバインド出来るのですが、 Windows 10 Home さんではそれがかないません。
vscode で Win 10 Home -> VirtualBox Ubuntu Container にリモートアクセスする! - Qiita
⇧ やっぱり、というか、Windows 10 Home の縛りが大きいですね、どうりで、ハマることが多いわけだわ...。
っていうか、VSCodeの拡張機能で、Docker も入れる必要あるんじゃない?これ。誰も言及しないから分からんけど、とりあえず入れてみた。
変わらず(涙)
ポート指定しても駄目(涙)
Docker ToolBox のssh だと接続できる。
通常のssh だと接続できなくなっとる...これが原因か。
どうやら、
どうやら、以前のSSH接続時の認証キーが残っていることが原因のようです。
どうやらSSHのホストキーが変わることが原因らしい.
⇧ 上記サイト様によりますと、参照する認証キーが異なってしまっているらしい。
で、
ファイルの中身を見てみたんだけど、
そも、「192.168.99.100」の秘密鍵の記載が無いというね...
⇧ とりあえず、試してみる。
ssh-keygen -R [ホスト名、または、ホストのIPアドレス]
なんか、いけました~。
Visual Studio Code の拡張機能「Remote - SSH」からは~、
変わらんやんけ~!
「Remote - SSH: Open Configuration File...」で。
なんか、「.ssh/config」ファイルに設定しておくと、
⇧ ssh接続の際のオプションとか省略できるらしい。
.ssh/config ファイルを選択。今回はユーザー名のディレクトリの直下のファイル。
GitHubへの接続情報しか記載されてないので、
追記します。
SSH接続に必要な情報などは、
⇧ 上記サイト様で確認で。
「Settings specify a custom configuration file」で、
「.ssh/config」までのパスを指定。
で、接続してみるも、
まったく、変わらん...Visual Studio Code のバグ?
なんか、パスの指定が、Windowsのパス指定で良くなった?みたい。
なので、正しくは、
ってな感じで、SSH接続を試みると、
ファイヤーウォールが出てきたらば、「アクセスを許可する(A)」で。
リモート側のVisual Studio Codeに接続されました~。つまり、仮想マシンのゲストOSにログインできたかと~。
「ファイル(F)」>「フォルダーを開く...」で。
こちらは、パスの区切りが、「/」になります。
ゲストOS側のファイルにアクセスできていますね。
というわけで、とりあえず、仮想マシンのゲストOSにSSH接続まで何とかできました。次回は、Scala環境を何とかして構築していきたいかな...
今回は、久々に泥沼にハマってしまった...疲れた。
今回はこのへんで。