jessie-updates が消えたので、そろそろあげないと、と思って、まだ jessie のままだったサーバーを stretch にあげてみたら、少しハマりました。

環境

  • さくらの VPS
  • Debian GNU/Linux の jessie (oldstable) から stretch (stable) への更新

ハマったところ

runit

以前から nadokaさん の起動などに runit を使っていたのですが、 systemd に移行した関係で、 runit-systemd を入れないと runsvdir が動かなくなっていました。説明に「system-wide service supervision (systemd integration)」と書いてありました。

runit-sysv という名前で「system-wide service supervision (sysv integration)」という説明のパッケージもあるので、 sysvinit のままにする場合はこちらを入れる必要がありそうです。

tdiary

tdiary が http://on-o.com/~tkyn/diary/20161116.html と同じ現象ではまりました。

具体的には index.rb にアクセスすると、

500 Internal Server Error
uninitialized constant Bundler (NameError)

/usr/share/tdiary/lib/tdiary/environment.rb:25:in `<top (required)>'
/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/usr/share/tdiary/lib/tdiary.rb:25:in `<top (required)>'
/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/usr/share/tdiary/index.rb:18:in `<top (required)>'
/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
index.rb:2:in `<main>'

と出ていて、 sudo apt install bundler で入れてみても (たぶん require する場所を通らないので) 解決せず、参照したサイトに使っていないと書いてあったので、 sudoedit /usr/share/tdiary/lib/tdiary/environment.rb

tdiary_spec = false # Bundler.definition.specs.find {|spec| spec.name == 'tdiary'}

と変更したら表示されるようになりました。

jessie-updates の削除について

debian(jessie)のdocker imageでapt-getのエラー→要らないエントリを消しましょう からリンクされている サポート終了コンポーネントのアーカイブ削除に寄せて が参考になります。

古い環境の動作確認用などの特殊なもの以外は、そろそろ stretch に移行した方が良さそうということではないでしょうか。

Disqus Comments

Kazuhiro NISHIYAMA

Ruby のコミッターとかやってます。 フルスタックエンジニア(って何?)かもしれません。 About znzに主なアカウントをまとめました。

znz znz


Published