Homebrew-core: Permissions issue when linking python3

Created on 11 Oct 2017  Â·  15Comments  Â·  Source: Homebrew/homebrew-core

Gist Logs: https://gist.github.com/37a31433396016024e15632dfe27b638

Greetings! Python3 was installed as a dependency of asciinema (brew install asciinema) after updating, but it got stuck when linking python3, giving the following:

Linking /usr/local/Cellar/python3/3.6.3... Error: Permission denied @ dir_s_mkdir - /usr/local/Frameworks

I ran brew doctor, and it said to run brew link python3. That produced the same error message as before.

I tried searching around for this, but couldn't quite find a clear answer as what to do. If I understand correctly, it's no longer necessary (or recommended) to change the owner of /usr/local/.

Appreciate any guidance on this!

Most helpful comment

Same as your problem. This works for me.

>sudo mkdir /usr/local/Frameworks
>sudo chown $(whoami):admin /usr/local/Frameworks

All 15 comments

Can you tell us if you have a /usr/local/Frameworks directory, and what permissions it has?
Paste here the output of ls -lh /usr/local.

Same as your problem. This works for me.

>sudo mkdir /usr/local/Frameworks
>sudo chown $(whoami):admin /usr/local/Frameworks

@chingNotCHing Thank you

@fxcoudert Nope, it doesn't currently exist.

drwxr-xr-x    3 jason  admin    96B Sep 29 22:57 Caskroom
drwxr-xr-x   42 jason  admin   1.3K Oct 10 14:47 Cellar
drwxr-xr-x   17 jason  wheel   544B Oct 10 14:36 Homebrew
drwxrwxr-x  228 jason  admin   7.1K Oct 10 16:17 bin
drwxr-xr-x   12 jason  admin   384B Sep 29 22:57 etc
drwxr-xr-x   12 jason  admin   384B Sep 29 22:57 git
drwxrwxr-x   45 jason  admin   1.4K Oct 10 14:57 include
drwxrwxr-x  125 jason  admin   3.9K Oct 10 14:59 lib
drwxr-xr-x   56 jason  admin   1.8K Oct 10 16:17 opt
drwxr-xr-x    3 root   wheel    96B Sep 29 22:56 remotedesktop
drwxr-xr-x    4 jason  wheel   128B Oct 10 14:57 sbin
drwxrwxr-x   13 jason  admin   416B Oct 10 14:59 share
drwxr-xr-x    6 jason  admin   192B Oct 10 14:57 var

Here's the permission of the parent /usr/local/ directory:

drwxr-xr-x   16 root  wheel   512B Sep 29 22:57 local

My understanding (@chingNotCHing) is that it's not a good idea to change the owner of /usr/local/ to something other than root. I suppose I could make the Frameworks directory and set it to jason:admin. 🤔

@JasonTheAdams after doing the option from above and running "brew link python3" I still get

→ asciinema 
Traceback (most recent call last):
  File "/usr/local/Cellar/asciinema/1.4.0/libexec/bin/asciinema", line 6, in <module>
    from pkg_resources import load_entry_point
ModuleNotFoundError: No module named 'pkg_resources'

Is this the case for you too?

@abonillasuse, @chingNotCHing's stuff does not work for you because he made a typo (there is missing slash in the second command)

This is the correct one

sudo mkdir /usr/local/Frameworks
sudo chown $(whoami):admin /usr/local/Frameworks

Is there any info on why the /usr/local/Frameworks was not present? Is this a brew installation bug/issue?

The /usr/local/Frameworks directory should be created by the install script if it does not already exist.

Manually creating the /user/local/Frameworks directory and setting the permissions fixed the issue for me. Not sure why the directory wasn't created in the first place. I've been using homebrew for a while so maybe it wasn't added in an upgrade script.

If you installed using the install script before Homebrew/install#59 was merged, it is possible it was never created. It also is possible that a system/software update removed the /usr/local/Frameworks dir or changed its permissions, it is hard to tell.

@JCount thank you for the info/explanation.

@JasonTheAdams manually creating the directory sorted things for me as well, thanks!

@JasonTheAdams thanks for reporting the issue and I'm glad to hear you got it working.

I faced this same issue after upgrading to macOS High Sierra. I had to recreate the /usr/local/ dirs Framework, include and lib which were deleted during the OS upgrade and then run

sudo chown -R $(whoami) $(brew --prefix)/*

to set permissions on the new directories.

@chingNotCHing Thanks for your answer. It worked for me, but not after I corrected the second command, which was missing a forward slash, /. So, it should be local/Frameworks not localFrameworks.

I had a similar issue but wasn't able to resolve it by creating /usr/local/Frameworks. Instead, I created /usr/local/lib and followed @chingNotCHing's advice on how to assign permissions. It worked after that.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ghostbar picture ghostbar  Â·  4Comments

gregvirgin picture gregvirgin  Â·  3Comments

daviderestivo picture daviderestivo  Â·  4Comments

Steffen911 picture Steffen911  Â·  3Comments

ghost picture ghost  Â·  3Comments