OSS Fan ~OSSでLinuxサーバ構築~

このエントリーをはてなブックマークに追加

code-server v3.10.2をRaspberry Pi 4 Model Bへインストール

カテゴリ:OSSセットアップ | ソフトウェア:code-server | タグ:
最終更新日: | 公開日:2021/05/30

目次

概要

 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モデルを使用しました。 ハードウェアスペックは以下のとおりです。

■ハードウェアスペック
項目内容
SoCBroadcom BCM2711
CPUARM Cortex-A72 1.5GHz
GPUBroadcom 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
ファイル名:/home/ranocci/.config/code-server/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のコミットもできました。

参考にしたサイト