LINUX.ORG.RU
решено ФорумAdmin

Пакетный менеджер ЯП и системы

 , , ,


0

2

Доброго времени суток, господа. npm ставит модули в /usr/lib/node_modules и системный ПМ туда же. В итоге если я делаю, например, npm install -g oauth-sign, то он перезаписывает то что поставил ПМ (пакет nodejs-oauth-sign).

Это вообще нормально или я делаю что-то не так? Мне инсталлятор одного SDK поставил все это дело сам (очевидно что я зря даю права рута софту не из репозитория, но тем не менее). Я так понимаю что следует ставить модули не из репозитория куда-то отдельно? Скажем в /usr/local/node_modules. Если так, как правильно это сделать? Хотя это уже не важно, если что сам найду, меня больше волнует как концептуально верно.

То же самое с яйцами питона и руби камнями.



Последнее исправление: dearboy (всего исправлений: 1)

«концептуально верно» было бы не смешивать использование системного и нодового менеджеров.

rand
()
Ответ на: комментарий от rand

Ну не все нодовые пакеты есть в репозиториях. Т. е. верно ставить их в другую директорию?

dearboy
() автор топика
Ответ на: комментарий от ritsufag

А куда я их должен ставить? Я и SDK ставлю в /opt/, делаю chown root:root, чтобы все пользователи могли пользоваться (нет, у меня один пользователь в системе, да и вообще ноут, но тем не менее).

Алсо:

Global install (with -g): puts stuff in /usr/local or wherever node is installed.

Это в Fedora npm так сконфигурирован?? Потому что у меня он кладет в /usr

dearboy
() автор топика

Тащемта да, для этого есть /usr/local. Простите за глупый вопрос. Стандартное поведение npm в Fedora смутило.

dearboy
() автор топика
Ответ на: комментарий от dearboy

В директорию приложения же. К тому же лучше сразу заполнить package.json и добавить зависимости чтобы потом

npm i
установить их все разом.

ritsufag ★★★★★
()
Ответ на: комментарий от ritsufag

В проектах так и делаю обычно. Но иногда народ пишет утилиты на nodejs и распространяет через npm (безумие как по мне).

dearboy
() автор топика
Последнее исправление: dearboy (всего исправлений: 1)

Концептуально правильно ставить в /home/.node каталог, либо в корень проекта. Глобально только часто используемыe модули типа jQuery. Для питона есть virtualenv - очень удобно.

menangen ★★★★★
()
Ответ на: комментарий от ggrn

Да это-то понятно, но зачем столько? Они же делают практически одинаковую работу, почему нельзя обойтись системным пакетным менеджером?

mix_mix ★★★★★
()
Ответ на: комментарий от mix_mix

Например, как Ruby'шный gem, который такой магией ктулху занимается, что от нее кроме рубишников все шарахаются? У всех свои велосипеды.

Virtuos86 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.