Не вдалось встановити node.js із домашньою мовою


75

Я намагаюся встановити Node.js із Homebrew (я встановив його раніше, не використовуючи brew, і спробував видалити всі ці файли). Я розглядав попередні запитання, що задавали подібні речі, але мені не вдалося змусити їх працювати. Спочатку я спробував, brew link nodeщо дало мені:

myusername@c126h060:~$ brew link node
Linking /usr/local/Cellar/node/0.12.6... 
Error: Could not symlink share/systemtap/tapset/node.stp
Target /usr/local/share/systemtap/tapset/node.stp
already exists. You may want to remove it:
  rm '/usr/local/share/systemtap/tapset/node.stp'

To force the link and overwrite all conflicting files:
  brew link --overwrite node

To list all files that would be deleted:
  brew link --overwrite --dry-run node

І тоді, коли я запускаю, brew link --overwrite nodeя отримую таке:

myusername@c126h060:~$ brew link --overwrite node
Linking /usr/local/Cellar/node/0.12.6... 
Error: Could not symlink share/systemtap/tapset/node.stp
/usr/local/share/systemtap/tapset is not writable.

Крім того, коли я намагався brew link -n nodeзнайти файли для видалення вручну, мені вдалося видалити деякі з них, але мені все ще залишаються такі файли, які я не можу видалити:

myusername@c126h060:~$ brew link -n node
Would link:
/usr/local/etc/bash_completion.d/npm
/usr/local/bin/node
/usr/local/include/node
/usr/local/share/man/man1/node.1
/usr/local/share/systemtap/tapset/node.stp
/usr/local/lib/dtrace/node.d

Коли я намагаюся видалити, я отримую таке (те ж саме для всіх цих файлів):

myusername@c126h060:~$ rm /usr/local/etc/bash_completion.d/npm
rm: /usr/local/etc/bash_completion.d/npm: No such file or directory

Що я повинен зробити?

Відповіді:


146

Можливо, ви насправді не є власником каталогу вашого системного дотику. Перейдіть /usr/local/shareі запустіть цю команду, щоб зробити себе власником:

chown -R <yourusername>:<yourgroupname> systemtap

Коли я виправляв цю саму проблему раніше сьогодні, мені також довелося зайти /usr/localі зробити те саме для каталогу lib.


8
не забувай про "судо". sudo chown -R <користувацькеім'я>: <yourgroupname>
systemtap

2
Я отримую systemtap: "Немає такого файлу або каталогу". Я використовую macOS sierra.
lmc

3
хм, даючи повний шлях, / usr / local / share / systemtap / працював
lmc

2
хтось може навести приклад лінії чау без заповнювачів? Я не хочу вводити неправильні речі. заздалегідь дякую
Ваш

1
sudo chown -R victor:admin systemtapчудово спрацював для мене !! Успішно оновлено мій вузол до v14.8.0 :)
Віктор

22

Або, як альтернативу, перевірити право власності та дозволи на системній вкладці

$ ls -al /usr/local/share/systemtap/
drwxr-xr-x   3 root  wheel  102 Oct 23 18:06 .
drwxrwxr-x  15 root  wheel  510 Oct 24 20:24 ..
drwxr-xr-x   2 root  wheel   68 Oct 24 20:17 tapset

потім додайте себе до групи власників (у цьому випадку колесо)

sudo dscl . append /Groups/wheel GroupMembership <username>

потім змініть дозволи на наборі кранів, щоб дозволити групове редагування

sudo chmod -R 775 /usr/local/share/systemtap/tapset/

18

Що мені вдалося:

  1. cd /usr/local/share
  2. sudo chown -R <user>:<group> systemtap(Зробив 1 і 2 /usr/localтеж)

Вищі сходи зазнали невдачі. Перейшов до наступної відповіді. Пробували;

ls -al /usr/local/share/systemtap/ який видав помилку "Не знайдено".

Потім: brew link nodeвидавав помилку. Так я і зробив:

  1. sudo rm -rf /usr/local/lib/node_modules
  2. brew postinstall node -v
  3. І нарешті brew link node
  4. node -v :)

Тому в основному я видалив усі node_modules/папки і все переробив.


18

отримати своє ім'я користувача,

та отримайте свої групи: (може бути більше однієї, зазвичай це "адміністратор")

whoami
groups

тоді для прикладу:

sudo chown -R chrislee:admin /usr/local/share/systemtap/

7
arun:~$ brew link node
Linking /usr/local/Cellar/node/0.12.6... 
Error: Could not symlink share/systemtap/tapset/node.stp
Target /usr/local/share/systemtap/tapset/node.stp
already exists. You may want to remove it:
  rm '/usr/local/share/systemtap/tapset/node.stp'

Запустіть команди нижче

brew postinstall node -v
brew link node 

1

Для мене працював такий рецепт:

  1. Додайте своє ім’я користувача, щоб додати колесо групи sudo dscl . append /Groups/wheel GroupMembership username
  2. sudo chmod -R 775 /usr/local/share/systemtap/tapset/
  3. sudo rm -rf /usr/local/lib/node_modules
  4. brew cleanup
  5. brew link node
  6. brew uninstall --force node
  7. brew install node

Потім перевірте версію за допомогою node -vта npm -v.


2
Ласкаво просимо до SO! Будь ласка, пам’ятайте про вказівки на stackoverflow.com/help/how-to-answer і відповідно відредагуйте свою публікацію, наприклад, додавши додаткові пояснення, чому ваше рішення працювало.
B - rian

0

просто додайте sudo на початку команди npm install expo-cli --global

лайк sudo npm install expo-cli --globalі натисніть Enter.

сподіваюся, це допоможе вам.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.