# apt-get update
# apt-get install rtmpdump libav-tools swftools ruby git
# gem install bundler
# adduser radioarc
# su - radioarc
$ git clone https://github.com/yayugu/net-radio-archive.git
$ cd net-radio-archive
$ git submodule update --init --recursive
ここまで実行したら次のようなエラーが出る。
$ git submodule update --init --recursive
Cloning into 'niconico'...
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Clone of 'git@github.com:yayugu/niconico.git' into submodule path 'niconico' failed
ニコ動は取らないのでとりあえず無視しておく。
$ bundle install --without development test agon
しまった。root権限を求められた。
# bundle install --without development test agon
rootで実行してみた。
Installing unf_ext 0.0.7.1 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/usr/bin/ruby2.1 extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h
extconf failed, exit code 1
Gem files will remain installed in /var/lib/gems/2.1.0/gems/unf_ext-0.0.7.1 for inspection.
Results logged to /var/lib/gems/2.1.0/extensions/x86_64-linux/2.1.0/unf_ext-0.0.7.1/gem_make.out
An error occurred while installing unf_ext (0.0.7.1), and Bundler cannot
continue.
Make sure that `gem install unf_ext -v '0.0.7.1'` succeeds before bundling.
何かが足りない。ruby-develって無いのかな。
Debian — Package Contents Search Results — ruby.hで調べてみた。
# apt-get install ruby-dev
ruby-devだった。
You have to install development tools first.
あー、build-essentialが入っていないか。
# apt-get install build-essential
これで、unf_ext 0.0.7.1 with native extensionsが入った。
のこぎりのインストールにしばらく時間がかかる。
Installing mysql2 0.3.17 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/usr/bin/ruby2.1 extconf.rb
checking for ruby/thread.h... yes
checking for rb_thread_call_without_gvl() in ruby/thread.h... yes
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... yes
checking for rb_hash_dup()... yes
checking for rb_intern3()... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lmygcc... no
checking for mysql_query() in -lmysqlclient... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
lmysqlclientが足りないか。
# apt-get install libmariadb2
こうかな。
まだ足りない。
# apt-get install libmariadbd-dev
違った…
# apt-get install mariadb-client
# apt-get install libmariadb-client-lgpl-dev
これも違う…
# gem install mysql2
# apt-get install libmysqld-dev
これだとうまく行った。
どうやらmysqlにしか対応していない?
$ cp config/database.example.yml config/database.yml
$ cp config/settings.example.yml config/settings.yml
$ vim.tiny config/database.yml
$ vim.tiny config/settings.yml
apt-get install mariadb-server
mariadbのrootパスワードの設定を求められるので、head -c 16 /dev/random | base64で生成した。
$ RAILS_ENV=production bundle exec rake db:create db:migrate
Could not find gem 'niconico (>= 0) ruby' in source at niconico.
Source does not contain any versions of 'niconico (>= 0) ruby'
orz
niconicoが無いとダメなのか…
困った。
SSH経由でサブモジュールを読み込むらしいが、これはSSH鍵による認証が必要だ。
SSH鍵を管理するのはなかなか面倒なんだよな。
16:56追記:
鍵を作ってgithubに登録した。
$ git submodule update --init --recursive
$ RAILS_ENV=production bundle exec rake db:create db:migrate
rake aborted!
ExecJS::RuntimeUnavailable: Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes.
うぇ。何かが足りない。
# apt-get install nodejs
jessie標準なので古そうだが動いて欲しい。
$ RAILS_ENV=production bundle exec rake db:create db:migrate
== 20150515174349 CreateJob: migrating ========================================
== 20150515174349 CreateJob: migrated (0.0141s) ===============================
== 20150515174821 CreateOnsenProgram: migrating ===============================
== 20150515174821 CreateOnsenProgram: migrated (0.0123s) ======================
== 20150515174949 CreateHibikiProgram: migrating ==============================
== 20150515174949 CreateHibikiProgram: migrated (0.0112s) =====================
== 20150521174524 CreateAnitamaProgram: migrating =============================
== 20150521174524 CreateAnitamaProgram: migrated (0.0113s) ====================
== 20150527135411 CreateNiconicoLivePrograms: migrating =======================
== 20150527135411 CreateNiconicoLivePrograms: migrated (0.0120s) ==============
== 20150602100911 NicoAddColumn: migrating ====================================
== 20150602100911 NicoAddColumn: migrated (0.0361s) ===========================
== 20150607130411 KeyValue: migrating =========================================
== 20150607130411 KeyValue: migrated (0.0115s) ================================
== 20151002075432 CreateAgonProgram: migrating ================================
== 20151002075432 CreateAgonProgram: migrated (0.0146s) =======================
うまく行ったっぽい。
$ bundle exec whenever --update-crontab
[write] crontab file updated
これでセットアップ完了か?
新幹線の無線LANの遅延がひどすぎて、作業がなかなか進まなかったが、なんとか完了したようだ。
アップデート
$ git pull origin master
$ git submodule update --init --recursive
$ bundle install --without development test agon
$ RAILS_ENV=production bundle exec rake db:migrate
$ bundle exec whenever --update-crontab