作曲・浄書・指導・音響

金沢音楽制作

金沢音楽制作では、楽曲・楽譜の制作と、作曲や写譜などレッスンを行っています。

lstat(./texlua) failed: と表示される

ptex2pdfを実行すると、次のようなエラーが表示される。

$ ptex2pdf
lstat(./texlua) failed: ./texlua: No such file or directory
kpathsea: Can't get directory of program name: ./texlua

このエラーの興味深いところは、フルパスを入力しても実行されないが、パス先に移動すると実行される点だ。とはいえ、そんなことやってられない。

環境:macOS Big Sur、Bash 5.1.16、TeX Live 2021(mactex-no-gui)

原因と修正

原因は、無関係な環境変数の記述ミス。非常に情けないが、.bash_profileに記述したパスに問題があった。

export PATH="/usr/local/opt/openssl@1.1/bin:{$PATH}"

ブレース(波括弧)の位置がおかしいのが分かる。正しくは、次のとおり。

export PATH="/usr/local/opt/openssl@1.1/bin:${PATH}"

修正し再ログインすると、ptex2pdfが正しく動作する。

$ ptex2pdf
[texlua] ptex2pdf[.lua] { option | basename[.tex] } ...
options: -v     version
         -h     help
         -help  print full help (installation, TeXworks setup)
         -e     use eptex class of programs
         -u     use uptex class of programs
         -l     use latex based formats
         -ld    use latex-dev based formats
         -s     stop at dvi
         -i     retain intermediate files
         -ot '<opts>'   extra options for TeX
         -od '<opts>'   extra options for dvipdfmx
         -output-directory '<dir>'   directory for created files

しかし、なぜこのミスでTeX Liveだけが動かなったのかよく分からない(他にも影響があった可能性はある)。なお、Tex Liveの環境変数は、/etc/paths.d/TeXに記述されている。これは、/etc/profilepath_helperというコマンドで読み込まれる。

$ cat /etc/profile
if [ -x /usr/libexec/path_helper ]; then
	eval `/usr/libexec/path_helper -s`
fi

if [ "${BASH-no}" != "no" ]; then
	[ -r /etc/bashrc ] && . /etc/bashrc
fi

更新情報

  • 公開日:2021-01-10