状況
dateコマンドを自作のコマンドに置き換えた(パスの優先度が上位の場所に date というシェルスクリプトを置いた)とし、その内容が以下であったとする。
#!/usr/bin/env bash set -euo pipefail if [[ "$(uname)" == "Darwin" ]]; then LC_TIME=ja_JP.UTF-8 /bin/date "+%Y年 %m月 %d日 %A %H:%M:%S %Z" fi exit 0
この状態で $ phpenv install X.Y.Z や $ rbenv install X.Y.Z を実行すると、この dateコマンド が原因でエラーになる。
結論(どうするか)
- dateコマンド がデフォルトの状態で phpenv や rbenv を実行すればいい
補足
- 現時点で macOS では dateコマンド に不具合がある(
ja_JP.UTF-8で/bin/dateを実行すると#午後と表示される)ため、dateコマンド を自分好みにカスタマイズして置いている人も多いかもしれないが、一時的にパスが通っている場所から外す - rbenv にてエラーログを流し読みするとライブラリ等が不足しているように見えるかもしれないが、精読すると dateコマンド の出力が半角スペースで切られていることが原因である*1ことが分かる
- macOS の
#午後問題は早く直してほしい*2
phpenv のエラーログの例
[Info]: Done head: /tmp/php-build.8.4.7.2025年: No such file or directory head: 05月: No such file or directory head: 15日: No such file or directory head: 木曜日: No such file or directory head: 09:18:00: No such file or directory head: JST.log: No such file or directory