Упаковывая код 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>

Более подробную информацию можно найти в блоге автора.

Другие вопросы по тегам