Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

node-gyp rebuild not working on MacOS Catalina Beta without reinstalling CommandLineTools #1861

Closed
nnmrts opened this issue Aug 22, 2019 · 29 comments

Comments

@nnmrts
Copy link

nnmrts commented Aug 22, 2019

  • Node Version: v8.16.1 & v12.7.0
  • Platform: Darwin macbook 19.0.0 Darwin Kernel Version 19.0.0: Tue Jul 23 01:19:36 PDT 2019; root:xnu-6153.0.103.151.1~4/RELEASE_X86_64 x86_64
  • Compiler: Apple clang version 11.0.0 (clang-1100.0.33.5)
    Target: x86_64-apple-darwin19.0.0
    Thread model: posix
    InstalledDir: /Library/Developer/CommandLineTools/usr/bin
  • Module: any module...
Verbose output (from npm or node-gyp):
No receipt for 'com.apple.pkg.CLTools_Executables' found at '/'.

No receipt for 'com.apple.pkg.DeveloperToolsCLILeo' found at '/'.

No receipt for 'com.apple.pkg.DeveloperToolsCLI' found at '/'.

gyp: No Xcode or CLT version detected!

Yes, I know, it's obvious that there are some bugs on a beta OS, but I just wanted to share the solution because I couldn't find anything by googling.

To run node-gyp, you need to do this: xcode-select --install first, but if you already installed the command line tools in the past, this command will just output:

xcode-select: error: command line tools are already installed, use "Software Update" to install updates

Using "Software Update" as suggested, won't fix this problem. You have to uninstall the command line tools first by deleting this folder:
/Library/Developer/CommandLineTools
reference

After doing that, you need to run xcode-select --install again and everything should work now.

However, even though node-gyp now finds your command line tools, it will still fail if you use a node version higher than v8.16.1, so consider downgrading to that momentarily (by using nvm for example...).

@cclauss
Copy link
Contributor

cclauss commented Aug 22, 2019

See #1779

@nnmrts
Copy link
Author

nnmrts commented Aug 23, 2019

@cclauss Thanks, but that issue isn't really related to mine, regarding the xcode command line tools stuff.

@cclauss
Copy link
Contributor

cclauss commented Aug 23, 2019

Second paragraph of #1779 (comment)

I also don't think we're going to be in a position to provide any support for Catalina until it's actually released, we hardly have the people + bandwidth to deal with supported operating systems. Sorry.

@nnmrts
Copy link
Author

nnmrts commented Aug 23, 2019

@cclauss Oh, sorry, thanks. Alright, good to know the status about that, but as I said, just wanted to share the current "workaround" in my issue until Catalina is released.

@cclauss cclauss added the macOS label Sep 20, 2019
@NickNaso
Copy link
Member

I want report that re-installing the command line tools worked for me. Thanks.

@cclauss
Copy link
Contributor

cclauss commented Sep 25, 2019

Related to #1854... I am narrowing in on it.

@cclauss
Copy link
Contributor

cclauss commented Sep 30, 2019

I believe that #1890 fixed this. Please reverify.

@nnmrts
Copy link
Author

nnmrts commented Oct 2, 2019

@cclauss Should fix it, but I'm not sure how people that used the workaround described here would be able to reverify this, because you basically have to downgrade your command line tools, or better said "anti-upgrade" them. I think this workaround is a one-way thing, or at least a very hard to revert change.

Also, the group of users who ran and and will run into this issue is probably pretty small. My suggestion is to leave this issue open until Catalina is finally released, then close it.

EDIT:
To avoid misunderstandings, I'm not saying that there are "not enough" users of neither the MacOS Beta, nor Python 3, nor node-gyp version 5.0.0 to 5.0.3. But I think being a user of all three things in this specific timeframe is pretty rare.

@nnmrts
Copy link
Author

nnmrts commented Oct 8, 2019

Catalina is here, yay!

@nnmrts nnmrts closed this as completed Oct 8, 2019
@MInesGomes
Copy link

MInesGomes commented Oct 16, 2019

I solve with sudo npm install --unsafe-perm flag ... where ... could be any module

@monkuver
Copy link

monkuver commented Oct 17, 2019

how I managed to solve the problem:

  1. install xcode-select (sudo xcode-select --install)
  2. execute xcode-select -print-path, it will display something like /Library/Developer/CommandLineTools
  3. execute sudo xcode-select --reset it should change the path to /Applications/Xcode.app/Contents/Developer
  4. rejoice that everything worked :)

@VanijaDev
Copy link

Solution worked for me too. Thank you! :)

@elcheco
Copy link

elcheco commented Oct 29, 2019

As @NickNaso is writing reinstalling worked for me as the only option - whatever sudo xcode-select --reset solutions didn't.

So based on: https://developer.apple.com/library/archive/technotes/tn2339/_index.html#//apple_ref/doc/uid/DTS40014588-CH1-HOW_CAN_I_UNINSTALL_THE_COMMAND_LINE_TOOLS_

  1. I run sudo rm -rf /Library/Developer/CommandLineTools
  2. and then xcode-select --install

after that problem was gone and I could compile everything that has been dying on node-gyp relation...

@cclauss
Copy link
Contributor

cclauss commented Oct 30, 2019

Thanks @elcheco your positive review on #1940 will help to get that landed.

@icopp
Copy link

icopp commented Nov 2, 2019

I was repeatedly running into problems here on Catalina until, after wiping out the the tools installed by xcode-select --install and then reinstalling them, I also deleted the node_modules folder in the package I was trying to set up and ran npm install from scratch. After I did that second step, it worked.

@cclauss
Copy link
Contributor

cclauss commented Nov 2, 2019

@icopp
Copy link

icopp commented Nov 5, 2019

Correct. I was still getting weird make build errors until I wiped and reinstalled node_modules.

@sjohnr
Copy link

sjohnr commented Nov 10, 2019

After upgrading to Catalina, downgrading to node v8.16.1 solved my problem. Thanks!

@weihanmatt
Copy link

it's worked!! Thanks!

@chrisjangl
Copy link

After upgrading to Catalina, downgrading to node v8.16.1 solved my problem. Thanks!

On a fresh installation of Catalina, downgrading to Node v8.16.1 is what FINALLY solved my issue.

@peimn
Copy link

peimn commented Feb 10, 2020

After trying anything, reinstalling worked for me...

@Fingel
Copy link

Fingel commented Mar 14, 2020

Why does it seem like I have to revisit this issue every few months? Is there no consistent way to have this just work?

@cclauss
Copy link
Contributor

cclauss commented Mar 14, 2020

https://github.com/nodejs/node-gyp/blob/master/macOS_Catalina.md

@Fingel
Copy link

Fingel commented Mar 14, 2020

https://github.com/nodejs/node-gyp/blob/master/macOS_Catalina.md

Yes, I've followed those instructions several times.

It seems like every few months node-gyp stops working and the only way to fix it is to remove the Xcode tools, reinstall them, rm -rf node_modules and npm install them again.

OS X problems...

@Carniatto
Copy link

https://github.com/nodejs/node-gyp/blob/master/macOS_Catalina.md was not sufficient?

I've followed this and even though the acid tests pass I cannot run node-gyp rebuild

@flowtrader2016
Copy link

downgrading to Node v8.16.1 is what FINALLY solved

Worked for me.

@Fingel
Copy link

Fingel commented Apr 13, 2020

Just had to do the remove/reinstall dance again. It definitely correlates with OS X OS updates.

@cclauss cclauss added the gyp: No Xcode or CLT version detected! See: macOS_Catalina.md label May 19, 2020
szekelyisz added a commit to szekelyisz/node-gyp that referenced this issue May 26, 2020
XCode Command line Tools no longer show up as packages on Catalina,
which breaks CLT version detection in gyp/pylib/gyp/xcode_emulation.py.

A workaround is to remove the CLT installation directory and reinstall
it using `xcode-select --install` which will download and install an
older version. But this will eventually be upgraded by Software Update
which breaks detection again.

This patch adds a fallback mechanism to detect CLT version based on
software update history.

Refs: nodejs#1927
Refs: nodejs#1861
@nnmrts
Copy link
Author

nnmrts commented May 29, 2020

I suggest reopening this issue tho. It's not resolved and I kinda feel like, yeah, OSX is weird and stuff, but this is still an issue with node-gyp itself. I use several other tools and programs depending on the command line tools that don't require me to delete and reinstall them almsot every time I use aforesaid tools and programs.

Maybe it correlates with OSX updates, I personally think it correlates more with node.js updates or switches (nvm). Either way, reinstalling command line tools every time is not a solution, it's a workaround.

I hope this gets fixed.

@cclauss
Copy link
Contributor

cclauss commented May 29, 2020

Please review #2141 which is an effort to fix this often reported issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests