ネタの会場に、ロボット二台と、パソコンも運ぶというのがとても面倒だ。サリーとハルのときは、ハルにネタデータの作成機能が入っていたので、ロボット二台のことだけを考えればよかったが、サリーとマリーになってから、ネタ作りコンピュータを会場まで持ち込まなくてはならなくなった。とても面倒。
そこで、もっとシンプルなコンピュータはないかと探すと、スティック型コンピュータというのが安く手に入る。次のような代物を購入した。
インテルの「Intel Compute Stick スティック型コンピューター LinuxUBUNTU搭載モデル BOXSTCK1A8LFC」という名前で、アマゾンで売っているもので、7000円弱の値段だった。まあ、試してみようという意味もある。
もう少し値段が高くて性能のいいスティックコンピュータもあるが、ウィンドウズが入っているので、linuxに入れ替えなければならなくなる。購入したものは、ubuntu-14.04だいぶ古いが、linuxなので、入れ替えが不可欠というわけではないので、これにした。(というか、ネットワークに繋ぐと、400数十メガバイトのアップデートがあるというメッセージが出てくるが、何気にやってみたら、途中でフリーズして、工場出荷時に戻さなくてはならなくなった、笑)
なお、工場出荷時に戻すためには、説明文にもなかったが、電源切った状態で、電源ボタンを押したままで電源コンセントをつないで通電する。しばらくでubuntuの初期化用のページが表示される。
ちょっと動かしてみると、CPUはそれほど悪くはない。印象としては、raspberrypi よりも少しいい感じがする。微妙だが。ただ、ストレージが、ubuntuの工場出荷時のものをストレージの一部に保存していて、いつでも戻せるようになっているぶん、実際のシステムとして使えるのは、10Gもないような感じで、そのままでは使い物にならない。
メインメモリも1Gでは弱い。
マイクロSDカードがさせるので、それを使うことにした。64ギガのものを用意した。昔の癖みたいなもので、fdiskでパーティションを設定して、と思っていたら、partedを使えと言われてしまった。使ったことがないが、使うと、結構便利だった。まあ、それで、全体を一つのパーティションにした。
ここを /altでマウントしてとか思っていたのだが、何しろ、システムの余裕が殊の外なく。ちょっとしたアプリを入れても、容量がなくなり、システムダウンになってしまう。そのほかも含めて、トライアルエラーで、5,6回は、工場出荷時に戻した。その度に1時間以上時間をロスしている。
そこで、こんなことは今までやったことはないのだが、一番システム的に容量を取っている /usrをmicroSDに載せるしかないと思った。/usrを64Gにおけば、まあ、だいぶ余裕が出てくる。ただ、手続きが面倒だ。
まず、/usrにあるものを全部、 cp -rpfa /usr/* /alt でsdに移した。これで、完コピになっているかといえば、多分なっていないんじゃないかと思うが、まあ、他にやり方がわからないのでそうした。
さらにマウントテーブル /etc/fstab に partedで作成したパーティションを/usrにマウントする手続きを記載しなければならない。以下の通りだ。
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
#
# / was on /dev/mmcblk0p3 during installation
UUID=a5973b07-3927-4d2c-8e88-da8c9f63f97d / ext4 errors=remount-ro 0 0
# /boot/efi was on /dev/mmcblk0p1 during installation
UUID=59AE-C1C8 /boot/efi vfat defaults 0 1
# swap was on /dev/mmcblk0p4 during installation
UUID=b6e64128-dd57-461e-9904-43ac60967745 none swap sw 0 0
UUID=fb8aede3-36bd-4659-abb7-b7f8f03c7148 /usr ext4 defaults 0 0
最後の行が、付け加えたものだ。UUIDは、パーディションの固有IDだが、取得は次のようにする。/dev/mmcblk1p1と記載されているものは、今回作成したパーディションである。デバイスmmcblk1の第一パーティションの意味。
$ sudo blkid /dev/mmcblk1p1
/dev/mmcblk1p1: UUID="fb8aede3-36bd-4659-abb7-b7f8f03c7148" TYPE="ext4"
あっさり、現在の /usrは削除した。どうせ、何度も何度も工場出荷時に戻しているので、うまくいかなければまたそうすればいい。という、いい加減さ。
これで再起動したら、うまいこと/usrは、microSDにマウントされていた。現時点でのファイルシステムの使用状況は次のようになっている。/usrには、emacsやnetbeans、mariadbなど、apt-get install で重たいアプリをインストールしたが全然余裕である。
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mmcblk0p3 4954848 1992248 2687864 43% /
none 4 0 4 0% /sys/fs/cgroup
udev 448532 8 448524 1% /dev
tmpfs 92712 732 91980 1% /run
none 5120 0 5120 0% /run/lock
none 463540 76 463464 1% /run/shm
none 102400 32 102368 1% /run/user
/dev/mmcblk0p1 48698 4546 44152 10% /boot/efi
/dev/mmcblk1p1 61256732 4974448 53147564 9% /usr
最後の行に、/usrの 使用状況が記載されている。圧倒的なストレージの余裕感がある。邪道だが /usrの下に、私が所有者になっているフォルダーも用意して、ストレージを使うようなファイルはそこに置いている。
ストレージは以上だが、アプリでも手間取った。何よりも、javaを入れなければならないのだが、まあ、netbeansを入れることによって全てクリアしようとしたが、これがなかなか入らない。まあ、java開発環境が有料化するという大きな変わり目ということもある。いや、関係ないか。古いjdkでもいいのだ。sudo apt-get install netbeansとしてもさっぱりうまくは入らない。(本来は、jdkそのものじゃなくて、実行環境のjreだけでいいのだが、もしものためにnetbeansも入れたという感じ)
jdkとnetbeansをそれぞれのダウンロードサイトから入れようとしたのだが、理由がわからないままにうまくいかない。結局、以下のサイトを参考にして、ほぼうまくいった。
https://websiteforstudents.com/how-to-install-netbeans-on-ubuntu-16-04-17-10-18-04/
ubuntuのバージョンが上記サイトが想定しているものより、一段も二段も古いのだが、ほぼ、そんな感じでインストールできた。
ぞれでも、エラーが発生したのは、netbeansの起動時にjdkのフォルダが見つからないことだった。そこで、
/usr/local/netbeans-8.2/bin/netbeans --jdkhome /usr/lib/jvm/java-8-oracle/
と--jdkhome を指定してやれば、全てうまくいった。これは、環境変数JAVA_HOMEを指定すればいいはずなのだが、なぜかうまくいかないので、これを書いたシェルスクリプトで起動させることにした。素人か!(笑)
あと、mariadbも入れて、ただ、データのフォルダが/var/lib/mysqlになっているので、それを/usr配下に変更する必要があった。これは、/etc/mysql/my.cnfの
datadir = /var/lib/mysql
を変更し、そこに cp -rfp で元データを丸ごとコピーするだけで済んだ。他のところは、特に容量を取らないのでそのままにした。というよりも、socketの位置などを変えたら、なんだかおかしくなった。私の場合は必要ない。
(追記:実際使ってわかったことで、1ギガとかでっかいデータを入れると、ログもまたとてつもなくでかくなるので、/var/lib/mysql 以下のログフォルダも、新しいmicroSDの場所に移さなくてはならなかった!my.cnfの該当箇所を変更。そうしないとrootパーティションを使い切って動きが取れなくなる)
mariadbのインストールは以下のサイトを参考させてもらった。
https://qiita.com/cherubim1111/items/61cbc72673712431d06e
私のubuntuは14.04で上記のは、18.04で相当違うのだが、ほぼ、その通りにできた。