Как вы устанавливаете зависимости, перечисленные в Luarocks?

У меня есть следующие луароксы:

package = "project-name"
version = "1.0-1"
source = {
   url = "..."
}
description = {
   summary = "etc"
   detailed = [[]],
   homepage = ""
}
dependencies = {
   "lua >= 5.1, < 5.2",
   "busted >= 2.0.rc12",
   "lua-requests >= 1.1",
   "json-lua >= 0.1",
   "lua-resty-dogstatsd >= 1.0.1"
}
build = {
    type = "builtin",
    modules = {
        ["project-name"] = "project/init.lua"
    }
}

Как установить зависимости? Выполнение luarocks install говорит о том, что мне не хватает аргументов. Не знаю, что здесь делать.


person Kousha    schedule 29.03.2019    source источник
comment
luarocks install сам по себе ничего не сделает. вы должны указать имя модуля   -  person Piglet    schedule 30.03.2019
comment
@Piglet да, я сказал это, и отсюда вопрос: P   -  person Kousha    schedule 30.03.2019


Ответы (4)


Чтобы установить одну зависимость вручную, вы можете запустить

luarocks install <dep-name>

Вы можете добавить дополнительную версию, такую ​​как

luarocks install lua-resty-jwt 0.1.11-0

Чтобы установить все зависимости, перечисленные в файле Rockspec,

luarocks install --only-deps <rockspec_file>

Из руководства luarocks install:

--only-deps Устанавливает только зависимости от рока.

Кроме того, вы можете просто запустить

luarocks make

который также установит для вас отсутствующие зависимости. Однако обратите внимание, что это может быть не то, что вы хотите, в зависимости от ваших потребностей:

Эта команда полезна как инструмент для отладки спецификаций пород. Чтобы установить камни, вы обычно хотите использовать команды «установить» и «сборка». Подробнее см. в справке по ним.

NB: Используйте luarocks install с флагом --only-deps, если вы хотите установить только зависимости от Rockspec (см. luarocks help install).

person z11i    schedule 19.06.2020

luarocks build установит все зависимости, перечисленные в Rockspec. Если вы сначала сделаете luarocks init project_name, вы получите локальную команду luarocks, которая будет устанавливать модули локально в проект. Только проверил это на окнах. Я предполагаю, что другие платформы ведут себя аналогично

person Kartik    schedule 26.12.2019

Насколько я понимаю, вопрос в том, что хотя вы устанавливаете с помощью этого Rockspec, он не устанавливает камни, объявленные в зависимостях. Во-первых, не могли бы вы выполнить следующую команду, чтобы проверить, существуют ли вышеуказанные зависимости?

Команда: luarocks list | grep [dependency_name]

Например: luarocks list | grep json-lua

(список luarocks перечисляет все камни, которые нужно установить)

person Linh Duy Dang    schedule 22.04.2019

Хорошо, что не так с

luarocks install busted
luarocks install lua-requests
luarocks install json-lua
luarocks install lua-resty-dogstatsd
person Rick    schedule 30.03.2019
comment
Когда вы используете npm или python, вы используете npm install package1 package2 package3 или pip install package1 package2 package3 или вы сохраняете файл зависимостей, такой как package.json и requirement.txt, а затем просто запускаете установку на всех из них? - person Kousha; 31.03.2019
comment
Почему вы приводите python в обсуждение lua? Если вы не получаете желаемого ответа, возможно, это потому, что вопрос плохо сформулирован. Вы спросили, как установить эти зависимости с помощью командной строки luarocks install, и вам объяснили. - person Rick; 31.03.2019
comment
Весь смысл управления зависимостями заключается в том, что мне не нужно вручную запускать install package1 && install package2 && install package3, а скорее иметь какую-то конфигурацию, в которой определены зависимости, и я просто говорю install, и он установит все эти зависимости для меня. Точно так же, как это делают Node, Python, Java, Go, PHP и все другие языки. - person Kousha; 23.04.2019
comment
@ Рик, вопрос не плохо сформулирован. ОП пытается понять, как установить ВСЕ зависимости, перечисленные в файле, с помощью одной команды, без необходимости указывать их вручную. И кажется, что luarocks этого не поддерживает (?). Если это правда, мне как ОП любопытно, почему бы и нет. - person iLemming; 22.12.2019