Não é possível gravar em / usr mesmo com o sudo

10

Aqui está o meu problema:

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

... deve me deixar executar como root e modificar /usr& /usr/sharediretórios, mas recebo o seguinte:

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.

Por que sudonão está me dando privilégios de root? * Nota: * Estou no grupo das rodas, embora isso não deva ter nada com esse sudocomportamento engraçado .

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

Respostas:

15

Você está tentando instalar o /usrqual é protegido pelo SIP (System Integrity Protection), um recurso introduzido no 10.11 (consulte O que é realmente o recurso "sem raiz" no El Capitan? Para obter detalhes).

Em /usr/localvez disso, use o local destinado às instalações do lado do usuário.

jasonologia
fonte
Sim, exceto que eu preciso vincular a / usr / include ou não consigo compilar com o gcc 4.9!
Michael
Você terá que desativar o SIP, então eu acho.
Jasonology
Resposta antiga, mas por que você não pode simplesmente dizer ao GCC onde encontrar os arquivos de inclusão? É para isso que serve a opção '-l'. PHP como root ... <shudder>
Marc Wilson