Шаги по созданию кастомной версии luarocks
Есть библиотека luarocks, которую мне нужно настроить.
Допустим, я установил его, используя:
sudo luarocks install lua-abc
Если мне нужна собственная внутренняя пользовательская версия этой библиотеки, как я могу добавить ее на свой openresty сервер?
Загружает ли luarocks код с github, а затем сохраняет его в определенной папке? (если да, то какая папка?)
2 ответа
Это зависит от того, содержит ли пакет какие-либо внешние зависимости в виде библиотек C, затем он загружает файлы, компилирует их и копирует в путь по умолчанию. Обычно пути по умолчанию:
- внешние библиотеки C
/usr/local/lib/lua/5.*
- библиотеки
/usr/local/share/lua/5.*
камни загружаются в /usr/local/lib/luarocks/rocks/
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
sudo apt-get install build-essential
cd /usr/local/src/
Загрузите необходимый выпуск здесь.
tar -xvf luarocks-3.2.1.tar.gz
cd luarocks-3.2.1
./configure
make build
sudo make install