code-server v3.10.2をRaspberry Pi 4 Model Bへインストール
目次
概要
M1チップのiPad Pro 11を購入したので、これまで利用してきた旧型iPad Proでのブラウジングやテレビ会議などの利用用途に加えて、 コーディングの勉強にも使いたいなと考えていました。 色々調べてみたけどiPadOS用のエディタやIDEの中でしっくりくるものが見つからなかったのですが、 その代わりにサーバにインストールしてブラウザから利用するVisual Studio Codeを見つけました。 名前は「code-server」というようです。 調べるとARM64版も存在したため、ラズパイ4にインストールして利用できれば常時起動でも消費電力少なくて クラウドにサーバを借りるより安く済むと思ったので試してみました。 なお、外出先から接続して利用するにはもうひと工夫必要ですが、今は外出する機会も少ないのでまずは家庭内のLAN限定での利用を 想定して環境を構築してみました。結果的にiPad ProのSafariからも問題なく接続してコーディングに利用できました(まだ少し触ったレベルですが)。 サーバとして利用するラズパイ4のOSにはCentOS 8.2.2004のARM64(aarch64)版を採用しています。 Debian系のRaspberry Pi OSよりRed Hat系のCentOSの方が個人的に馴染みがあるので。
構成
サーバ・ハードウェア構成
ハードウェアはRaspberry Pi 4 Model Bのメモリ4GBモデルを使用しました。 ハードウェアスペックは以下のとおりです。
項目 | 内容 |
---|---|
SoC | Broadcom BCM2711 |
CPU | ARM Cortex-A72 1.5GHz |
GPU | Broadcom VideoCore VI Dual Core 500MHz |
メモリ | LPDDR4 SDRAM 4GB |
有線ネットワーク | Gigabit Ethernet |
microSDカード(システム用) | microSDHCカード 32GB |
電源アダプタ | 出力:5.0V=3.0A 15.0W |
モニタ | LG 24ML600S-W |
キーボード | FILCO FKBC91MRL/JB2 |
マウス | Logicool M325 |
サーバ・ソフトウェア構成
OS
CentOS Linux release 8.2.2004 (Core) aarch64
ソフトウェア・パッケージ
- code-server-3.10.2-arm64.rpm
- git-2.27.0-1.el8.aarch64.rpm
環境構築端末構成
code-serverにブラウザで接続して動作確認や日本語化などの初期セットアップを行った端末です。
OS
Windows 10 Pro バージョン 20H2
ソフトウェア
- Microsoft Edge バージョン 91.0.864.37
アプリケーション開発端末構成
code-serverにブラウザで接続してコーディングを行おうと考えている端末です。
OS
iPadOS 14.6
ソフトウェア
- Safari 14.1.1
環境構築
インストール
code-serverのパッケージダウンロード
GitHubからcode-serverの最新のパッケージをダウンロードします。 ラズパイ4なのでCPUアーキテクチャはARM64で、OSはCentOS 8なのでRPMを選択します。 2021/5/30時点で最新のバージョンは3.10.2でした。
# cd /media/ # curl -fOL https://github.com/cdr/code-server/releases/download/v3.10.2/code-server-3.10.2-arm64.rpm % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 636 100 636 0 0 1756 0 --:--:-- --:--:-- --:--:-- 1756 100 87.0M 100 87.0M 0 0 12.1M 0 0:00:07 0:00:07 --:--:-- 16.4M # ls -l 合計 89136 -rw-r--r-- 1 root root 91274430 5月 30 03:22 code-server-3.10.2-arm64.rpm
code-serverのインストール
CentOS 8からyumコマンドの後継のdnfコマンドでパッケージをインストールするように変更されました。 旧来のrpmコマンドでもインストールできますが依存関係を自動で解決してくれないので、dnf(yumも同じ)の方を使用しています。 実際にインストールしてみるとcode-serverは依存パッケージが存在しなかったのでrpmでも問題なくインストールできそうです。
# dnf -y localinstall ./code-server-3.10.2-arm64.rpm gitlab_gitlab-ce 308 B/s | 862 B 00:02 gitlab_gitlab-ce-source 281 B/s | 862 B 00:03 依存関係が解決しました。 ======================================================================================================================== パッケージ アーキテクチャー バージョン リポジトリー サイズ ======================================================================================================================== インストール中: code-server aarch64 3.10.2-1 @commandline 87 M トランザクションの概要 ======================================================================================================================== インストール 1 パッケージ 合計サイズ: 87 M インストール済みのサイズ: 287 M パッケージのダウンロード: トランザクションの確認を実行中 トランザクションの確認に成功しました。 トランザクションのテストを実行中 トランザクションのテストに成功しました。 トランザクションを実行中 準備 : 1/1 インストール中 : code-server-3.10.2-1.aarch64 1/1 scriptlet の実行中: code-server-3.10.2-1.aarch64 1/1 検証 : code-server-3.10.2-1.aarch64 1/1 インストール済み: code-server-3.10.2-1.aarch64 完了しました!
Gitのインストール
開発したソースコードのバージョン管理を行うためにGitをインストールします。 インストールしておくだけでcode-server(Visual Studio Code)とも機能連携します。
# dnf -y install git gitlab_gitlab-ce 311 B/s | 862 B 00:02 gitlab_gitlab-ce-source 336 B/s | 862 B 00:02 依存関係が解決しました。 ======================================================================================================================== パッケージ Arch バージョン リポジトリー サイズ ======================================================================================================================== インストール中: git aarch64 2.27.0-1.el8 AppStream 164 k 依存関係のインストール中: emacs-filesystem noarch 1:26.1-5.el8 BaseOS 69 k git-core aarch64 2.27.0-1.el8 AppStream 5.6 M git-core-doc noarch 2.27.0-1.el8 AppStream 2.5 M perl-Carp noarch 1.42-396.el8 BaseOS 30 k perl-Data-Dumper aarch64 2.167-399.el8 BaseOS 57 k perl-Digest noarch 1.17-395.el8 AppStream 27 k perl-Digest-MD5 aarch64 2.55-396.el8 AppStream 37 k perl-Encode aarch64 4:2.97-3.el8 BaseOS 1.5 M perl-Errno aarch64 1.28-416.el8 BaseOS 76 k perl-Error noarch 1:0.17025-2.el8 AppStream 46 k perl-Exporter noarch 5.72-396.el8 BaseOS 34 k perl-File-Path noarch 2.15-2.el8 BaseOS 38 k perl-File-Temp noarch 0.230.600-1.el8 BaseOS 63 k perl-Getopt-Long noarch 1:2.50-4.el8 BaseOS 63 k perl-Git noarch 2.27.0-1.el8 AppStream 77 k perl-HTTP-Tiny noarch 0.074-1.el8 BaseOS 58 k perl-IO aarch64 1.38-416.el8 BaseOS 141 k perl-MIME-Base64 aarch64 3.15-396.el8 BaseOS 31 k perl-Net-SSLeay aarch64 1.88-1.module_el8.3.0+410+ff426aa3 AppStream 372 k perl-PathTools aarch64 3.74-1.el8 BaseOS 90 k perl-Pod-Escapes noarch 1:1.07-395.el8 BaseOS 20 k perl-Pod-Perldoc noarch 3.28-396.el8 BaseOS 86 k perl-Pod-Simple noarch 1:3.35-395.el8 BaseOS 213 k perl-Pod-Usage noarch 4:1.69-395.el8 BaseOS 34 k perl-Scalar-List-Utils aarch64 3:1.49-2.el8 BaseOS 67 k perl-Socket aarch64 4:2.027-3.el8 BaseOS 59 k perl-Storable aarch64 1:3.11-3.el8 BaseOS 95 k perl-Term-ANSIColor noarch 4.06-396.el8 BaseOS 46 k perl-Term-Cap noarch 1.17-395.el8 BaseOS 23 k perl-TermReadKey aarch64 2.37-7.el8 AppStream 40 k perl-Text-ParseWords noarch 3.30-395.el8 BaseOS 18 k perl-Text-Tabs+Wrap noarch 2013.0523-395.el8 BaseOS 24 k perl-Time-Local noarch 1:1.280-1.el8 BaseOS 34 k perl-URI noarch 1.73-3.el8 AppStream 116 k perl-Unicode-Normalize aarch64 1.25-396.el8 BaseOS 78 k perl-constant noarch 1.33-396.el8 BaseOS 25 k perl-interpreter aarch64 4:5.26.3-416.el8 BaseOS 6.3 M perl-libnet noarch 3.11-3.el8 AppStream 121 k perl-libs aarch64 4:5.26.3-416.el8 BaseOS 1.5 M perl-macros aarch64 4:5.26.3-416.el8 BaseOS 72 k perl-parent noarch 1:0.237-1.el8 BaseOS 20 k perl-podlators noarch 4.11-1.el8 BaseOS 118 k perl-threads aarch64 1:2.21-2.el8 BaseOS 60 k perl-threads-shared aarch64 1.58-2.el8 BaseOS 47 k 弱い依存関係のインストール中: perl-IO-Socket-IP noarch 0.39-5.el8 AppStream 47 k perl-IO-Socket-SSL noarch 2.066-4.module_el8.3.0+410+ff426aa3 AppStream 298 k perl-Mozilla-CA noarch 20160104-7.module_el8.3.0+416+dee7bcef AppStream 15 k モジュールストリームの有効化中: perl 5.26 perl-IO-Socket-SSL 2.066 perl-libwww-perl 6.34 トランザクションの概要 ======================================================================================================================== インストール 48 パッケージ ダウンロードサイズの合計: 21 M インストール済みのサイズ: 82 M パッケージのダウンロード: (1/48): git-2.27.0-1.el8.aarch64.rpm 523 kB/s | 164 kB 00:00 (2/48): perl-Digest-1.17-395.el8.noarch.rpm 618 kB/s | 27 kB 00:00 (3/48): perl-Digest-MD5-2.55-396.el8.aarch64.rpm 641 kB/s | 37 kB 00:00 (4/48): perl-Error-0.17025-2.el8.noarch.rpm 657 kB/s | 46 kB 00:00 (5/48): perl-Git-2.27.0-1.el8.noarch.rpm 1.1 MB/s | 77 kB 00:00 (6/48): perl-IO-Socket-IP-0.39-5.el8.noarch.rpm 114 kB/s | 47 kB 00:00 (7/48): perl-IO-Socket-SSL-2.066-4.module_el8.3.0+410+ff426aa3.noarch.rpm 440 kB/s | 298 kB 00:00 (8/48): perl-Mozilla-CA-20160104-7.module_el8.3.0+416+dee7bcef.noarch.rpm 230 kB/s | 15 kB 00:00 (9/48): perl-Net-SSLeay-1.88-1.module_el8.3.0+410+ff426aa3.aarch64.rpm 387 kB/s | 372 kB 00:00 (10/48): perl-TermReadKey-2.37-7.el8.aarch64.rpm 292 kB/s | 40 kB 00:00 (11/48): perl-URI-1.73-3.el8.noarch.rpm 344 kB/s | 116 kB 00:00 (12/48): perl-libnet-3.11-3.el8.noarch.rpm 483 kB/s | 121 kB 00:00 (13/48): emacs-filesystem-26.1-5.el8.noarch.rpm 244 kB/s | 69 kB 00:00 (14/48): perl-Carp-1.42-396.el8.noarch.rpm 346 kB/s | 30 kB 00:00 (15/48): git-core-doc-2.27.0-1.el8.noarch.rpm 670 kB/s | 2.5 MB 00:03 (16/48): perl-Data-Dumper-2.167-399.el8.aarch64.rpm 492 kB/s | 57 kB 00:00 (17/48): perl-Errno-1.28-416.el8.aarch64.rpm 442 kB/s | 76 kB 00:00 (18/48): perl-Exporter-5.72-396.el8.noarch.rpm 377 kB/s | 34 kB 00:00 (19/48): perl-File-Path-2.15-2.el8.noarch.rpm 455 kB/s | 38 kB 00:00 (20/48): perl-File-Temp-0.230.600-1.el8.noarch.rpm 561 kB/s | 63 kB 00:00 (21/48): perl-Getopt-Long-2.50-4.el8.noarch.rpm 526 kB/s | 63 kB 00:00 (22/48): perl-HTTP-Tiny-0.074-1.el8.noarch.rpm 562 kB/s | 58 kB 00:00 (23/48): perl-IO-1.38-416.el8.aarch64.rpm 569 kB/s | 141 kB 00:00 (24/48): perl-MIME-Base64-3.15-396.el8.aarch64.rpm 425 kB/s | 31 kB 00:00 (25/48): perl-PathTools-3.74-1.el8.aarch64.rpm 529 kB/s | 90 kB 00:00 (26/48): perl-Pod-Escapes-1.07-395.el8.noarch.rpm 286 kB/s | 20 kB 00:00 (27/48): perl-Pod-Perldoc-3.28-396.el8.noarch.rpm 600 kB/s | 86 kB 00:00 (28/48): perl-Pod-Simple-3.35-395.el8.noarch.rpm 661 kB/s | 213 kB 00:00 (29/48): perl-Pod-Usage-1.69-395.el8.noarch.rpm 586 kB/s | 34 kB 00:00 (30/48): perl-Scalar-List-Utils-1.49-2.el8.aarch64.rpm 532 kB/s | 67 kB 00:00 (31/48): perl-Socket-2.027-3.el8.aarch64.rpm 535 kB/s | 59 kB 00:00 (32/48): perl-Storable-3.11-3.el8.aarch64.rpm 562 kB/s | 95 kB 00:00 (33/48): perl-Term-ANSIColor-4.06-396.el8.noarch.rpm 544 kB/s | 46 kB 00:00 (34/48): perl-Term-Cap-1.17-395.el8.noarch.rpm 608 kB/s | 23 kB 00:00 (35/48): perl-Text-ParseWords-3.30-395.el8.noarch.rpm 309 kB/s | 18 kB 00:00 (36/48): perl-Text-Tabs+Wrap-2013.0523-395.el8.noarch.rpm 315 kB/s | 24 kB 00:00 (37/48): perl-Time-Local-1.280-1.el8.noarch.rpm 475 kB/s | 34 kB 00:00 (38/48): perl-Encode-2.97-3.el8.aarch64.rpm 404 kB/s | 1.5 MB 00:03 (39/48): perl-Unicode-Normalize-1.25-396.el8.aarch64.rpm 425 kB/s | 78 kB 00:00 (40/48): perl-constant-1.33-396.el8.noarch.rpm 292 kB/s | 25 kB 00:00 (41/48): perl-libs-5.26.3-416.el8.aarch64.rpm 567 kB/s | 1.5 MB 00:02 (42/48): perl-macros-5.26.3-416.el8.aarch64.rpm 573 kB/s | 72 kB 00:00 (43/48): perl-parent-0.237-1.el8.noarch.rpm 258 kB/s | 20 kB 00:00 (44/48): perl-podlators-4.11-1.el8.noarch.rpm 573 kB/s | 118 kB 00:00 (45/48): perl-threads-2.21-2.el8.aarch64.rpm 593 kB/s | 60 kB 00:00 (46/48): perl-threads-shared-1.58-2.el8.aarch64.rpm 430 kB/s | 47 kB 00:00 (47/48): git-core-2.27.0-1.el8.aarch64.rpm 495 kB/s | 5.6 MB 00:11 (48/48): perl-interpreter-5.26.3-416.el8.aarch64.rpm 1.0 MB/s | 6.3 MB 00:06 ------------------------------------------------------------------------------------------------------------------------ 合計 1.4 MB/s | 21 MB 00:15 トランザクションの確認を実行中 トランザクションの確認に成功しました。 トランザクションのテストを実行中 トランザクションのテストに成功しました。 トランザクションを実行中 準備 : 1/1 インストール中 : perl-Exporter-5.72-396.el8.noarch 1/48 インストール中 : perl-libs-4:5.26.3-416.el8.aarch64 2/48 インストール中 : perl-Carp-1.42-396.el8.noarch 3/48 インストール中 : perl-Scalar-List-Utils-3:1.49-2.el8.aarch64 4/48 インストール中 : perl-parent-1:0.237-1.el8.noarch 5/48 インストール中 : perl-Text-ParseWords-3.30-395.el8.noarch 6/48 インストール中 : git-core-2.27.0-1.el8.aarch64 7/48 インストール中 : git-core-doc-2.27.0-1.el8.noarch 8/48 インストール中 : perl-Term-ANSIColor-4.06-396.el8.noarch 9/48 インストール中 : perl-macros-4:5.26.3-416.el8.aarch64 10/48 インストール中 : perl-Errno-1.28-416.el8.aarch64 11/48 インストール中 : perl-Socket-4:2.027-3.el8.aarch64 12/48 インストール中 : perl-Text-Tabs+Wrap-2013.0523-395.el8.noarch 13/48 インストール中 : perl-Unicode-Normalize-1.25-396.el8.aarch64 14/48 インストール中 : perl-File-Path-2.15-2.el8.noarch 15/48 インストール中 : perl-IO-1.38-416.el8.aarch64 16/48 インストール中 : perl-PathTools-3.74-1.el8.aarch64 17/48 インストール中 : perl-constant-1.33-396.el8.noarch 18/48 インストール中 : perl-threads-1:2.21-2.el8.aarch64 19/48 インストール中 : perl-threads-shared-1.58-2.el8.aarch64 20/48 インストール中 : perl-interpreter-4:5.26.3-416.el8.aarch64 21/48 インストール中 : perl-MIME-Base64-3.15-396.el8.aarch64 22/48 インストール中 : perl-IO-Socket-IP-0.39-5.el8.noarch 23/48 インストール中 : perl-Time-Local-1:1.280-1.el8.noarch 24/48 インストール中 : perl-File-Temp-0.230.600-1.el8.noarch 25/48 インストール中 : perl-Digest-1.17-395.el8.noarch 26/48 インストール中 : perl-Digest-MD5-2.55-396.el8.aarch64 27/48 インストール中 : perl-Net-SSLeay-1.88-1.module_el8.3.0+410+ff426aa3.aarch64 28/48 インストール中 : perl-Error-1:0.17025-2.el8.noarch 29/48 インストール中 : perl-TermReadKey-2.37-7.el8.aarch64 30/48 インストール中 : perl-Data-Dumper-2.167-399.el8.aarch64 31/48 インストール中 : perl-Pod-Escapes-1:1.07-395.el8.noarch 32/48 インストール中 : perl-Storable-1:3.11-3.el8.aarch64 33/48 インストール中 : perl-Term-Cap-1.17-395.el8.noarch 34/48 インストール中 : perl-Mozilla-CA-20160104-7.module_el8.3.0+416+dee7bcef.noarch 35/48 インストール中 : perl-Encode-4:2.97-3.el8.aarch64 36/48 インストール中 : perl-Pod-Simple-1:3.35-395.el8.noarch 37/48 インストール中 : perl-Getopt-Long-1:2.50-4.el8.noarch 38/48 インストール中 : perl-podlators-4.11-1.el8.noarch 39/48 インストール中 : perl-Pod-Usage-4:1.69-395.el8.noarch 40/48 インストール中 : perl-Pod-Perldoc-3.28-396.el8.noarch 41/48 インストール中 : perl-HTTP-Tiny-0.074-1.el8.noarch 42/48 インストール中 : perl-IO-Socket-SSL-2.066-4.module_el8.3.0+410+ff426aa3.noarch 43/48 インストール中 : perl-libnet-3.11-3.el8.noarch 44/48 インストール中 : perl-URI-1.73-3.el8.noarch 45/48 インストール中 : emacs-filesystem-1:26.1-5.el8.noarch 46/48 インストール中 : perl-Git-2.27.0-1.el8.noarch 47/48 インストール中 : git-2.27.0-1.el8.aarch64 48/48 scriptlet の実行中: git-2.27.0-1.el8.aarch64 48/48 検証 : git-2.27.0-1.el8.aarch64 1/48 検証 : git-core-2.27.0-1.el8.aarch64 2/48 検証 : git-core-doc-2.27.0-1.el8.noarch 3/48 検証 : perl-Digest-1.17-395.el8.noarch 4/48 検証 : perl-Digest-MD5-2.55-396.el8.aarch64 5/48 検証 : perl-Error-1:0.17025-2.el8.noarch 6/48 検証 : perl-Git-2.27.0-1.el8.noarch 7/48 検証 : perl-IO-Socket-IP-0.39-5.el8.noarch 8/48 検証 : perl-IO-Socket-SSL-2.066-4.module_el8.3.0+410+ff426aa3.noarch 9/48 検証 : perl-Mozilla-CA-20160104-7.module_el8.3.0+416+dee7bcef.noarch 10/48 検証 : perl-Net-SSLeay-1.88-1.module_el8.3.0+410+ff426aa3.aarch64 11/48 検証 : perl-TermReadKey-2.37-7.el8.aarch64 12/48 検証 : perl-URI-1.73-3.el8.noarch 13/48 検証 : perl-libnet-3.11-3.el8.noarch 14/48 検証 : emacs-filesystem-1:26.1-5.el8.noarch 15/48 検証 : perl-Carp-1.42-396.el8.noarch 16/48 検証 : perl-Data-Dumper-2.167-399.el8.aarch64 17/48 検証 : perl-Encode-4:2.97-3.el8.aarch64 18/48 検証 : perl-Errno-1.28-416.el8.aarch64 19/48 検証 : perl-Exporter-5.72-396.el8.noarch 20/48 検証 : perl-File-Path-2.15-2.el8.noarch 21/48 検証 : perl-File-Temp-0.230.600-1.el8.noarch 22/48 検証 : perl-Getopt-Long-1:2.50-4.el8.noarch 23/48 検証 : perl-HTTP-Tiny-0.074-1.el8.noarch 24/48 検証 : perl-IO-1.38-416.el8.aarch64 25/48 検証 : perl-MIME-Base64-3.15-396.el8.aarch64 26/48 検証 : perl-PathTools-3.74-1.el8.aarch64 27/48 検証 : perl-Pod-Escapes-1:1.07-395.el8.noarch 28/48 検証 : perl-Pod-Perldoc-3.28-396.el8.noarch 29/48 検証 : perl-Pod-Simple-1:3.35-395.el8.noarch 30/48 検証 : perl-Pod-Usage-4:1.69-395.el8.noarch 31/48 検証 : perl-Scalar-List-Utils-3:1.49-2.el8.aarch64 32/48 検証 : perl-Socket-4:2.027-3.el8.aarch64 33/48 検証 : perl-Storable-1:3.11-3.el8.aarch64 34/48 検証 : perl-Term-ANSIColor-4.06-396.el8.noarch 35/48 検証 : perl-Term-Cap-1.17-395.el8.noarch 36/48 検証 : perl-Text-ParseWords-3.30-395.el8.noarch 37/48 検証 : perl-Text-Tabs+Wrap-2013.0523-395.el8.noarch 38/48 検証 : perl-Time-Local-1:1.280-1.el8.noarch 39/48 検証 : perl-Unicode-Normalize-1.25-396.el8.aarch64 40/48 検証 : perl-constant-1.33-396.el8.noarch 41/48 検証 : perl-interpreter-4:5.26.3-416.el8.aarch64 42/48 検証 : perl-libs-4:5.26.3-416.el8.aarch64 43/48 検証 : perl-macros-4:5.26.3-416.el8.aarch64 44/48 検証 : perl-parent-1:0.237-1.el8.noarch 45/48 検証 : perl-podlators-4.11-1.el8.noarch 46/48 検証 : perl-threads-1:2.21-2.el8.aarch64 47/48 検証 : perl-threads-shared-1.58-2.el8.aarch64 48/48 インストール済み: emacs-filesystem-1:26.1-5.el8.noarch git-2.27.0-1.el8.aarch64 git-core-2.27.0-1.el8.aarch64 git-core-doc-2.27.0-1.el8.noarch perl-Carp-1.42-396.el8.noarch perl-Data-Dumper-2.167-399.el8.aarch64 perl-Digest-1.17-395.el8.noarch perl-Digest-MD5-2.55-396.el8.aarch64 perl-Encode-4:2.97-3.el8.aarch64 perl-Errno-1.28-416.el8.aarch64 perl-Error-1:0.17025-2.el8.noarch perl-Exporter-5.72-396.el8.noarch perl-File-Path-2.15-2.el8.noarch perl-File-Temp-0.230.600-1.el8.noarch perl-Getopt-Long-1:2.50-4.el8.noarch perl-Git-2.27.0-1.el8.noarch perl-HTTP-Tiny-0.074-1.el8.noarch perl-IO-1.38-416.el8.aarch64 perl-IO-Socket-IP-0.39-5.el8.noarch perl-IO-Socket-SSL-2.066-4.module_el8.3.0+410+ff426aa3.noarch perl-MIME-Base64-3.15-396.el8.aarch64 perl-Mozilla-CA-20160104-7.module_el8.3.0+416+dee7bcef.noarch perl-Net-SSLeay-1.88-1.module_el8.3.0+410+ff426aa3.aarch64 perl-PathTools-3.74-1.el8.aarch64 perl-Pod-Escapes-1:1.07-395.el8.noarch perl-Pod-Perldoc-3.28-396.el8.noarch perl-Pod-Simple-1:3.35-395.el8.noarch perl-Pod-Usage-4:1.69-395.el8.noarch perl-Scalar-List-Utils-3:1.49-2.el8.aarch64 perl-Socket-4:2.027-3.el8.aarch64 perl-Storable-1:3.11-3.el8.aarch64 perl-Term-ANSIColor-4.06-396.el8.noarch perl-Term-Cap-1.17-395.el8.noarch perl-TermReadKey-2.37-7.el8.aarch64 perl-Text-ParseWords-3.30-395.el8.noarch perl-Text-Tabs+Wrap-2013.0523-395.el8.noarch perl-Time-Local-1:1.280-1.el8.noarch perl-URI-1.73-3.el8.noarch perl-Unicode-Normalize-1.25-396.el8.aarch64 perl-constant-1.33-396.el8.noarch perl-interpreter-4:5.26.3-416.el8.aarch64 perl-libnet-3.11-3.el8.noarch perl-libs-4:5.26.3-416.el8.aarch64 perl-macros-4:5.26.3-416.el8.aarch64 perl-parent-1:0.237-1.el8.noarch perl-podlators-4.11-1.el8.noarch perl-threads-1:2.21-2.el8.aarch64 perl-threads-shared-1.58-2.el8.aarch64 完了しました!
設定
code-server利用ユーザの作成
code-serverは1つのサービスをマルチユーザで利用するようになっておらず、 ユーザごとにサービスを立ち上げるようです(間違ってたらごめんなさい)。 予めLinux上でユーザを作成しておいて、作成したユーザでcode-serverを起動します。 ここでは ranocci という名前のユーザを UID:10001 で作成しています。
# useradd -u 10001 ranocci # id ranocci uid=10001(ranocci) gid=10001(ranocci) groups=10001(ranocci)
systemdでcode-serverの自動起動設定とサービス起動
systemdでcode-serverを自動起動するように設定し、その後サービスを起動します。 ユニット名は「code-server」と指定したくなりますが、これでは起動しません。 ユニット名は「code-server@Linuxユーザ名」と指定します。 先程作成したLinuxユーザの ranocci を指定して以下のように起動します。
# systemctl status code-server@ranocci ● code-server@ranocci.service - code-server Loaded: loaded (/usr/lib/systemd/system/code-server@.service; disabled; vendor preset: disabled) ←自動起動無効 Active: inactive (dead) ←停止状態 # systemctl enable code-server@ranocci ←自動機能の有効化 Created symlink /etc/systemd/system/default.target.wants/code-server@ranocci.service → /usr/lib/systemd/system/code-server@.service. # systemctl start code-server@ranocci ←サービスの起動 # systemctl status code-server@ranocci ● code-server@ranocci.service - code-server Loaded: loaded (/usr/lib/systemd/system/code-server@.service; enabled; vendor preset: disabled) ←自動起動有効 Active: active (running) since Sun 2021-05-30 05:00:19 JST; 8s ago ←起動状態 Main PID: 3744607 (node) Tasks: 22 (limit: 23888) CGroup: /system.slice/system-code\x2dserver.slice/code-server@ranocci.service tq3744607 /usr/lib/code-server/lib/node /usr/lib/code-server mq3744629 /usr/lib/code-server/lib/node /usr/lib/code-server 5月 30 05:00:19 localhost systemd[1]: Starting code-server... 5月 30 05:00:19 localhost systemd[1]: Started code-server. 5月 30 05:00:20 localhost code-server[3744607]: [2021-05-29T20:00:20.637Z] info Wrote default config file to ~/.confi> 5月 30 05:00:21 localhost code-server[3744607]: [2021-05-29T20:00:21.838Z] info code-server 3.10.2 387b12ef4ca404ffd3> 5月 30 05:00:21 localhost code-server[3744607]: [2021-05-29T20:00:21.842Z] info Using user-data-dir ~/.local/share/co> 5月 30 05:00:21 localhost code-server[3744607]: [2021-05-29T20:00:21.884Z] info Using config file ~/.config/code-serv> 5月 30 05:00:21 localhost code-server[3744607]: [2021-05-29T20:00:21.884Z] info HTTP server listening on http://127.0> 5月 30 05:00:21 localhost code-server[3744607]: [2021-05-29T20:00:21.885Z] info - Authentication is enabled 5月 30 05:00:21 localhost code-server[3744607]: [2021-05-29T20:00:21.885Z] info - Using password from ~/.config/c> 5月 30 05:00:21 localhost code-server[3744607]: [2021-05-29T20:00:21.885Z] info - Not serving HTTPS
code-serverの起動確認
systemdコマンド以外でもcode-serverの起動確認を行います。 psコマンドでプロセスを確認すると、systemdのユニット名で指定したユーザ(今回はranocci)でプロセスが起動していることがわかります。 また、起動しているプロセス名が node なので、code-serverはNode.jsで動いているようです。
# ps -ef | grep code-server | grep -v grep ranocci 3744607 1 2 05:00 ? 00:00:01 /usr/lib/code-server/lib/node /usr/lib/code-server ranocci 3744629 3744607 2 05:00 ? 00:00:01 /usr/lib/code-server/lib/node /usr/lib/code-server
code-server(プロセス名はnode)のネットワークソケット情報を確認すると、 デフォルトでは 127.0.0.1(localhost) からの 8080 ポートのみを LISTEN していることがわかります。 これではラズパイ4以外から接続できないので、後続の手順で LISTEN するIPを 127.0.0.1 から変更します。
# ss -tanp | grep node LISTEN 0 511 127.0.0.1:8080 0.0.0.0:* users:(("node",pid=3744629,fd=19)) #
バインドアドレスとログインパスワードの変更
デフォルトではバインドアドレスが 127.0.0.1:8080 となっており、ラズパイ4の外部から接続できません。 IPアドレス部分をラズパイのNICに付与しているIPアドレス(今回の環境では192.168.0.106)に変更します。 ポートは 80 の方が接続するときに楽ですが、今回利用したラズパイ4では先にインストールした GitLabが既に80番ポートを使用しているため、デフォルトの8080のままとしました。 また、同じ設定ファイルでログインパスワードも変更できるため、自身が利用したいパスワードに変更します。
code-serverを起動すると起動したLinuxユーザのホームディレクトリ配下にcode-serverの設定ファイルが作成されるので、 設定ファイルを開いて編集します。
# cd /home/ranocci/.config/code-server/ # vi config.yaml
※以下、該当箇所のみ変更※ bind-addr: 127.0.0.1:8080 ↓変更 bind-addr: 192.168.0.106:8080 ※ラズパイ4のIPアドレスを設定
password: 6f187a410e0108da2819070b ↓変更 password: P@ssw0rd ※任意のパスワードを設定
code-serverの再起動
変更したバインドアドレスとログインパスワードを反映するために、 systemdでcode-serverを再起動します。
# systemctl restart code-server@ranocci
code-serverへのログイン
ブラウザ(今回はEdgeを使用)を起動し、URLに先程設定したバインドアドレス 192.168.0.106:8080 を入力します。 「Welcome to code-server」画面が表示されたら、同じく先程設定したパスワードを入力し、[SUBMIT]ボタンをクリックします。
見ての通りユーザ名を入力する欄はありません。code-serverを起動したLinuxユーザ(今回はranocci)がログインユーザとなります。
ログインすると初期状態では全て英語で表示されます。続いてcode-serverを日本語表示に変更します。
code-serverの日本語化
画面左上の三本メニューから [View] - [Command Palette...] を選択します。
検索ウィンドが表示されるので、『lang』と入力すると候補が表示されるので、 [Configure Display Language] を選択します。
続いて選択可能な言語のリストが表示されますが、en しか表示されないため、 [Install additional languages...] を選択します。
「EXTENSIONS」画面が表示されたら、画面左から [Japanese Language Pack ...]を選択し、 画面右の [Install in Remote]ボタンをクリックします。
インストールが完了すると画面右下にポップアップが表示されるので、 [Change Language and Restart] ボタンをクリックします。
再起動が完了すると自動で日本語化された画面に切り替わります。
利用風景
iPad Pro 11のSafariでHTMLのテストページを作っている時のスクリーンショットは以下のような感じです。 使用感を確認しているだけなので表示されているコードはいい加減なものです。 code-serverの画面内でGitのコミットもできました。