Eroare de curățare a berii: Permisiune refuzată @ unlink_internal (Programare, Node.Js, Macos, Homebrew)

SoftTimur a intrebat.

Am întâlnit o eroare în timp ce făceam „brew cleanup”:

$ brew cleanup
Warning: Skipping opam: most recent version 2.0.3 not installed
Warning: Skipping python: most recent version 3.7.2_2 not installed
Warning: Skipping sqlite: most recent version 3.27.1 not installed
Error: Permission denied @ unlink_internal - /usr/local/lib/node_modules/@angular/cli/node_modules/.bin/in-install

Știe cineva cum să rezolve acest lucru?

PS: brew link node returnează o eroare, deși nu știu dacă are legătură.

$ brew install node
Warning: node 11.9.0 is already installed, it's just not linked
You can use `brew link node` to link this version.
$ brew link node
Linking /usr/local/Cellar/node/11.9.0... 
Error: Could not symlink include/node/common.gypi
Target /usr/local/include/node/common.gypi
already exists. You may want to remove it:
  rm '/usr/local/include/node/common.gypi'

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

2 răspunsuri
hmedia1

În primul rând reparați permisiunile care cauzează eroarea:

sudo chown -R "$(whoami)":admin /usr/local

Pe macOS Mojave, se poate modifica chown comanda trebuie să fie executată pe directorul specific, un exemplu pentru problema permisiunilor în /usr/local/lib director, această comandă ar fi

sudo chown -R "$(whoami)":admin /usr/local/lib

Apoi relink node cu comanda --force conform instrucțiunilor:

brew link --overwrite node

Comentarii

  • Adresa chown a returnat chown: /usr/local: Operation not permitted. –  > Por SoftTimur.
  • sudo chown -R "$(whoami)":admin /usr/local/lib nu a returnat eroare. Aparent, nu am putut face asta pe /usr/local. –  > Por SoftTimur.
  • @ryenus Asta sună ridicol. –  > Por hmedia1.
  • @ryenus /usr/local nu este un folder de sistem pe Mac, este o nebunie ca o aplicație să fie proiectată atât de prost încât să nu reușească să ruleze dacă /usr/local este deținută de utilizator. Am literalmente mii de dosare sub /usr/local, , și am folosit chmod -R pe el de când am un Mac (mulți ani). Nu o dată am avut o problemă din această cauză și am multe medii de dezvoltare, instrumente, biblioteci, mai multe versiuni de Python și alte combinații de sistem/utilizator. Aș putea chiar sugera că McAfee funcționează mai bine atunci când nu pornește. Oricum, cine îl are pe un Mac? –  > Por hmedia1.
  • @hmedia1 Total de acord cu tine. Am reușit să rezolv problema prin rularea comenzii doar pentru „/usr/local/lib/node_modules/” –  > Por evasyuk.
Shrolox

Acest lucru a funcționat pentru mine:

brew unlink node && brew link node