Ubuntu 16.10にlua5.2
パッケージをインストールすると:
Sudo apt-get install lua5.2
/usr/bin/lua
を/etc/alternatives/lua-interpreter
へのシンボリックリンクとしてインストールします。このシンボリックリンクは、 `/ usr/bin/lua5.2へのシンボリックリンクです。
lua-5.3
パッケージをインストールしても、シンボリックリンクは作成されません。 /usr/bin/lua5.3
のみを取得します。
パッケージが所有するファイルをリストするdkg -L lua5.X
の出力は、lua5.2
パッケージとlua5.3
パッケージで同じです(一部のファイルのバージョン番号を除く)。
私がやりたいのは、現在5.3であるLuaの最新かつ最高のバージョンをインストールし、スクリプトで#!/usr/bin/lua
を使用できるようにすることです。
手動でシンボリックリンクを作成するか、update-alternatives
コマンドを使用してこの問題を回避できることを知っています(まだわかりませんが、それは私が尋ねていることではありません)。
私の質問は、なぜlua5.3
パッケージnotをインストールするときに/usr/bin/lua
シンボリックリンクを設定し、lua5.2
パッケージはそうするのですか?これは意図的なもので、おそらくUbuntuのポリシーですか、それともパッケージを作成した人々による単なる監視ですか?
パッケージメンテナがalternatives
インフラストラクチャを提供しなかったためです。残念ながら、それを回避する方法はありませんが、手動で設定するか、単なるシンボリックリンク/usr/bin/lua
から/usr/bin/lua5.3
に設定するだけです。
バグレポートを提出しました: https://bugs.launchpad.net/ubuntu/+source/lua5.3/+bug/1707212
これは18.04 Bionicではまだ問題です。回避策:
Sudo update-alternatives --install /usr/bin/lua lua-interpreter \
/usr/bin/lua5.3 130 --slave /usr/share/man/man1/lua.1.gz \
lua-manual /usr/share/man/man1/lua5.3.1.gz
Sudo update-alternatives --install /usr/bin/luac lua-compiler \
/usr/bin/luac5.3 130 --slave /usr/share/man/man1/luac.1.gz \
lua-compiler-manual /usr/share/man/man1/luac5.3.1.gz