sudo mktexlsr すると別の ls-R を更新してしまう
texlive 2021 でスタイルファイルを追加したので更新しようと mktexlsr
を実行したところ, directory not writable.
と言われてしまいました.
そこで, sudo
をつけてやると, 私の環境では別の mktexlsr
が実行されてしまいます.
[user@localhost ~]$ mktexlsr
mktexlsr: /usr/local/texlive/2021/texmf-config: directory not writable. Skipping...
mktexlsr: /usr/local/texlive/2021/texmf-dist: directory not writable. Skipping...
mktexlsr: /usr/local/texlive/2021/texmf-var: directory not writable. Skipping...
mktexlsr: /usr/local/texlive/texmf-local: directory not writable. Skipping...
mktexlsr: Done.
[user@localhost ~]$ sudo mktexlsr
[sudo] password for user:
mktexlsr: Updating /usr/share/texlive/texmf-config/ls-R...
mktexlsr: Updating /usr/share/texlive/texmf-dist/ls-R...
mktexlsr: Updating /usr/share/texlive/texmf-local///ls-R...
mktexlsr: Updating /usr/share/texlive/texmf-var/ls-R...
mktexlsr: Done.
よく見ると, sudo mktexlsr
は /usr/local/texlive/2021/~ じゃなくて, /usr/share/texlive/~ の方の mktexlsr を実行しているやん、、、。
/usr/local/texlive/2021/~ 下の mktexlsr を実行する
/usr/local/texlive/2021/~
下の mktexlsr
を実行するには, 多分次のどちらかをします。
- 書き込み権限が無いと怒られたディレクトリ全部に書き込み権限を付与する
-
which mktexlsr
で実行ファイルの Path を取得して, sudo で実行.
今回は後者にしました.
[user@localhost ~]$ which mktexlsr
/usr/local/texlive/2021/bin/x86_64-linux/mktexlsr
[user@localhost ~]$ sudo /usr/local/texlive/2021/bin/x86_64-linux/mktexlsr
[sudo] password for user:
mktexlsr: Updating /usr/local/texlive/2021/texmf-config/ls-R...
mktexlsr: Updating /usr/local/texlive/2021/texmf-dist/ls-R...
mktexlsr: Updating /usr/local/texlive/2021/texmf-var/ls-R...
mktexlsr: Updating /usr/local/texlive/texmf-local/ls-R...
mktexlsr: Done.
無事, ls-R
の更新ができました.
そもそもなぜ texlive が2つあるの?
うーん、dnf でインストールしたからなのかな、、、。package 管理システムは使うなと有識者に怒られそう。。。
/usr/local/texlive/2021/~ # 一般ユーザで実行したときのやつ
/usr/share/texlive/~ # sudo で実行したときのやつ
教えて偉い人!
(追記)本当に偉い人に御教示いただきました。
/usr/share/texlive/~
は パッケージ管理システム (dnf) でインストールした方だったとのこと. 詳しくは:
https://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=3300