11

Here's my problem:

sudo php -d detect_unicode=0 go-pear.phar

...should let me run as root and modify /usr & /usr/share directories, but I get this:

Below is a suggested file layout for your new PEAR installation.  To
change individual locations, type the number in front of the
directory.  Type 'all' to change all of them or simply press Enter to
accept these locations.

 1. Installation base ($prefix)                   : /usr
 2. Temporary directory for processing            : /tmp/pear/install
 3. Temporary directory for downloads             : /tmp/pear/install
 4. Binaries directory                            : /usr/bin
 5. PHP code directory ($php_dir)                 : /usr/share/pear
 6. Documentation directory                       : /usr/docs
 7. Data directory                                : /usr/data
 8. User-modifiable configuration files directory : /usr/cfg
 9. Public Web Files directory                    : /usr/www
10. System manual pages directory                 : /usr/man
11. Tests directory                               : /usr/tests
12. Name of configuration file                    : /private/etc/pear.conf

1-12, 'all' or Enter to continue: 
Unable to create PHP code directory ($php_dir) /usr/share/pear.
Run this script as root or pick another location.

Why is sudo failing to give me root privilege? *Note: *I am in the wheel group, though that should not have anything with this funny sudo behaviour.

Gabbar-Singh:~ anadi$ id anadi
uid=XXX(anadi) gid=XX(staff) groups=XX(staff),0(wheel)
0

1 Answer 1

15

You are trying to install in /usr which is protected by SIP (System Integrity Protection), a feature introduced with 10.11 (see What is the "rootless" feature in El Capitan, really? for details).

Use /usr/local instead, which is the location intended for user-side installations.

3
  • yeah except I need to link to /usr/include or I can't compile with gcc 4.9!
    – Michael
    Commented Aug 5, 2017 at 7:00
  • You’ll have to disable SIP then I guess.
    – jasonology
    Commented Aug 15, 2017 at 1:26
  • Old response, but why can't you just tell GCC where to find the include files? That's what the '-l' option is for. PHP as root... <shudder> Commented Dec 15, 2018 at 23:05

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .