we can remove the folder `lua` when do install. and we can keep the folder `lua` in the source.
On Fri, Mar 6, 2020 at 2:58 PM Ming Wen <[email protected]> wrote: > Hi, yuansheng: > I start a ubuntu VM in EC2, fully simulated this bug, and I finally > understand what you mean. > > Let me briefly summarize so that others can better understand the problem: > > 1. luarocks has its own default search path. This path is related to the > version of Lua on the machine. > For example, when lua 5.3 is used, then `/usr/share/lua/5.3/` will be the > default search path of luarocks. > > 2. The APISIX code path has one more layer of `lua`, which is `lua/apisix`. > > So if we wan to be automatically searched by luarocks: > `/usr/share/lua/5.3/apisix/init.lua` when `require "apisix.init"`, > we must keep the code layer is `apisix/*.lua`, not the `lua/apisix/*.lua`. > > Thanks, > Ming Wen, Apache APISIX > Twitter: _WenMing > > > Ming Wen <[email protected]> 于2020年3月6日周五 下午1:59写道: > > > ok, I see, this PR is WIP > > > > Thanks, > > Ming Wen, Apache APISIX > > Twitter: _WenMing > > > > > > YuanSheng Wang <[email protected]> 于2020年3月6日周五 下午1:01写道: > > > >> On Fri, Mar 6, 2020 at 12:30 PM Ming Wen <[email protected]> wrote: > >> > > >> > > I think this PR should have resolved this issue. > >> > The luarocks install APISIX to `/usr/share/lua/5.3/****`, which is not > >> in > >> > your search paths. > >> > >> My goal is to run APISIX without any hard-coded path, that is why I > >> removed the `lua` folder. > >> > >> > > >> > > All hard-coded paths are likely to be wrong. > >> > but now hard-coded `Lua 5.1` in your PR. > >> > >> I have deleted `/usr/share/lua/5.1 / ?. lua` and we will delete more > >> hard-coded paths later. > >> > >> > > >> > Thanks, > >> > Ming Wen, Apache APISIX > >> > Twitter: _WenMing > >> > > >> > > >> > YuanSheng Wang <[email protected]> 于2020年3月6日周五 下午12:00写道: > >> > > >> > > On Fri, Mar 6, 2020 at 11:41 AM Ming Wen <[email protected]> > wrote: > >> > > > > >> > > > back to your first email: > >> > > > > I found that the luarocks will install the APISIX to > >> > > > `/usr/share/lua/5.3/****`. > >> > > > > >> > > > the new search path[1] can not reslove this issue, right? > >> > > > >> > > I think this PR should have resolved this issue. > >> > > > >> > > At present we all use Lua 5.1 in CI, so we can't see the bug using > >> Lua 5.3. > >> > > We can run test cases in Luarocks 3 + Lua 5.2 or 5.3. > >> > > > >> > > All hard-coded paths are likely to be wrong. We should use search > >> > > paths provided by standard Lua whenever possible. > >> > > > >> > > > >> > > > > >> > > > [1] > >> > > > > >> > > > >> > https://github.com/apache/incubator-apisix/pull/1157/files#diff-400bb4a8f273a5c5afddae64632f0a8b > >> > > > > >> > > > Thanks, > >> > > > Ming Wen, Apache APISIX > >> > > > Twitter: _WenMing > >> > > > > >> > > > > >> > > > YuanSheng Wang <[email protected]> 于2020年3月6日周五 上午11:36写道: > >> > > > > >> > > > > On Fri, Mar 6, 2020 at 11:32 AM Ming Wen <[email protected]> > >> wrote: > >> > > > > > > >> > > > > > > So we can see a lot of hard-coded paths, such as: > >> > > > > > `/usr/share/lua/5.1/apisix/lua / ?. lua`. > >> > > > > > > If we remove the `lua` directory, then the hack path above > is > >> no > >> > > longer > >> > > > > > needed. > >> > > > > > > >> > > > > > So after this PR, the global Lua's search paths are? > >> > > > > > >> > > > > Here [1] is the new Lua search path for test case. > >> > > > > > >> > > > > I'll update the `bin/apisix` later. > >> > > > > > >> > > > > [1] > >> > > > > > >> > > > >> > https://github.com/apache/incubator-apisix/pull/1157/files#diff-400bb4a8f273a5c5afddae64632f0a8b > >> > > > > > >> > > > > > > >> > > > > > Thanks, > >> > > > > > Ming Wen, Apache APISIX > >> > > > > > Twitter: _WenMing > >> > > > > > > >> > > > > > > >> > > > > > YuanSheng Wang <[email protected]> 于2020年3月6日周五 上午11:12写道: > >> > > > > > > >> > > > > > > On Fri, Mar 6, 2020 at 11:00 AM Ming Wen < > [email protected]> > >> > > wrote: > >> > > > > > > > >> > > > > > > > Hi, yuansheng, > >> > > > > > > > I am afraid not get your point, can you explain more? > >> > > > > > > > > >> > > > > > > > >> > > > > > > In the APISIX project, we put all the source code in the > `lua` > >> > > > > directory > >> > > > > > > now > >> > > > > > > . > >> > > > > > > > >> > > > > > > In order for OpenResty to load it, we need to add the `lua` > >> > > directory > >> > > > > to > >> > > > > > > Lua's global search path. > >> > > > > > > So we can see a lot of hard-coded paths, such as: > >> > > > > > > `/usr/share/lua/5.1/apisix/lua / ?. lua`. > >> > > > > > > > >> > > > > > > If we remove the `lua` directory, then the hack path above > is > >> no > >> > > longer > >> > > > > > > needed. > >> > > > > > > > >> > > > > > > So this is the PR result you see. > >> > > > > > > > >> > > > > > > > >> > > > > > > > > >> > > > > > > > I reviewed your PR and there still has the version of > >> Lua[1], > >> > > > > > > > the most important change is `lua/apisix.lua → > >> apisix/init.lua`, > >> > > > > right? > >> > > > > > > > > >> > > > > > > > [1] > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > >> > > > > > >> > > > >> > https://github.com/apache/incubator-apisix/pull/1157/files#diff-400bb4a8f273a5c5afddae64632f0a8bR60 > >> > > > > > > > > >> > > > > > > > Thanks, > >> > > > > > > > Ming Wen, Apache APISIX > >> > > > > > > > Twitter: _WenMing > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > YuanSheng Wang <[email protected]> 于2020年2月24日周一 > >> 下午11:14写道: > >> > > > > > > > > >> > > > > > > > > Hi: > >> > > > > > > > > > >> > > > > > > > > I am using Luarocks 3 now. > >> > > > > > > > > > >> > > > > > > > > I make a try to install Apache APISIX by Luarocks `sudo > >> > > luarocks > >> > > > > > > install > >> > > > > > > > > apisix`, and it is successful. > >> > > > > > > > > > >> > > > > > > > > I got an error message when I try to run the Apache > APISIX > >> > > server. > >> > > > > Here > >> > > > > > > > is > >> > > > > > > > > the error message: > >> > > > > > > > > > >> > > > > > > > > nginx: [error] init_by_lua error: init_by_lua:3: module > >> > > 'apisix' > >> > > > > not > >> > > > > > > > found: > >> > > > > > > > > no field package.preload['apisix'] > >> > > > > > > > > no file > >> '/usr/local/apisix//deps/share/lua/5.1/apisix.lua' > >> > > > > > > > > no file '/usr/share/lua/5.1/apisix/lua/apisix.lua' > >> > > > > > > > > no file > '/usr/local/share/lua/5.1/apisix/lua/apisix.lua' > >> > > > > > > > > > >> > > > > > > > > I found that the luarocks will install the APISIX to > >> > > > > > > > > `/usr/share/lua/5.3/****`. > >> > > > > > > > > > >> > > > > > > > > I think we should rename the folder lua[1] to apisix, > >> then we > >> > > do > >> > > > > not > >> > > > > > > need > >> > > > > > > > > to hack for the Lua finding path[2]. > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > [1] > >> https://github.com/apache/incubator-apisix/tree/master/lua > >> > > > > > > > > [2] > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > >> > > > > > >> > > > >> > https://github.com/apache/incubator-apisix/blob/master/bin/apisix#L105-L107 > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > -- > >> > > > > > > > > > >> > > > > > > > > *MembPhis* > >> > > > > > > > > My github: https://github.com/membphis > >> > > > > > > > > Apache APISIX: > https://github.com/apache/incubator-apisix > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > >> > > > > > > > >> > > > > > > -- > >> > > > > > > > >> > > > > > > *MembPhis* > >> > > > > > > My github: https://github.com/membphis > >> > > > > > > Apache APISIX: https://github.com/apache/incubator-apisix > >> > > > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > -- > >> > > > > > >> > > > > MembPhis > >> > > > > My github: https://github.com/membphis > >> > > > > Apache APISIX: https://github.com/apache/incubator-apisix > >> > > > > > >> > > > >> > > > >> > > > >> > > -- > >> > > MembPhis > >> > > My github: https://github.com/membphis > >> > > Apache APISIX: https://github.com/apache/incubator-apisix > >> > > > >> > >> > >> > >> -- > >> > >> MembPhis > >> My github: https://github.com/membphis > >> Apache APISIX: https://github.com/apache/incubator-apisix > >> > > > -- *MembPhis* My github: https://github.com/membphis Apache APISIX: https://github.com/apache/incubator-apisix
