2022/10/27(木) [n年前の日記]
#1 [lua] Windows版のluarocksについて調べてる
プログラミング言語のLua言語には、インターネット経由でライブラリをインストールできる luarocks というツールがある。その luarocks を Windows上でインストールする方法がちょっとよく分からなくなってきたので調べているところ。
環境はWindows10 x64 21H2。
以前は、hererocks (HereRocks)というツールを使うことで、Windows上でも Lua + luarocks をビルドして、簡単にインストールできていたっぽい…。
_mieki256's diary - luarocksをWindows10上で使おうとしてハマった
hererocks は、Python上で動作するツール。他に、git と gcc (MinGW)が必要になる。
とりあえず、以下の環境で hererocks が使えることは確認できた。
hererocks のインストールの仕方や使い方は、以下を参考に。
_luarocks/hererocks: Python script for installing Lua/LuaJIT and LuaRocks into a local directory
_Windows環境にluarocksをインストールするにはhererocksが便利 | Birth, Gaming, Gaming, Death
_HereRocksなるものがあるらしい - Qiita
ただ、ビルドした luarocks を使って、Luaのスクリプトソースの整合性をチェックする luacheck をインストールしてみたものの、MinGW を有効にしてある状態じゃないと luacheck が動作しない…。
lfs.dll とやらが見つからないか、もしくは見つかっても動作しないようだなと。
MinGW が有効なら動作する。
環境はWindows10 x64 21H2。
以前は、hererocks (HereRocks)というツールを使うことで、Windows上でも Lua + luarocks をビルドして、簡単にインストールできていたっぽい…。
_mieki256's diary - luarocksをWindows10上で使おうとしてハマった
hererocks は、Python上で動作するツール。他に、git と gcc (MinGW)が必要になる。
> python -VV Python 3.9.13 (tags/v3.9.13:6de2ca5, May 17 2022, 16:36:42) [MSC v.1929 64 bit (AMD64)] > git --version git version 2.30.2.windows.1 > gcc --version gcc (MinGW.org GCC Build-2) 9.2.0
とりあえず、以下の環境で hererocks が使えることは確認できた。
- Python 3.9.13 64bit
- git 2.30.2
- gcc 9.2.0 (MinGW + msys)
hererocks のインストールの仕方や使い方は、以下を参考に。
_luarocks/hererocks: Python script for installing Lua/LuaJIT and LuaRocks into a local directory
_Windows環境にluarocksをインストールするにはhererocksが便利 | Birth, Gaming, Gaming, Death
_HereRocksなるものがあるらしい - Qiita
ただ、ビルドした luarocks を使って、Luaのスクリプトソースの整合性をチェックする luacheck をインストールしてみたものの、MinGW を有効にしてある状態じゃないと luacheck が動作しない…。
> luacheck hello.lua C:\tools\lua_alt\lua51\bin\lua.exe: error loading module 'lfs' from file 'c:\tools\lua_alt\lua51\/lib/lua/5.1/lfs.dll': 指定されたモジュールが見つかりません。 stack traceback: [C]: ? [C]: in function 'require' ...:\tools\lua_alt\lua51\/share/lua/5.1/luacheck\fs.lua:3: in main chunk [C]: in function 'require' ...ools\lua_alt\lua51\/share/lua/5.1/luacheck\cache.lua:1: in main chunk [C]: in function 'require' ...tools\lua_alt\lua51\/share/lua/5.1/luacheck\main.lua:2: in main chunk [C]: in function 'require' ...lib\luarocks\rocks-5.1\luacheck\1.0.0-1\bin\luacheck:2: in main chunk [C]: ?
lfs.dll とやらが見つからないか、もしくは見つかっても動作しないようだなと。
MinGW が有効なら動作する。
> mingw MinGW enable. Add path [D:\MinGW\bin;D:\MinGW\\msys\1.0\bin] > luacheck hello.lua Checking hello.lua OK Total: 0 warnings / 0 errors in 1 file
◎ 2022/10/28追記。 :
lfs.dll を、Dependencies x64 1.11.1.0 に読み込んで調べてみたところ、libgcc_s_dw2-1.dll が見つからなくて動かなかった模様。
_lucasg/Dependencies: A rewrite of the old legacy software "depends.exe" in C# for Windows devs to troubleshoot dll load dependencies issues.
この Dependencies というツールを使えば、.exe や .dll が要求するファイルを確認することができる。
lfs.dll と libgcc_s_dw2-1.dll を、lua.exe が置いてあるディレクトリにコピーしたところ、MinGW を有効にしてない状態でも luacheck が動くようになった。
ちなみに、それぞれ、以下のディレクトリに入ってた。
_lucasg/Dependencies: A rewrite of the old legacy software "depends.exe" in C# for Windows devs to troubleshoot dll load dependencies issues.
この Dependencies というツールを使えば、.exe や .dll が要求するファイルを確認することができる。
lfs.dll と libgcc_s_dw2-1.dll を、lua.exe が置いてあるディレクトリにコピーしたところ、MinGW を有効にしてない状態でも luacheck が動くようになった。
ちなみに、それぞれ、以下のディレクトリに入ってた。
- Lua51インストールディレクトリ\lib\lua\5.1\lfs.dll
- MinGWインストールディレクトリ\bin\libgcc_s_dw2-1.dll
[ ツッコむ ]
以上です。