Mastodon v1.4.2 で bundle install すると怒られる問題と対処法

問題

古いバージョンのまま放置していた Mastodon インスタンスをアップデートしていた過程で, v1.4.2 を checkout して bundle install を行ったところ, cld3 でコケて

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Failed to locate protobuf
*** 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.

Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/home/utodon/.rbenv/versions/2.4.1/bin/$(RUBY_BASE_NAME)
--with-protobuf-config
--without-protobuf-config
--with-pkg-config
--without-pkg-config

などと怒られました。

protobuf が入っていないとのことなので libprotobuf-dev などを入れてみましたが,改善せずすこし詰まりました。

対処

Ruby 2.4.1 の mkmf の Bug #15069 により,ビルド環境のチェックでこけているようでした。 Ruby 2.4.5 には Rev 65109 で backport が入っているようなので,

1
2
3
4
5
6
7
diff --git a/.ruby-version b/.ruby-version
index 005119baa..59aa62c1f 100644
--- a/.ruby-version
+++ b/.ruby-version
@@ -1 +1 @@
-2.4.1
+2.4.5

として再度 bundle install したところ動きました。


YubiKeyでgitを利用する

YubiKeyというUSBポートなどに刺さるセキュリティキーがあり、FIDO U2FトークンやPIVカードとして利用できます。

今回はYubiKeyのPIV機能を使い、gitで公開鍵認証を行います。
事前にbrew install openscなどが必要です。

1
% git config --local core.sshcommand "ssh -I /usr/local/Cellar/opensc/0.19.0_1/lib/opensc-pkcs11.so"

YubiKey挿入時

1
2
3
4
5
% git pull
Enter PIN for 'gott':
remote: Counting objects: 1, done.
remote: Total 1 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (1/1), done.

YubiKey非挿入時

1
2
3
% git pull
git@bitbucket.org: Permission denied (publickey).
fatal: Could not read from remote repository.

Ubuntuのブートエントリが消え去ったときの対処

はじめに

ASUS ROG STRIX Z270Fを使っています。原因不明ですが,時々Ubuntuのブートエントリが消え去ります。久々に再発して,対処に苦労したのでメモ。

起こっていること

https://blog.tiqwab.com/2018/07/29/uefi-boot.html

4.を見る限り,nvramに書き込めばいいらしい。

初めはEFI Shellを使おうとしていましたが,見つけたバイナリを書き込んでも起動しないし,他にバイナリが見つからないし……

対処

UbuntuのLive USBでも持ってきてgrub-installか何かをすればよしなにやってくれる気がしましたが,isoをダウンロードしてくるのが嫌だったので,手元にあったWindowsの回復ドライブを使ってみることにしました。

起動して,トラブルシューティング->コマンドプロンプト と進めます。

1
2
3
4
5
6
7
diskpart
list disk
select disk X
list volume
select volume Y
assign letter=b:
exit

とやって,EFIパーティションをb:にマウントして,grubx64.efiを探しておきます。

https://askubuntu.com/questions/744697/i-need-to-see-the-bcdedit-for-a-windows10-ubuntu-install-both-by-wubi-and-by-sep

これが本質情報なので,

1
2
3
4
bcdedit /enum firmware
bcdedit /copy {bootmgr} /d "Ubuntu"
bcdedit /set {(guid)} path \EFI\ubuntu\grubx64.efi
bcdedit /set {fwbootmgr} displayorder {(guid)} /addfirst

という雰囲気でやるとできます。

まとめ

たまにはWindowsが役に立つこともある