GNU socialをnightlyにしてみる

GNU socialは以前はloadaverage.orgにアカウントを持っていたのですが，現在は自分用に自宅PCで動かしています．同じOStatusのMastodonは開発が活発ですが，GNU socialはそれに比べると大分静かです．新しい機能も試してみたいしnightlyに上げてみました．

実際試してみるといつものUPGRADEと同じ手順でトラブルもなくnightlyにできました．

動いている GNU social をバックアップする

導入ディレクトリ以下(ここでは /var/www/gnusocial.matoken.org )とdbをバックアップしておく．
デイリーでバックアップしているので今回はそれを手動で回してtar ballにしておいた．

$ sudo -u www-data rsync -avv /var/www/gnusocial.matoken.org
ionice -c2 -n7 nice -n19 rsync --stats -av --delete --link-dest=/export/backup/micro/gs/www/`/bin/date -d '1 day ago' +%Y%m%d`/ /var/www/gnusocial.matoken.org /export/backup/micro/gs/www/`/bin/date +\%Y\%m\%d`/
$ sudo -u www-data tar cvf - /export/backup/micro/gs/www/`/bin/date +\%Y\%m\%d`/ > /export/backup/micro/gs/www/`/bin/date +\%Y\%m\%d`-master2nightly.tar.xz
$ umask 0266 && /usr/bin/mysqldump --defaults-file=/export/backup/micro/gs/db/.my-backup.cnf --opt --all-databases --events | /usr/bin/xz -9 > /export/backup/micro/gs/db/`date +\%Y-\%M-\%d_\%H:\%m:\%S_\%s_$$`-master2nightly.sql.xz

nightlyを導入する

前もってgit loneしてあったところに移動．cloneしてなかったらする．

$ git clone https://git.gnu.io/gnu/gnu-social.git
$ cd gnu-social

git pullしてnightlyをcheckoutする．

$ git pull
$ git checkout nightly

nightlyをcpする．sudo -u www-data は httpd がそのユーザーで動いていてファイルもその権限になっているので合わせている．

$ sudo -u www-data rsync -av --exclude={.git,.gitignore,.htaccess,config.php,file,avatar} ./ /var/www/gnusocial.matoken.org/

upgrade

ここでは GNU social の scripts/startdaemons.sh をmonit で監視しているので一時的に停止しておく．monitやそれに類するものを動かしてなければ無視して次へ．

$ sudo service monit stop

UPGRADE ファイルに書かれているとおり，デーモンを停止して，アップグレードスクリプトの実行を行い，デーモンを再開する．

$ cd /var/www/gnusocial.matoken.org/
$ sudo -u www-data bash scripts/stopdaemons.sh
$ sudo -u www-data php scripts/upgrade.php
$ sudo -u www-data bash scripts/startdaemons.sh

これで動作確認がとれたらOK
monitも再開しておく．

$ sudo service monit start

GNU socialのフッターのバーションはこうなった．

It runs on GNU social, version 1.2.0-beta5

matoken social