M1 Mac で Ruby 3.2.0 をインストールした際に libyaml でちょっとハマった
Ruby 3.2 から libyaml や libffi などのソースコードがバンドルされなくなった*1らしく、その影響で次のようなエラーが出た。どうやら libyaml が見つからないらしい。
$ rbenv install --verbose 3.2.0 (snip) yaml.h not found (snip) psych: Could not be configured. It will not be installed. Check ext/psych/mkmf.log for more details. *** Fix the problems, then remove these directories and try again if you want. Generating RDoc documentation /private/var/folders/jr/yc04bj413qscqvvgr4b31j7w0000gn/T/ruby-build.20230106185644.21896.yeUJhx/ruby-3.2.0/lib/yaml.rb:3: warning: It seems your ruby installation is missing psych (for YAML output). To eliminate this warning, please install libyaml and reinstall your ruby. uh-oh! RDoc had a problem: cannot load such file -- psych (snip)
結論から言えば、次のようにしたら通った。
$ brew install libyaml $ brew link libyaml $ export LDFLAGS="-L/opt/homebrew/lib $LDFLAGS" $ export CFLAGS="-I/opt/homebrew/include $CFLAGS" $ rbenv install 3.2.0
以下、雑多なメモ。
背景としては二つの要因があって、
- 僕の環境では ruby-build 向けに
RUBY_CONFIGURE_OPTS="--with-yaml-dir=$(brew --prefix libyaml)"
みたいに設定してあって、 libyaml のパスが ruby の./configure
に渡されるようにしてあった。しかし、いつからかこの configure オプション自体が消えたため、 libyaml のパスが渡されなくなっていた - Intel Mac 時代の homebrew は brew link すれば /usr/local/lib や /usr/local/include にライブラリをリンクしてくれていたので、^のオプションがなかったとしてもコンパイラのデフォルト設定で見つかっていた。しかし、 M1 Mac からは brew link しても /opt/homebrew/lib や /opt/homebrew/include にリンクされるだけで /usr/local 配下には入らないので、コンパイラが見つけることができなくなった
- なので、 LDFLAGS や CLAGS を使って libyaml などのライブラリがある場所を指定する必要が出てきた
ということなんだと思う。低レイヤについては詳しくないので間違っているかもしれない。
ついでに、 ruby 3.2.0 の configure オプションの一覧もメモしておく。
$ ./configure --help `configure' configures this package to adapt to many kinds of systems. Usage: ./configure [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print `checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for `--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or `..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [/usr/local] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, `make install' will install all the files in `/usr/local/bin', `/usr/local/lib' etc. You can specify an installation prefix other than `/usr/local' using `--prefix', for instance `--prefix=$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] --target=TARGET configure for building compilers for TARGET [HOST] Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-load-relative resolve load paths at run time --enable-rpath embed run path into extension libraries. enabled by default on ELF platforms --enable-devel enable development build --disable-werror don't make warnings into errors even if a compiler support -Werror feature [[disabled by default unless development version]] --disable-fortify-source disable -D_FORTIFY_SOURCE=2 option, which causes link error on mingw --disable-largefile omit support for large files --enable-mathn enable canonicalization for mathn --enable-setreuid use setreuid()/setregid() according to need even if obsolete --enable-multiarch enable multiarch compatible directories --enable-shared build a shared library for Ruby --disable-pie disable PIE feature --enable-dtrace enable DTrace for tracing inside ruby. enabled by default on systems having dtrace --enable-gcov enable coverage measurement by gcov --disable-install-doc do not install either rdoc indexes or C API documents during install --disable-install-rdoc do not install rdoc indexes during install --disable-install-capi do not install C API documents during install --disable-jit-support disable JIT features --enable-yjit enable in-process JIT compiler that requires Rust build tools. enabled by default on supported platforms if rustc 1.58.0+ is available --disable-install-static-library do not install static ruby library --disable-dln disable dynamic link feature --enable-debug-env enable RUBY_DEBUG environment variable --enable-mkmf-verbose enable verbose in mkmf --disable-rubygems disable rubygems by default Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-baseruby=RUBY use RUBY as baseruby; RUBY is the pathname of ruby --without-git never use git --without-gcc never use gcc --with-os-version-style=TYPE OS version number for target and target_os [[full]] (full|teeny|minor+0|minor|major+0|major|none) --with-arch=ARCHS build an Apple/NeXT Multi Architecture Binary (MAB); ARCHS is a comma-delimited list of architectures for which to build; if this option is disabled or omitted entirely, then the package will be built only for the target platform --with-compress-debug-sections=type enable debug section compression --with-gmp-dir=DIR specify the prefix directory where gmp is installed --without-gmp disable GNU GMP to accelerate Bignum operations --with-opt-dir=DIR-LIST add optional headers and libraries directories separated by $PATH_SEPARATOR --with-winnt-ver=0xXXXX target Windows NT version (default to 0x0600) --with-thread=IMPLEMENTATION specify the thread implementation to use --with-jemalloc use jemalloc allocator --with-coroutine=IMPLEMENTATION specify the coroutine implementation to use --with-dln-a-out dln_a_out is deprecated --without-mjit-tabs expand tabs in mjit header --with-static-linked-ext link external modules statically --without-valgrind disable valgrind memcheck support --with-ext=EXTS pass to --with-ext option of extmk.rb --with-out-ext=EXTS pass to --without-ext option of extmk.rb --with-setup=SETUP use extension libraries setup --with-rubylibprefix=DIR prefix for ruby libraries [[LIBDIR/RUBY_BASE_NAME]] --with-soname=SONAME base name of shared library --with-setjmp-type select setjmp type --with-rdoc=ri,html comma/space separated list of RDoc formats to install --with-rubyarchprefix=DIR prefix for architecture dependent ruby libraries [[RUBYLIBPREFIX/ARCH]] --with-rubysitearchprefix=DIR prefix for architecture dependent site libraries [[RUBYLIBPREFIX/SITEARCH]] --with-ridir=DIR ri documentation [[DATAROOTDIR/ri]] --with-ruby-version=STR ruby version string for version specific directories [[full]] (full|minor|STR) --with-sitedir=DIR site libraries in DIR [[RUBY_LIB_PREFIX/site_ruby]], "no" to disable site directory --with-sitearchdir=DIR architecture dependent site libraries in DIR [[SITEDIR/SITEARCH]], "no" to disable site directory --with-vendordir=DIR vendor libraries in DIR [[RUBY_LIB_PREFIX/vendor_ruby]], "no" to disable vendor directory --with-vendorarchdir=DIR architecture dependent vendor libraries in DIR [[VENDORDIR/SITEARCH]], "no" to disable vendor directory --with-search-path=DIR specify the additional search path --with-rubyhdrdir=DIR core headers in DIR [[INCLUDEDIR/RUBY_BASE_NAME-RUBY_VERSION]] --with-rubyarchhdrdir=DIR architecture dependent core headers in DIR [[$(rubyhdrdir)/$(arch)]] --with-sitehdrdir=DIR core site headers in DIR [[RUBYHDRDIR/site_ruby]] --with-sitearchhdrdir=DIR architecture dependent core site headers in DIR [[RUBYHDRDIR/site_ruby]] --with-vendorhdrdir=DIR core vendor headers in DIR [[RUBYHDRDIR/vendor_ruby]] --with-vendorarchhdrdir=DIR architecture dependent core vendor headers in DIR [[RUBYHDRDIR/vendor_ruby]] --with-mantype=TYPE specify man page type; TYPE is one of man and doc --with-ruby-pc=FILENAME pc file basename --with-destdir=DESTDIR specify default directory to install Some influential environment variables: cflags additional CFLAGS (ignored when CFLAGS is given) cppflags additional CPPFLAGS (ignored when CPPFLAGS is given) cxxflags additional CXXFLAGS (ignored when CXXFLAGS is given) AR Archiver command AS Assembler command CC C compiler command CXX C++ compiler command LD Linker command NM Symbol list command OBJCOPY Objcopy command OBJDUMP Objdump command RANLIB Ranlib command STRIP Strip command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a nonstandard directory <lib dir> LIBS libraries to pass to the linker, e.g. -l<library> CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if you have headers in a nonstandard directory <include dir> CXXFLAGS C++ compiler flags CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider.
*1:https://www.ruby-lang.org/en/news/2022/12/25/ruby-3-2-0-released/ の "No longer bundle 3rd party sources" を参照
Homecomings “Garden With A Holy Light“ at 渋谷 Spotify O-EAST
行ってきた。この時期のワンマンは3年連続参加かな?……過去ログを見返したら合っていた。
月末まで配信も観られるようだから、また観ようかな。便利な世の中だ。 https://homecomings.jp/news/1159/
来年も参加できるといいな。
MONOEYES “Between the Black and Gray Tour 2021” at 日本武道館
去年の配信で来年やるぞって言って、本当にやるんだからすごい。開催できてよかった。
セットリスト https://lnk.to/BtBaGT2021
サイダーのように言葉が湧き上がる
上映前の CM で見るたびに気になっていたけど、今日やっと見ることができた。そのために頑張って7時に起きた。
良かった。夏のアニメってこうだよね、というのが前面に出ていた。 あの年頃の見た目に対するコンプレックスの大きさが懐かしかった。
エンディングで鳴り始める never young beach の同名曲も心地よく、上映後しばらく耳から離れなかった。
竜とそばかすの姫
見た。
美術がとても綺麗だった。 また、主人公のすずが学校の帰り道に川縁でゆっくりと歌うときの深い歌声には特に心惹かれた。何度でも聴き返したいぐらい。
でも中盤〜終盤あたりから見るのが面倒になってしまった。色々な話が出てきたけど、出てきただけで大して重要な話に思えず、疲れてしまった。
加えて最後、すずが東京まで出てやっとのことで恵たちを見つけたのに、その後それ以上の関わりを持っていくことを匂わせるような描写が一切無く、スッと地元に帰ってきて友達や大人と笑ってるのを見て、 あれ、何もせずに帰ってきた?なんでこの人たち楽しそうに笑ってるんだ? 家庭内暴力に遭っている子供に「僕も闘う」と言わせて、それで終わってはダメでは?と言う疑問がグルグルと残った。
もしかしたら家庭内暴力をどう解決していくかというのは物語上不要な話で(実際難しく時間のかかる問題なのだと思う)、彼女がネット上で正体を表してそれでも歌うという筋道を作るために必要な仕掛けだったのかもしれないけど、とかいろいろ内情を想像しまうけど、でもなんかな。それでいいのかな。流石にそんな扱いではないよなあ。
もしかしたらどうすべきかをあえて明示せず視聴者に考えさせることを狙ったのかも?いや仮にそうだとしても、子供を虐待に立ち向かわせてヨシとするのはダメだよなあ。 それに物語としても「助けると口では言うけど実際には何もしてくれない人たち」と同じに見えてしまっているし。 (万が一にでもないと思うけど、すずの眼力に怯んで父親は腰を抜かして去っていったけど、あれで解決じゃないよね?)
無限に燻ることができる。
という感じで、細かく惹かれるポイントはあったんだけど、それ以外にもあるいくつかの事柄を含めると最終的には釈然としない、その外面の良さとは別の部分で(だからこそ?)「良い」と思うことができない作品だった。
別作品だけど、ルックバックで色々な議論が沸き起こっているのももしかしたらこう言うことなのかもしれない。
ゴジラvsコング
見た。
ゴジラのボテっとした感じが実家猫に似ているなあと思いながら見ていた。 ゴジラが「今日のところはこの辺にしといてやるか」という雰囲気で帰っていくのを見て、怪獣でもそういう判断することがあるんだなと面白かった。
ゴジラが日本版ゴジラっぽい風体だったので、ハリウッド版でもこうしてもらえることがあるのかと新鮮だった。 日本版だと放射線をそんなに吐かないイメージだったけど、こっちではちょこちょこ吐いていて、日常的に使える能力のようだった。
女子高生役のあの子がストレンジャーシングスのエルも演じてる役者だった。
こうして書き出してみるとコングの印象がそんなにな買ったようだ。まあ前作や、名作キングコングも見ていないし、そんなに馴染みもないのでやむをえない。
シン・エヴァンゲリオン劇場版 :||
見た。
毒気を根こそぎ抜かれるかのような、これ以上ないほど晴れ渡るような終わり方だった。 この問題はシンジくん側の人間にだけでなく、ゲンドウについても寄り添わないと解決しないということに本作を見て初めて気づいたし、そこを深掘りして整えてくれた。踏み込むべきはそこだったんだ。 世界観についての謎は最終作にも関わらずさらに増えたけど、でも物語としてはこれでちゃんとケリがついたように思う。
序、破、Qは劇場では見ていなかった。ちょうどアニメから離れていた頃だったんだと思う。 ただ、2013年の東京Ruby会議10の追加開催のサブタイトルに本作をもじった「シン・東京Ruby会議10 劇場版 ||=」をつけていたことを考えると、そこからだけでも8年経っていたわけで、長い。 新劇場版の制作がガイナックスではなくカラーになった話も考えると、お疲れ様でした、というほかない。