Упаковывая код nodejs, как я могу запретить lintian жаловаться на./node_modules?
Мы столкнулись с этой проблемой при упаковке программного обеспечения, написанного на nodejs.
Поскольку мы не можем упаковать каждую зависимость отдельно, нам нужно отправить node_modules/
каталог вместе с программой. Код установлен в usr/share/<project>/...
и это предупреждения (и ошибки), которые генерируют:
W: <project>: extra-license-file usr/share/<project>/node_modules/express/node_modules/mkdirp/LICENSE
E: <project>: wrong-path-for-interpreter usr/share/<project>/node_modules/request/node_modules/node-uuid/benchmark/bench.gnu (#!/opt/local/bin/gnuplot != /usr/bin/gnuplot)
Есть сотни таких.
Я понимаю, что все эти ошибки актуальны и значимы, но я не знаю, как избавиться от них без обмана и без упаковки каждой зависимости в отдельности. Есть ли другой каталог в FHS, в котором каталог, полный мусора, как node_modules/
будет нормально?
Мы также изучили бег npm install
как часть сценария после установки, но решил, что мы не можем этого сделать (по соображениям безопасности и обслуживания)
1 ответ
Предупреждение / ошибки не имеют никакого отношения к тому факту, что вы устанавливаете их в usr/share/<project>/node_modules
каталог. AFAICT, вы будете генерировать их везде, где вы их устанавливаете.
Как упоминается в документах, предупреждения / ошибки Lintian могут быть отменены, чтобы заставить их замолчать. Создайте файл с именем <package>.lintian-overrides
в debian
каталог исходного пакета. Это должно выглядеть примерно так:
<package> binary: wrong-path-for-interpreter *
<package> binary: extra-license-file *
Хотя этот файл дополнительной лицензии может быть легко решен с помощью этого фрагмента для debian/rules
:
override_dh_auto_install:
find . -name "LICENSE" -delete
dh_auto_install
E сть lintian-overrider
инструмент, который автоматизирует запись переопределений Lintian. Это можно использовать так:
lintian -o <path/to/your/changes-file.changes> | \
lintian-overrider --there-are-no-issues --source-dir <path/to/unpacked/source-tree>
Более подробную информацию можно найти в блоге автора.