Есть ли у luarocks возможность термоусадочной упаковки или блокировки?

Другие менеджеры пакетов имеют опцию блокировки. Например, на машине разработчика у вас могут быть определенные пакеты и определенные версии. Цель состоит в том, чтобы установить те же самые пакеты и версии в промежуточной или производственной среде. Иногда это называется термоусадкой или блокировкой.

У луарокс есть что-то подобное?


person dgo.a    schedule 25.12.2016    source источник


Ответы (1)


Начиная с LuaRocks 2.4.2, это, к сожалению, недоступно в виде отдельной команды.

Но вот последовательность операций, дающая аналогичный эффект.

В машине разработчика:

mkdir packages
cd packages
luarocks list --porcelain | awk '{print $1}' | uniq > packages.txt
for p in $(cat packages.txt); do luarocks pack $p; done
luarocks-admin make-manifest .
cd ..
tar czvpf packages.tar.gz packages

Скопируйте packages.tar.gz на целевую машину, затем запустите:

tar zxvpf packages.tar.gz
luarocks --only-server=./packages install foo

Это установит пакет «foo», выбирая зависимости и подзависимости только из каталога packages/ (а не из сети), поэтому все зависимости гарантированно будут теми, которые вы упаковали на машине разработчика.

person Hisham H M    schedule 26.12.2016
comment
Спасибо. Мне на самом деле нравятся эти простые шаги, а не одна волшебная команда. Эти команды слишком много скрывают. - person dgo.a; 27.12.2016