inohilog

/var/log/inohiro.log

Raspberry Pi 4B に Plex media server を立てる(覚書)

普通に Raspberry Pi OS をセットアップして、ファームウェアを最新にしておく(と、USBブートも簡単)。この辺が詳しい

Raspberry Pi 4/400 EEPROM Firmware Update/Recovery Guide

あとは基本的に以下の記事の手順に従ってやるだけ

How to Setup a Raspberry Pi Plex Server - Pi My Life Up

外部 SSD/HDD をつないでいる時の fstab の設定もご丁寧に書いてある

Raspberry Pi Mount a USB Drive Tutorial - Pi My Life Up

Apple Silicon Mac で ruby のインストールにハマった

昨日 の続き。まあハマりそうだなと思っていたけど、ハマった。環境的には旧 Intel MacBook Pro から Migrate Assistant でコピったものなので、まっさらな状態より悪い。

最終的にやったことは

$ sudo rm -rf /Library/Developer/CommandLineTools
$ sudo xcode-select --install

してから、readline を Homebrew でインストールし直し、rbenv install 3.1.2 (最終的に、特別なビルドオプションは必要無かった)


今いるチームでは ruby 3.1.2 を使っていて、rbenv + ruby-build でインストールしようとしたが、以下のようなエラーで止まった(それっぽいところを一部抜粋)。完全なログはこちら

compiling readline.c
compiling ripper.c
linking shared-object date_core.bundle
compiling ossl_engine.c
linking shared-object rbconfig/sizeof.bundle
installing default libraries
readline.c:1903:37: error: use of undeclared identifier 'username_completion_function'; did you mean 'rl_username_completion_function'?
                                    rl_username_completion_function);
                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                    rl_username_completion_function
readline.c:79:42: note: expanded from macro 'rl_username_completion_function'
# define rl_username_completion_function username_completion_function
                                         ^
/opt/homebrew/opt/readline/include/readline/readline.h:485:14: note: 'rl_username_completion_function' declared here
extern char *rl_username_completion_function PARAMS((const char *, int));
             ^
1 error generated.
compiling init.c
make[2]: *** [readline.o] Error 1
make[1]: *** [ext/readline/all] Error 2

blog.furu07yu.com

上の記事にあるように、readline の場所を明示的に指定しても同じエラーで失敗した。

$ brew --prefix readline  
/opt/homebrew/opt/readline
$ RUBY_CONFIGURE_OPTS=--with-readline-dir="$(brew --prefix readline)" rbenv install 3.1.2

他にも Web で色々情報を漁って、いくつかのビルドオプションを試したが、混乱のもとになりそうなのでリンクはしない。 readline がおかしそうなのは間違いなさそうなので、brew で再インストールしてみようとしたら、Command Line Tools が古すぎるとメッセージが出た。

$ brew reinstall readline -s     
==> Downloading https://ftp.gnu.org/gnu/readline/readline-8.1-patches/readline81-001
######################################################################## 100.0%
==> Downloading https://ftp.gnu.org/gnu/readline/readline-8.1-patches/readline81-002
######################################################################## 100.0%
==> Downloading https://ftp.gnu.org/gnu/readline/readline-8.1.tar.gz
######################################################################## 100.0%
==> Reinstalling readline
Error: Your Command Line Tools are too outdated.
Update them from Software Update in System Preferences or run:
  softwareupdate --all --install --force

If that doesn't show you any updates, run:
  sudo rm -rf /Library/Developer/CommandLineTools
  sudo xcode-select --install

Alternatively, manually download them from:
  https://developer.apple.com/download/all/.
You should download the Command Line Tools for Xcode 13.4.

softwareupdate --all --install --force では何も出なかったので、その下で示されている方法でインストールし直した。そのあと readline をインストールし直し、rbev install 3.1.2 したところ無事インストールできた。

Apple Silicon(M1)Mac に移行した時のメモ

業務用 MacApple Silicon(M1)Mac になって、移行した時にやったことメモ。

  • 旧マシンは MacBook Pro 13-inch 2019, 2.8 GHz Quad-Core Intel Core i7), Memory 16GB
  • 新マシンは MacBook Pro 14-inch 2021, Apple M1 Pro, Memory 16GB
    • 10 Cores (10 performance and 2 efficiency cores)

ここ3年くらい個人で Mac は使っていなかったので、初 Apple Silicon Mac。ファイルコピーなど面倒だったので、(たぶん)初めて Migration Assistant.app を使った。Thunderbolt ケーブルでお互いをつなげて、それぞれ Migration Assistant を起動してぽちぽち。寝る前に仕掛けたので、どれくらい時間がかかったのかは不明。

マイグレーションの各種アプリケーションについて、いくつか例を示す。

そのまま動いた

  • Firefox
  • Chrome
  • Visual Studio Code
  • iTerm2
  • Atom
  • Bitwarden
  • Signal
  • 1Password
  • Todoist
  • Zoom
  • Alfred 4
  • ~/.rbenv 以下の ruby
    • これはなんでそのまま動くのか謎だが、気持ち悪いので必要なバージョンだけ入れ直した
    • (ここでの "動いた” というのは「ruby -v でバージョン情報が出た」)

動いたけど aarch64 版のインストールがおすすめされる

  • RubyMine

Rosetta2 が必要ですよと言われる

なんだったかちゃんと覚えてない(Spotify? Slack?)けど、クライアント再インストールすればそのまま動いた

動かない

  • Homebrew で入れたソフトウェア
    • login shell を /usr/local/bin/fish とかにしているともれなく iTerm2.app Terminal.app が即落ちするが、Terminal.app の Shell > New Command から /bin/zsh などを実行して、とりあえず chsh すれば良い
    • brew はインストールパスが /usr/local/bin から /opt/homebrew/bin に変わったそうなので、古いのは捨てて全部入れ直しが良さそう
    • PATH に /usr/local/bin を足している箇所がどこかわからなくて困ったが、とりあえず fish_add_path /opt/homebrew/bin しておけばそっちが使われるので今はいいかな(のちにハマりそう)
  • Google 日本語入力
    • x86 版しかないようなので Rosetta2 経由で動くようだが、あんまり入れたくないのでとりあえず標準IMEでやってみている
  • Spotify
  • Slack

AppStore経由で入れたソフトウェアなどはそのまま動きそうという感じがしていたけど、思ったよりそのまま動いて驚いた。 あとは会社の Profile など入れたらセキュリティ関連のソフトウェアの挙動も落ち着いている。