内容としてはタイトルのとおりです。Raspberry Pi 4でEclipse Theiaを実行してみました。
Raspberry Pi 4は4GBモデル、OSはUbuntu Server 20.04.1(64bit)です。
・依存パッケージのインストール
まずはNodeJSをインストールします。
1 |
sudo apt install nodejs npm |
次にyarnをインストールしますがapt installでは入らなかったため、公式サイトのインストールに従ってインストールします。
1 2 3 |
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list sudo apt update && sudo apt install yarn |
念の為、NodeJSのバージョンを確認しておきます。当環境では、10.19.0がインストールされていました。
1 |
nodejs --version |
・Eclipse Theiaのインストール
公式サイトのインストール方法に則って、インストールしていきます。
まずインストール用のディレクトリを作成して移動します。
1 2 |
mkdir my-app cd my-app |
次に、/my-appフォルダ内にpackage.jsonファイルを作成します。
1 |
vi package.json |
package.jsonファイルの中身は公式サイトに記載されているのを丸っとコピペします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
{ "private": true, "dependencies": { "@theia/callhierarchy": "next", "@theia/file-search": "next", "@theia/git": "next", "@theia/markers": "next", "@theia/messages": "next", "@theia/mini-browser": "next", "@theia/navigator": "next", "@theia/outline-view": "next", "@theia/plugin-ext-vscode": "next", "@theia/preferences": "next", "@theia/preview": "next", "@theia/search-in-workspace": "next", "@theia/terminal": "next" }, "devDependencies": { "@theia/cli": "next" }, "scripts": { "prepare": "yarn run clean && yarn build && yarn run download:plugins", "clean": "theia clean", "build": "theia build --mode development", "start": "theia start --plugins=local-dir:plugins", "download:plugins": "theia download:plugins" }, "theiaPluginsDir": "plugins", "theiaPlugins": { "vscode-builtin-css": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/css-1.39.1-prel.vsix", "vscode-builtin-html": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/html-1.39.1-prel.vsix", "vscode-builtin-javascript": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/javascript-1.39.1-prel.vsix", "vscode-builtin-json": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/json-1.39.1-prel.vsix", "vscode-builtin-markdown": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/markdown-1.39.1-prel.vsix", "vscode-builtin-npm": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/npm-1.39.1-prel.vsix", "vscode-builtin-scss": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/scss-1.39.1-prel.vsix", "vscode-builtin-typescript": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/typescript-1.39.1-prel.vsix", "vscode-builtin-typescript-language-features": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/typescript-language-features-1.39.1-prel.vsix" } } |
package.jsonが作成できたら、Eclipse Theiaをビルドします。ビルドにはかなり時間がかかったので、気長に待ちましょう。
1 |
yarn |
ビルドが完了したら実行します。ワークスペース等を設定して起動させることもできますが、今回は指定なしで起動させます。
1 |
yarn start --hostname 0.0.0.0 --port 8080 |
ブラウザからhttp://IPアドレス:8080でアクセスして画面が表示されれば完了です。
・エラー対応
作業時、実際に発生したエラーを記載します。
・プラグインが読み込まれない
プラグインが正常に読み込まれなかった場合、下記のコマンドを起動前に実行します。これは、プラグインフォルダを明示的に指定する方法です。
1 |
export THEIA_DEFAULT_PLUGINS=local-dir:plugins |
・アクセスできない
このページは動作していません。等のエラーが出た場合はファイアウォールの設定を見直します。8080番ポートだけ許可すれば良いかと思っていたのですが、Eclipse Theiaはデフォルトで3000番ポートを使用するようなので、こちらも許可しておきます。
1 2 |
sudo firewall-cmd --add-port=8080/tcp sudo firewall-cmd --add-port=3000/tcp |
・余談:systemctlで制御できるようにする
上記のままだと停止と起動が面倒なので、systemctl start theiaで起動できるようにします。
まずはEclipse Theiaを起動するためのコマンドを集めた起動用shファイルを作成します。今回はmy-appフォルダ内にstart.shという名前で作成しました。
1 2 3 4 5 6 7 8 9 10 11 |
#!/bin/bash set -e cd /home/ubuntu/my-app export THEIA_DEFAULT_PLUGINS=local-dir:plugins yarn yarn theia start --hostname 0.0.0.0 --port 8080 |
次に/usr/lib/systemd/system/ディレクトリにtheia.serviceファイルを作成します。[Service]のExecStartは、起動用shファイルを作成した場所に合わせて変更してください。
1 2 3 4 5 6 7 8 9 |
[Unit] Description=theia [Service] Type=simple ExecStart="/home/ubuntu/my-app/start.sh" [Install] WantedBy=multi-user.target |
・終わり
実際にEclipse Theiaを使ってみた感想は、少し手間かなぁといった具合です。
ただ、僕はWindowsでもChromeBookでもプログラムを組むことがあるので、その場合は便利かもと思いました。ChromeBookの場合、Linuxアプリは日本語入力系が面倒なので、それを気にしなくてもいいのはありがたいです。
拡張機能やプラグインを追加する場合はpackage.jsonに追記するようです。追加するたびに長いビルドが待っているので、最初にまとめて入れてしまって……みたいな状態なら手間も減るかなと思います。
また、現時点ではローカライズはサポートしてなく、日本語表示にはできませんでした。見た目はVSCodeそのままなので、少し触ってみたぐらいだとあまり困りはしませんでした。
ターミナルからコマンドも実行できたので、わざわざSSHのターミナルを別に起動しなくても良かったのは嬉しかったですが、実環境で使うとなると認証やらユーザの権限やらはちょっと問題ありそうです。LAN内で使うだけなら大きな問題はないと思いますが、それだとメリットあまりないので……。
使いたいなぁと思ったら素直にGithubとかのGitpodを使ったほうが良いと思います。
最近、Dockerを触り始めたので、どこかのタイミングでDockerに載せられたらなぁと思っています。(Docker Hubにイメージはありますが、ARM64には対応してなかった……)
では、この辺で。
三条 海斗
コメント