毎月偶数月の第二土曜に散髪にすることにしているので日本橋高島屋の THE BARBER へ。いつもは疲れ切っていて頭がぼーっとした状態で半分寝ながら髪を切ってもらう、という状態だったんだけど、今日は朝から GitHub Actions を研究していて、散髪している最中もシナリオを考えているうちに終わってしまった。
いつも、予約は前の週にしていたんだけど、今回から店舗で直接二ヶ月後の予約までやってしまった。便利。
面倒を見ている Debian Jessie のサーバーで ruby2.1 ではなくて ruby2.3 を使いたいという人がいたので stretch のパッケージを引っ張ってきて使えるようにした。
まず、sources.list
に stretch の apt-line を追加。
deb http://cloudfront.debian.net/debian jessie main
deb http://security.debian.org/ jessie/updates main
deb http://cloudfront.debian.net/debian stretch main
deb http://security.debian.org/ stretch/updates main
このままだと stretch のパッケージが降ってきて死んでしまうので apt priority でインストールはしないようにする。以下のファイルを /etc/apt/preferences.d/stretch
などで作成。
Package: *
Pin: release n=stretch
Pin-Priority: 1
最後に apt に -t stretch
をつけて ruby2.3 をインストールする。
$ apt install ruby2.3 -t stretch
この状態だと /usr/bin/ruby
が ruby2.1 のままで面白くないので update-altanatives
を使って切り替え可能にする。
$ sudo update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby2.1 0 --slave /usr/bin/gem gem /usr/bin/gem2.1
update-alternatives: using /usr/bin/ruby2.1 to provide /usr/bin/ruby (ruby) in auto mode
$ sudo update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby2.3 1 --slave /usr/bin/gem gem /usr/bin/gem2.3
update-alternatives: using /usr/bin/ruby2.3 to provide /usr/bin/ruby (ruby) in auto mode
$ sudo update-alternatives --display ruby
ruby - auto mode
link currently points to /usr/bin/ruby2.3
/usr/bin/ruby2.1 - priority 0
slave gem: /usr/bin/gem2.1
/usr/bin/ruby2.3 - priority 1
slave gem: /usr/bin/gem2.3
Current 'best' version is '/usr/bin/ruby2.3'.
$ ruby -v
ruby 2.3.3p222 (2016-11-21) [x86_64-linux-gnu]
libc なども巻き添えでバージョンアップしてしまって「うーむ」て結果にはなったけど、とりあえず提供できている機能は死んでないようなのでこんな感じで。死んだら頑張ろう。