brew install mongodb error: Cowardly refusing to `

2020-02-16 19:18发布

问题:

I am not sure why I'm getting this error:

$ brew install mongodb
==> Downloading http://fastdl.mongodb.org/osx/mongodb-osx-x86_64-2.0.4.tgz
######################################################################## 100.0%
Error: Permission denied - /usr/local/var/log/mongodb

So I try to run it with sudo:

$ sudo brew install mongodb
Password:
Cowardly refusing to `sudo brew install'

If I try to create the file myself I get this:

Error: File exists - /usr/local/var/log/mongodb

It gets even more interesting when you read this thread on homebrew's github about the error:

https://github.com/mxcl/homebrew/issues/9953

They state that brew can't write the file because it's not root, then they say it's because they think it shouldn't run as root.

These are the official install instructions, what's up?

If you have a better suggestion for installing it, then I'll forget about homebrew.

回答1:

The lazy (brew) way:

ls -al /usr/local/bin/brew #confirm brew ownership
sudo chown root:wheel /usr/local/bin/brew
sudo brew install mongodb
sudo chown <your user>:<your group> /usr/local/bin/brew  #revert ownership

The non-brew way:

  • Download mongodb distribution from 10gen: http://www.mongodb.org/downloads
  • Install files in /usr/local/bin/
  • Create a config file in /etc/mongo.conf (minimum, tell it where to store data, and probably tell it to bind only to localhost): http://www.mongodb.org/display/DOCS/File+Based+Configuration
  • Create a startup script that calls mongod -f /etc/mongo.conf


回答2:

I keep hitting this same problem over and over with different brew packages (today it was ImageMagick), so I keep coming back to this page. I'm just going to leave my version of the above instructions for myself, and maybe someone else will find it handy too

ls -al `which brew` # note user/group
sudo chown root:wheel `which brew`
sudo brew install <package name>
sudo chown <your user>:<your group> `which brew` # revert ownership

using which brew in back ticks substitutes your path to brew.

(and how do I escape backticks?)



回答3:

I kept getting this error before realizing-- I WAS SUDO SU'd!

In other words, I had a root prompt and was trying to run brew install . Do not try to install using brew if your command prompt has a # at the end.

I feel dumb about it, but maybe this will help someone else.