マストドン v2.0.0アップデート(CentOSにて)

Twitterをモチーフにした分散型ソーシャルネットワーキングシステム「マストドン」(Mastodon)が2017年4月頃から日本でも話題になり,いくつものインスタンス(分散したサーバー)が運営を続けています。

独自にインスタンス(サーバー)を立てて運用するため,どちらかというと限定されたコミュニティ内で使うのに適しています。そのためTwitterを置き換えるというものではありませんが,決してコミュニティ内で閉じるのではなく,外部とも連携できるしくみが備わっているのがマストドンの興味深いところです。

教育学習とICT関係に関心のある皆さんに向けたマストドンとして「elict インスタンス」というものを立ち上げて運用しています。教育学習やICTのことを話題にするというだけでなく,その界隈の人々がマストドンを試す場所を提供するのも目的です。

Mastodon manager

それから,CentOS 7上で最新のマストドンシステムを構築して運用する実験をすることも目的としています。とはいえ,マストドンシステムのアップデートは一筋縄ではいかない難しさがあります。そもそもマストドン本家は同じLinuxでもUbuntuを推奨していて,CentOSでの運用は詳しく説明してくれていません。

先日(10/19),マストドンが v2.0.0へとメジャーバージョンアップしましたが,このアップデート作業もすんなりとはいきませんでした。

10月22日にv.2.0.0へのアップデートを試みたところ,エラーメッセージとともに作業は足止めされ,サイトはダウン状態となりました。それから暇を見つけては対処法を探り続けましたが,闇雲に作業すれば泥沼行き。かといって始めからやり直してみようと試みても,なぜか同じエラーの結果になるという幽閉状態。

参考情報を探そうとしても,同じ条件で構築している人は少ないし,ほとんどの人々がv2.0.0アップデートの難関さを前に躊躇っている状態か,難なくクリアしたかで,手がかりは極めて少なかったのです。英語のぶっきらぼうなエラーメッセージだけでは,何をどうしたらよいのか,万策尽きた感じさえしました。

しかし,端末から発せられるメッセージはエラーメッセージばかりではないのですね。それを丁寧に追っかけると,そもそも最初に出ていたエラーさえ適切に対応すれば良かったことがわかりました。

本当なら,自分が解決した道筋を,再検証して整理しながら解説すべきなのですが,なかなかそういう余裕もないので,とにかく手がかりになりそうなコマンドをここに書き記していこうと思います。

まずマストドンの基本的なインストール方法はこちらを参照してください。

Mastodon Production Guide

CentOSの場合,「apt」よりも「yum」を使うことが多いかなと思います。たとえばrootユーザーで

yum -y install ImageMagick libxml2-devel libxslt-devel git curl file g++ protobuf-compiler protobuf-devel gcc openssl-devel libyaml-devel zlib-devel ncurses-devel libffi-devel gdbm-devel readline-devel libicu-devel libidn-devel bzip2 

という感じです。また,CentOSのdevelopバージョンは-devではなく-develと表記することが多いです。

ちなみに,上の並びはnode.jsとYarnとffmpegとpostgresqlとnginxなどは別途作業したときのコマンド並びなので,構築されるサーバ環境によって追加したり減らしたりする必要があります。

「Dependencies That Need To Be Added As A Non-Root User」項目から以下はわりとそのままだと思います。

これらでなんとか構築完了して,運用を始めましょう。もし問題が発生したら下の方に書く対処を試みます。

定型的なアップデート作業は次の通りです。普通はマストドンユーザーでログインし…

cd live
git fetch
git checkout $(git tag -l | sort -V | tail -n 1)
bundle install
yarn install
RAILS_ENV=production bundle exec rails db:migrate
RAILS_ENV=production bundle exec rails assets:precompile

そして,rootユーザーに切り替えてから

systemctl restart mastodon-*.service

としてマストドンを再起動するとアップデートが反映されます。

アップデート作業などで問題が発生した場合に試みたこと。

export PKG_CONFIG_PATH=/usr/lib64/pkgconfig

bundle installでエラーが出た場合,パスが通ってなかった可能性があります。上はその一つ。

cd /home/mastodon/.rbenv/plugins/ruby-build && git pull && cd -
rbenv install 2.4.2
rbenv rehash
rbenv global 2.4.2
rbenv global

Ruby環境を最新にしないといけないアップデートもありました。上はマストドンユーザーでログインして2.4.2にするときのもの。ディレクトリ構成は自分の環境に合わせてください。

wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo
yum install yarn

Yarnを最新にする必要があるときもありました。上はrootユーザーで入力したもの。

git checkout v1.6.1

gitから取ってくるmastodonバージョンを指定したいときに。マストドンユーザーで,liveディレクトリに移行後。ただし元に戻りたくても戻れないときもあります。

git reset --hard origin/master

ローカルをいじり過ぎておかしくなった場合,ローカルを上書きしてリモートに合わせてしまいたいときに使います。いわゆるリセット。

rm .bundle/config

オプションなしで「build install」すると以前の設定が引き継がれて処理されます。その履歴を消したいとき。

gem install lograge
bundle install --with production

v2.0.0アップデートで一番泣かされたのが「lograge」Gemファイル未インストール問題。インストールしたいと思って「gem install lograge」してみても一向に問題が解消されないとき,「bundle install –with production」と明示的に指定したら問題が解決しました。いやはや,回り道をしました。

この他に効果があったかどうかは分からないけれども試してはつまずくのを繰り返したコマンドは以下の通り。

gem cleanup
gem install bundler
gem install rails --no-document
gem update --no-document
bundle update
yarn cache clean

この他にもhttps通信を行なうための証明書取得など必要な手続きはありますが,それはまた別の機会に。

 

『作ることで学ぶ』をゼミ講読

後期が始まってしばらくはドタバタとした日々だったため,こちらに落ち着いて文章を書く余裕がありませんでした。りん研究室もいよいよ始まった専門ゼミナールや歴史研究のための資料集めが活発化しています。

専門ゼミナール(りんゼミ)では,文献講読を中心に卒業研究の取り組みにつながる活動をしていますが,今年の文献は『作ることで学ぶ ――Makerを育てる新しい教育のメソッド』(オライリー・ジャパン)にしました。

Fullsizeoutput 116f6

この本は全14章で構成されていますが,1章から5章が理論編で,6章以降に実践解説編が展開しているという感じに分けることができます。ゼミメンバーは私を入れて5人なので,1章を私が担当して,残りをゼミ生に担当してもらいながら一緒に読んでいくことになっています。

1章 かけ足で巡るメイキングの歴史
2章 メイキングが導く学習
3章 考えることについて考える
4章 よいプロジェクトの秘訣とは?
5章 教えること

1章は歴史を扱った章なので,私の経験も踏まえながらとても駆け足に流れを紹介しました。

ゼミ生は児童学科所属で,小学校の教員志望だけでなく保育士・幼稚園教諭志望の学生たちとともに学んでいるという環境でもあるため,進歩主義教育の風景的なイメージは理解しやすい立場ですし,メイキング(ものづくり)についても比較的身近に感じている方だと思います。1章に出てくる「レッジョ・エミリア・アプローチ」なんかも『驚くべき学びの世界』の展示会カタログ本の写真なんかを眺めると,その世界観について驚くとともに,それでも子どもたちが生き生きとしている様子には好感を持つというか,納得できる学生たちです。

さあ,しかし,こうした実践を言葉として理屈づけるという行為となるとそう簡単ではありません。もちろんそれを一緒に経験して学んでいくのが専門ゼミナールの活動であり,卒業研究への助走でもあります。

2章から学生たちが担当の購読が始まりました。

『作ることで学ぶ』は難解な文章で書かれたものではないので,丁寧に読めば書かれていることは理解できるはずですが,使われている言葉(たとえば2章はいきなり「構成主義」と「構築主義」が現れます)に面食らうこともあるでしょう。また,英語からの翻訳書であることから,段落構成が結論的文章プラス具体的文章の順番になっているため,読み慣れないと結論的文章で足止めを食らって,具体的文章のところの解説で理解できるはずのものが読み取れないままということもあります。

学生たちの本を読む力は,人によって様々。これくらい難なく読みこなす学生もいれば,本を読み慣れていない学生は知らない言葉で悩んでしまうこともあります。一緒に読むことが目的なので,困った場面が来たら助け合って読み進められればよいなと考えています。幸い,ゼミ生達はうまく助け合ってくれています。

「メイキング」だけならともかく,加えて「ティンカリング」とか「エンジニアリング」とかとの違いを意識しなさいとなると,それだけでも十分金縛りにあったまま読み進めることになり,文献講読は予想以上に時間がかかりそうです。せっかくなので,14章分を読むということはこだわらず,最初の5章分をじっくり理解することに重きを置くことにしようと思います。

今後の学校教育が,知識伝達に限らない知識構築や知識創造にも拡張していくというならば,その基本的な理論について学ぶ機会が必要です。理論書は他にもたくさんありますが,いまはこの本を読むのが一番よいタイミングではないかなと思います。

また,幸いなことにMITメディアラボがオンライン講座「Learning Creative Learning」を開講中です。短い動画をときどき視聴することも文献講読に役立ちそうです。レズニック先生の新著「Lifelong Kindergarten」からの抜粋を日本語で最速に読めるチャンスでもありますね。

教育とICTのウィキペディア開設

教育ICT Wiki
(http://ict.edufolder.jp/wiki/)を開設しました。

 

EduIctWiki

いろいろな情報を集めてはまとめようと努力しているつもりですが、一人ではなかなか手が回らない現実があります。集めても個人発信的だと他者には利用し難いところもあります。

教育と情報(ICT)を軸にした情報蓄積発信サイトを作りたいと考えていました。

すでに多数の情報発信サイトがある中に,貧弱なサイトを立ち上げても対抗できるわけではないのですが,皆さんにもご協力いただける場所をつくることは大事かなと考えて,新たにつくることにしました。

本家ウィキペディアが提供しているMediaWikiというソフトを利用して構築しました。名前はベタが一番だと思ったのでこうなりました。教育とICTの周辺のこともいろいろ入れていこうと思います。

もちろんコントリビューター(編集貢献者)も大募集・大歓迎しています。皆さんのお持ちの情報や実践,過去の記憶や歴史など,ここに記録してください。(運用については,これからいろいろルール作りをします。)

いまは器を作っただけですので,どれだけ中身を充実させられるか,数年は時間をかけて育てていかなければならないかなと思います。生まれたては,手間はかかるし,きっと問題も起こると思いますが,たぶんこういうウィキメディアが必要だと思います。

どうぞよろしくお願いします。

探しています『NEW教育とマイコン/コンピュータ』誌

りん研究室では『NEW教育とマイコン』(『NEW教育とコンピュータ』)のバックナンバーを捜しています。ご協力お願いします。

1985年に学習研究社(学研)から創刊され、2007年まで発刊されていた教育とコンピュータ関連の雑誌です。教育と情報の歴史研究のため、所蔵できていない号を入手したいと考えています。

こちらで送料負担をいたします。お譲りいただけると有り難いですが、もし有償でのご提供をお考えの場合は相談させてください。正直、予算がないため、徳島の粗品か何かお礼を…と思います。

連絡先: kotatsurin @ gmail . com

[近況 20170827]1996年〜1997年頃の号をお譲りいただけそうです。引き続き,ご協力よろしくお願いします。
[近況 20171010] 2004年以降のものもたくさんお譲りいただきました。感謝。
[近況 20171016]無事に創刊号を入手しました。引き続き,残りの号も探しています。
[近況 20171201]1986年4月号,1987年9月号,1999年12月号,2001年9月号は入手済
[近況 20180209]前半部分のかなり多くの号をお譲りいただきました。あと8冊!
[近況 20180322]2003年9月号をお譲りいただきました。ありがとうございます!
[近況20180709]2003年11月号をお譲りいただきました。ありがとうございます!
[近況20210621]1995〜1996年の欠号を預けていただきました。

Fullsizeoutput 10da0

【捜して入手したい『NEW』誌リスト】(あと2冊 [20210621])

1999年11月号

2003年10月号

【見え消しリスト】

19856月号(創刊号)(入手しました[10/16])
198510月号(創刊3号)(入手しました[2/9])

19864月号(No.6(入手しました[12/1]

19879月号(入手しました[12/1]

19901月号(入手しました[2/9])
19902月号(入手しました[2/9])
19903月号(入手しました[2/9])

19929月号(入手しました[2/9])

1995年12月号(入手しました[20210621])

1996年1月号(入手しました[20210621])
1996年2月号(入手しました[20210621])
1996年3月号(入手しました[20210621])

19973月号(入手しました[8/30])
19976月号(入手しました[8/30])
19978月号(ありました[8/21])
19979月号〜199712月号(入手しました[8/30])

19981月号〜19987月号(入手しました[8/30])
19989月号(入手しました[8/30])

19991月号(入手しました[8/30])
199910月号(入手しました[2/9])
199911月号
199912月号(入手しました[12/1]

20001月号(ありました[8/21])
20005月号(入手しました[2/9])
20007月号〜200012月号(入手しました[2/9])

20011月号〜20014月号(入手しました[2/9])
20016月号(入手しました[2/9])
20017月号(入手しました[2/9])
20018月号(入手しました[2/9])
20019月号(入手しました[12/1]
200110月号(入手しました[2/9])
200111月号(入手しました[2/9])

20022月号〜20025月号(入手しました[2/9])
20027月号〜20029月号(入手しました[2/9])
200210月号(入手しました[8/30])
200211月号〜20033月号(入手しました[2/9])

20035月号(入手しました[2/9])
20039月号(入手しました[3/22])
2003
10月号
200311月号(入手しました[7/9]
200312月号(入手しました[9/11])

20041月号〜20045月号(入手しました[9/11])
20046月号(入手しました[12/]
20047月号〜200412月号(入手しました[9/11])

20052月号(入手しました[9/11])
20053月号(入手しました[9/11])
20059月号(入手しました[9/11])

20065月号〜20069月号(入手しました[9/11])
200612月号(入手しました[9/11])

200710月号(入手しました[9/11])

以上の号を捜しています。よろしくお願いします。

FileMaker Cloudを導入

りん研究室は、教育と情報の歴史研究に取り組んでいます。正確には、取り組むための文献資料集めと整理をしている段階です。長い時間がかかっていますが。

歴史研究には年表づくりが必要で、初期にはExcelファイルやGoogleスプレッドシートで作成していました。シンプルな表形式は便利なのですが、記録したい詳細情報が大きくなると参照が難しくなる弱点もありました。

それで数年前からFileMakerを利用したデータベース管理に移行して、データベースファイルをDropBoxに保存しながら利用していたわけです。職場のiMacや持ち運びのMacBookでFileMaker Pro等を起動して更新作業するスタイルです。

データベースによる年表項目の管理自体は問題なく運用できて、とにかく情報収集とデータ更新が目下の課題です。

ただ、唯一問題が残っていて、それは私がiPad Proのヘビーユーザーなのに、iOS版のFileMaker GoアプリではDropBoxに置かれているデータベースファイルにアクセスできないということ。ファイルは読み込めますが、作業結果はiPadのみに保存されて、共有しているデータベースファイルとは別物になり反映されないのです。

情報収集に図書館等へ行く際、持ち込むのはiPad Proが多くなっているので、そこから作業できないのは辛い。

これを解決する方法は、FileMaker用サーバーを立てること。

しかし、これまでFileMaker用サーバーは自前で立てる必要があり、運用コストもかかる手間もかかる状態でした。

2016年9月、この問題を解決する「FileMaker Cloud」がファイルメーカー社から発表されました。Amazon Web Services(AWS)というクラウドプラットフォームに対応したLinux版FileMaker Serverの登場です。

日本でも2017年7月からサービスが利用できるようになったので、早速利用を試みました。

FileMaker Cloudは、「AWSという外部に立てるクラウドサーバー」と「FileMaker Serverというデータベースサーバーソフト」の2つのセット商品と考えると初心者には分かりがいいと思います。

というのも、料金はそれぞれ別立てになっているからです。サーバー利用料とソフト利用料の2つ。

料金徴収の方法には選択肢があり、AWS(つまりアマゾン社)とFileMaker(つまりファイルメーカー社)のそれぞれ2社が用意したルールでそれぞれに徴収する方法と、AWS(アマゾン社)が一括して徴収する方法があります。

アマゾン社は、サーバーを時間貸しする料金体系がメインなので、一括徴収を選ぶとサーバーもソフトも時間料金で支払える特徴があります。ビジネス用途にはそういう方が便利なことが多いようです。

私のように「いつでもどこでもFileMaker使いたいんだよね」みたいな場合は、2社が別々に用意している割引制度を最大限利用するのが良いです。

FileMaker Serverは複数ユーザー利用が前提のソフトですから、お値段はそれなりに。FileMaker Licensing for Teams (FLT)というモデルは、普通に買うと最低クラス(5ユーザー向け)で約10万円/年間くらいします。(2ユーザー向けとか作ってくれるとちょっと嬉しいんですけど)

私は教育機関に勤めているので、アカデミックライセンスという形を利用して、約6万円/年間という料金でライセンスを取得しました。研究費はこれで吹っ飛んじゃいます。

AWSサーバーは環境を借りる手続きをすることになります。すでにAWSのWebサイトにはFileMaker Server用の環境セットがライセンスのタイプごとに用意されているので、今回は別々に料金を支払う用の「BYOL」タイプを購入する手続きを進めます。

この辺は全部英語で進むので、事前に「FileMaker Cloud入門ガイド」を読み、再度読みながら手続きを進めた方がよいと思います。AWSの知識や利用した経験がないと道に迷いやすいかもしれませんが、説明通りの手順を踏めばセッティングは可能だと思います。(追記:「FileMaker Cloud スターティングガイド」はさらに丁寧に解説してありますね。)

AWSのセッティングが終わると、AWSセッティング過程に入力したメールアドレスに対して、ファイルメーカー社へのリンクを含んだメールが届きます。そこからファイルメーカー社のWebサイトを開き、すでに購入したFileMaker Serverライセンス番号を入力してFileMaker Cloud用に変換手続きすることで、AWS側とFileMaker側が繋がって、利用が承認されるという仕組みです。あとは立ち上がったFileMaker用サーバーに接続するだけ。

晴れて、iPadのFileMaker Goからも統一的にデータベース更新作業ができるようになりました。

しかし、このままだとAWSクラウドサーバーの時間貸し料金が膨れ上がって大変なことになります。

もともとAWSをセッティングする際に、サーバーを置く場所(リージョン)を選択したのですが、実はリージョンによって料金が違うので、こだわりがなければ安い米国のリージョンを選択しておくことになります。反応速度云々はあまり気にしなくてよいと思います。

それから、サーバーの性能が決まる「インスタンスタイプ」というものも、初期セッティング時には選択をしておかなくてはならなかったのですが、FileMaker Cloudの場合は「t2.small」タイプが最低条件です。そしてランクアップするごとに料金も高くなります。反応速度はインスタンスタイプで決まると言ってもよいと思います。

私はt2.smallを選択しました。動作はもっさりですが,WebDirect機能も使うことができます。複数接続だときつい感じかも知れません。残念ながらt2.smallではFileMakwerデータベースをWeb画面で操作するWebDirect機能を使うことができないようです。(当初できなかったのは、FileMakerデータベースファイルに対して「WebDirect構成」していなかっただけでした。)ファイルメーカー社の技術仕様ページにも「*メモ: FileMaker WebDirectでのt2.smallの使用はお勧めしていません。」と注意書きしています。

お一人利用で安さ優先ならt2.small。複数利用ならt2.medium以上といった感じです。料金も倍々に跳ね上がりますが…。

さて、その上で、通常の時間貸しタイプではなく、年単位契約による割引タイプ「リザーブドインスタンス」を購入するのが重要です。これはサーバーを年単位でリザーブしておく権利を買うものです。

すでにインスタンスを立ち上げてあるのに、またリザーブドインスタンスを買ったら二重買いになるのではないかと不安になるかも知れませんが、これはすでに立ち上げたインスタンスに対して、リザーブドインスタンスという権利を適用するという形をとるので、同じリージョン内に同じタイプのインスタンス(t2.smallとか)があれば自動的に適応されます。

リザーブドインスタンスの価格は、リザーブする期間と支払い方法(全前払い、一部前払い、前払い無し)によって変わります。私は米国リージョンのt2.smallを1年間リザーブしたので、137ドル(約1万5千円)を全前払いしました。

というわけで、FileMaker Cloudを使い始めるためには、少なくとも年間12万円程度(教育関係者は8万円)が必要という支出規模になります。(FLTに2ユーザー向けライセンス設定があって少しでも安価になれば助かるなぁと思います。)

以上が、自分でFileMaker Cloudを立ち上げる際の大まかな流れやポイントです。

これとは別にFileMaker ProやFileMaker Pro Advancedを利用してデータベースやカスタムAppの設計開発をすることが必要なのはいうまでもありません。ちなみにFileMaker Serverには、サーバー接続用のFileMaker Proが付いてます。