9
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ラズベリーパイ4にNode.jsをインストールするまで

Last updated at Posted at 2020-05-31

自宅簡易サーバを作ろうと思い、ラズベリーパイ4を購入しました。とりあえず、Node.jsをインストールするところまでの備忘録です。

OSのインストール

OSを何にするか迷いましたが、結局ラズベリーパイ標準OSのRaspbianを入れることにしました。OSイメージはこちらからダウンロード。
RaspbianはDebianベースのOSなのでUbuntuとかに慣れ親しんだ人であればほとんど苦労することは無いと思います。パッケージ管理はaptです。
基本的には手元のMacからSSH接続にて使おうと思ったので、CUI(Raspberry Pi Lite)を選択しました。
まずは、SDカードにOSを入れるところから始めます。SDカードにOSを書き込む方法も色々あるようですが、私はRufusというフリーソフトを使いました。詳しい使い方はこちらを参考にしました。
Rufusを使ってOSイメージをSDカードに書き込んだら完了です。

初期設定

OSイメージを書き込んだSDカード、キーボード、モニタをラズベリーパイに接続します。このとき、4Kディスプレイとかに接続してしまうと文字が小さすぎて辛いので、解像度があまり高くないモニターに接続したほうがよさそうです。。。
電源を入れて暫く待つとOSが起動し、ログインが求められます。
デフォルトユーザとしてpi、パスワードraspberryが用意されています。
ログインができたら以下コマンドで初期設定を開始します。

// 以後sudo打つのが面倒なのでsuper userになります。
$ sudo su -
$ raspi-config

コマンドを実行するとキャラクタベースのUIが起動します。
まず、raspi-config自体の更新を行います。 8 Updateを選択します。
その次にキーボードの設定を行います。こちらに絵付きでわかりやすく解説されてますので、参照してください。
上記に記載されていない内容として時刻設定もしておいたほうがよさそうです。

  • 4 Localisation Optionsを選択。
  • I2 Change Timezoneを選択。
  • Asiaを選択。
  • Tokyoを選択。
  • Finishを選択。

dateコマンドでJSTになったことを確認

$ date
Mon  1 Jun 19:01:31 JST 2020

Wi-Fi設定

情報が錯綜しており、Wi-Fi設定は結構ハマりました。

WiFiネットワークをラズベリーパイに追加する

WiFiに接続できるまで辛いですがとりあえずviを使います。ネットワークの設定はwpa_supplicant.confを編集します。ご自宅のWiFiのSSIDとパスワードを用意して下さい。
直接SSIDとパスワードを入れてもいいのですが、セキュリティが不安なので、暗号化されたパスワードを登録します。
以下コマンドを実行します。

$ sh -c 'wpa_passphrase SSID PASSPHRASE >> /etc/wpa_supplicant/wpa_supplicant.conf'

これで暗号化されたパスワードがwpa_supplicant.confに登録されますが、生パスワードが残っているので削除します。

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=GB

network={
        ssid="SSID"
        #psk="PASSPHRASE" #削除
        psk=xxxxxxxxxxx....xxx
}

これでラズベリーパイを再起動すれば一応WiFiに接続できるはずなのですが、私の場合以下エラーで接続できませんでした。

$ reboot
wifi is currently blocked by rfkill

ここで結構ハマりました。ifconfigで確認してもwlan0が一向に現れませんでした。
以下コマンドでOSのWiFi機能の状態を確認すると確かにOS側で機能がブロックされていました。

$ sudo rfkill list all
0: phy0: Wireless LAN
        Soft blocked: yes
        Hard blocked: no
1: hci0: Bluetooth
        Soft blocked: yes
        Hard blocked: no

以下コマンドを実行することでwlan0が表示されるようになります。

$ rfkill unblock all
$ dhclient wlan0

IP固定化

今のままだと再起動の度にIPアドレスが変わってしまうのでIPの固定化を行います。
以下コマンドで設定ファイルを開きます。(WiFiが繋がるようになったので、予めvimをインストールします。付録参照)

$ vim /etc/dhcpd.conf

ファイルを開いたら、一番下までスクロールし、下記項目を追加します。

interface wlan0
static ip_address=192.168.3.x/24 // 固定IPアドレスxはお好みで。 "24"はサブネットマスク長
static routers=192.168.3.1 // デフォルトゲートウェイのIPアドレス
static domain_name_servers=192.168.3.1 // DNSサーバのIPアドレス

それぞれの確認に困ったらこちらを参考に。
設定後、再起動しifconfigでIPアドレスを確認し設定が反映されていればOK。

SSH接続

$ vim /etc/ssh/sshd_config 
PasswordAuthentication no
// ファイルを保存後、sshd を再起動して設定を有効化します
$ systemctl restart sshd
// 正常に稼働しているかどうかは、次のようにコマンドを実行し、sshd が「Active: active (running)」なのを確認します
$ systemctl status sshd
// Active: active (running) が出てればOK

あとはキーペアを作成し、ラズベリーパイに公開鍵を登録すればSSH接続ができるはずです。
キーペア作成及び公開鍵の登録については以前自分の書いたこちらを参考にできるかと思います。
ここまで完了すればあとはHDMI、キーボードを外しご自身の開発環境からSSH接続して操作すると快適かと思います。

Node.jsのインストール

nodeに関してはやりたいことに応じて入れるバージョンなども変わってくると思いますので、パッケージ管理ツールNを使ってインストールします。個人的な都合でv8.17.0を入れていますが、お好みで変えて下さい。

$ sudo apt install npm
$ sudo apt install nodejs
$ sudo npm install n -g
$ sudo n stable
$ sudo apt purge -y nodejs npm
$ sudo n 8.17.0
$ node -v

付録

vimのインストール

$ apt-get install vim

gitのインストール

$ apt install git
$ git config --global user.email "hoge@gmail.com"
$ git config --global user.name "hoge"

aptのインストールでうまく行かないとき

$ apt-get update
$ apt full-upgrade -y

参考

9
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?