Шаги по созданию кастомной версии luarocks - PullRequest
0 голосов
/ 09 сентября 2018

Существует библиотека luarocks, которую мне нужно настроить.

Допустим, я установил ее, используя:

sudo luarocks install lua-abc

Если я хочу свою собственную внутреннюю пользовательскую версию этой библиотеки, как я могу это сделать?добавить это на мой openresty сервер?

Загружает ли luarocks код с github, а затем сохраняет его в определенной папке?(если да, то какая папка?)

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

LuaRocks действительно изменчив, когда дело доходит до использования ваших собственных имен исполняемых файлов И вашего компилятора CC. Некоторые зависимости, такие как cmake, должны работать, когда LuaRocks загружает исходные тексты C и C ++ для компиляции в разделяемые библиотеки, например, LuaSocket создаст файл core.so, который потребует выполнения функции luaopen_libluasocket(lua_State* L);, которая находится в файле .so.

Для того, чтобы я мог использовать LuaRocks с LuaConsole (мое заменяющее CLI-приложение для lua.c и скоро будет luac.c), мне пришлось изменить фактические файлы после установки. Вот ссылка: https://github.com/tilkinsc/LuaConsole/wiki/LuaRocks-Support-Linux-GCC

По сути, суть в следующем: LuaRocks по умолчанию использует вариант использования для разработчиков, а не обычный gi-joe. Так что продолжайте и запустите ваш ./configure, который я не уверен, поддерживает ли он --prefix=XXX Но тогда вам нужно отредактировать файл site_config_x_x.lua для добавления в site_config.LUA_INTERPRETER=[[luaw]] -- name of lua interpreter вместе с переключением фактического вызова к интерпретатору внутри оболочки luarocks скрипт. Эту конкретную часть лучше объяснить здесь: https://github.com/tilkinsc/LuaConsole/wiki/LuaRocks-Support-Windows-MinGW Где я буквально сделал это "luaw" "C:\Program Files (x86)\LuaRocks\luarocks.lua" "-n" %* вместо того, что они делали ... и% * это все аргументы, то есть передача всех аргументов.

Затем, после того, как все это сказано и сделано, вам нужно установить LUA_CPATH и LUA_PATH для поиска ваших файлов. Он изменяется в зависимости от установки, но команда для его обнаружения - luarocks path --bin, которая выводит его. Вы можете добавить его в LUA_INIT env var, если хотите, но я нахожусь в Windows и динамически устанавливаю свою собственную переменную пути, используя это: https://gist.github.com/tilkinsc/f6718ca61d76085b064c3dca02f96017 В качестве альтернативы, вы можете установить package.path и package.cpath самостоятельно. но я не рекомендую.

LuaRocks великолепен, когда вы заставите его работать: D

0 голосов
/ 10 сентября 2018

Зависит от того, содержит ли пакет какие-либо внешние зависимости в виде библиотек C, затем он загружает файлы, компилирует их и копирует в default path. Обычно пути по умолчанию:

  • внешние библиотеки C /usr/local/lib/lua/5.*
  • библиотеки /usr/local/share/lua/5.*

камни загружаются в /usr/local/lib/luarocks/rocks/

...