MongoDB
docker
openSUSE
Raspberrypi3

Raspberry Pi3にopenSUSEを入れる

概要

Raspberry Pi3は64bitOSが動くということで、ラズパイを公式サポートしているopenSUSEを入れてみました。
ただ、色々といまいちでした。中途半端な記事になりますが、メモとして残します。
動けばFedoraより軽くてよさそうな気はします。

前提・注意点

  • Raspberry Pi3B を推奨
    • TumbleweedはRaspberry Pi3B+はeth0認識できずインストールできない
    • Leap15はRaspberry Pi3B+でもインストールできた
  • 基本的にSSHで操作しています。GUIは使用しない
    • GUI使う場合、超重いので注意(^^;
  • LANは有線か、無線のどちらかしか使えない
    • 正確には、無線を有効化すると有線も認識はしているがつながらない。ネットワークを分けたりすれば使えるのかもしれません。

結局、現状メリットはなさそうです。

セットアップ

OSの種類について

ラズパイ用の公式Wikiはこちら

下記2種類があります。

  • Leap
  • Tumbleweed

Leapが通常のバージョンごとのリリースで、最新がLeap15、ひとつ前はなぜかLeap42.3。
Tumbleweedはローリングリリース版という、常時最新にアップデートされていく形式。バージョンはありません。Leapの最新版=Tumbleweedになるのかな。(動作が違う気がするけども・・・)

それぞれに対し、以下のパッケージがあります。(説明は正確ではないかもしれません)

  • JeOS : 仮想環境向けの最小構成版(GUIなし)。(Just Enough Operating System)
  • E20 : Enlightenment のE20を採用したもの(?)
  • XFce : 軽量デスクトップ環境
  • LXQT : Tumbleweed 版のみ
  • X11 : 統合デスクトップ環境なし(?)

JeOSとE20の2つを試しましたが、GUIは非常に重いのでラズパイでは無理ではないかと思います。JeOSは基本的に何も入っていないので不便。E20をCUIで使うのが無難。
でもたぶんSUSEはWindowsライクのGUIが売りなのでメリットないかな。

E20はTumbleweedを使用しています。JeOSはLeap15を使用しています。(ほかの組み合わせは試していません)
基本的な操作方法は同じです。

インストール

インストールは、LCDとキーボードを接続して行います。
公式WikiからOSイメージをダウンロードし、7z等で解凍して、rawファイルをSDカードに書き込みます。

電源入れると、メニューが表示され、Enterを押すか、そのまま待つと、数分でログイン画面まで進みます。
初期状態では、ID:root、パスワード:linuxでログイン可能。

初期設定

E20の場合、WindowsライクのGUIになっていて、メニューから「Preferences」を選ぶと各種設定が可能です。ターミナルもメニューから起動できます。日本語設定をするとフォント等をダウンロードするため非常に時間がかかります。フォントなんてどうせ1つしか使わないんだから全部入れる必要ないのに。しかも大して日本語化されない。

JeOSの場合、とりあえずログイン後、ifconfigでIPアドレス確認し、SSHでログイン可能。
yastで簡易GUI画面が出ます。パッケージ管理コマンドはzypper。その他、Linuxなのでコマンドはほぼ同じ。

yastで初期設定を行います。

# yast

以下のような画面になるので、項目を選んでいきます。基本的に、TABキーでブロックの移動、ブロック内は十字キーで移動します。削除はBackSpaceが使えたり使えなかったり。使えないときはDeleteで消せます。
テンキーも使える画面と使えない画面がある。
以下画像では日本語になっていますが、初期状態では英語です。
キャプチャ.JPG

  • SystemのDate and Timeでロケーションの設定。Asia、Japanを選択し、OK。
  • SystemのLanguagesで言語設定。Japaneseを選び"Adapt Keyboard Layout to Japanese"にチェック(Enter)し、OK。
    • フォントの追加ダウンロードが走る。
    • 最初に5分くらい何も起こらず、フリーズしたように感じるが動いているはず。
    • インストールは結構時間かかる。完了後、F9で抜けて、再度入ると日本語化されている。
  • SystemのNetworkでネットワーク設定。wi-fiの設定も可能ですが、有効化すると・・・
    • ネットワーク設定は完了後、自動でIF再起動するので接続切れます。

設定終わったら、F9で抜ける。

ユーザーを追加する(piとした)。-mをつけないとユーザーディレクトリが追加されないので注意。

useradd -m pi
passwd pi

sudoを使えるようにする。パスワード不要にする場合は、以下のようにする。

visudo
    %wheel ALL=(ALL) ALL  をコメントアウトし
    %wheel ALL=(ALL) NOPASSWD: ALL  を有効化する

wheelにユーザーを追加

groupadd wheel
usermod -aG wheel pi

ネットワークの追加設定。
デフォルトゲートウエイとDNSを設定する。(無線使用時は、eth0をwlan0にする)

vi /etc/sysconfig/network/ifroute-eth0  (新規作成)
    default 192.168.10.1 - eth0

vi /etc/sysconfig/network/config
    NETCONFIG_DNS_STATIC_SERVERS="8.8.8.8 4.4.4.4"

再起動し、以降ユーザーでログイン。

アップデート

sudo zypper refresh
sudo zypper -n update

初回は20分くらいかかる。完了後、一度再起動する。
カーネルアップデート

sudo zypper -n dup

10分くらいで終わる。

確認

uname -a
cat /etc/os-release

開発環境等

vim

sudo zypper -n in vim

git

sudo zypper -n in git

Node.js

sudo zypper -n in nodejs8  (バージョン8の場合)
node -v
npm -v

yarn

公式手順

sudo curl -o- -L https://yarnpkg.com/install.sh | bash
source .bashrc  (PATHの設定まではされるが、読み込まれない)
yarn --version

mongodb

JeOSだとインストールできない(パッケージが見つからない)。E20では問題なかった。

sudo zypper -n in mongodb

docker

公式アナウンスではdocker-eeのみサポートとなっているが、docker-ceも普通にいれられる。
手順は公式ドキュメント通り

sudo zypper -n in docker
sudo systemctl start docker
sudo systemctl enable docker

ユーザー権限で使えるようにする
sudo gpasswd -a pi docker
sudo reboot

コンテナから外部ネットワークに接続できるようにするため、ファイアーウォールの設定を変更する

sudo vi /etc/sysconfig/SuSEfirewall2
    FW_ROUTE="yes"

docker-compose

どうやっても無理なもよう。
公式にはサポートされている
入れるとエラーになる。

TumbleweedのE20の場合で、一応動いた(と思われる)メモを残します。
超初心者で申し訳ないです:sweat:
公式ページでダウンロードからソースを取得しビルドします。ものすごい時間かかる。

sudo zypper -n in rpm-build
wget http://download.opensuse.org/repositories/openSUSE:/Factory/standard/src/docker-compose-1.21.2-2.1.src.rpm
rpmbuild --rebuild docker-compose-1.21.2-2.1.src.rpm

依存関係のエラーが出るので、全部入れる(^^;
sudo zypper -n in python2-PyYAML python2-backports.ssl_match_hostname \
python2-dockerpty python2-cached-property python2-docopt python2-enum34 \
python2-ipaddress python2-jsonschema python2-mock python2-pytest \
python2-texttable python3-PyYAML python3-cached-property \
python3-dockerpty python3-docopt python3-jsonschema python3-pytest \
python3-setuptools python3-texttable

rpmbuild --rebuild docker-compose-1.21.2-2.1.src.rpm
build完了時に、出力先が表示される。デフォルトでは~/rpmbuild/RPMS/noarch/ に入るはず。

cd rpmbuild/RPMS/noarch
python2とpython3の2つのパッケージができているが、python2のほうは動かなかった。
sudo rpm -ivh python3-docker-compose-1.21.2-2.1.noarch.rpm

依存関係解消
sudo zepper -n in python3-PySocks

sudo rpm -ivh python3-docker-compose-1.21.2-2.1.noarch.rpm

インストールの確認
rpm -qi python3-docker-compose
rpm -ql python3-docker-compose

バージョン確認
docker-compose --version

参考