Impossible d'écrire dans / usr même avec sudo

10

Voici mon problème:

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

... devrait me laisser fonctionner en tant que root et modifier les répertoires /usr& /usr/share, mais j'obtiens ceci:

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.

Pourquoi sudone me donne-t-il pas le privilège root? * Remarque: * Je fais partie du groupe de roues, bien que cela ne devrait pas avoir quelque chose avec ce sudocomportement amusant .

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

Réponses:

15

Vous essayez d'installer dans /usrlequel est protégé par SIP (System Integrity Protection), une fonctionnalité introduite avec 10.11 (voir Qu'est - ce que la fonctionnalité "rootless" dans El Capitan, vraiment? Pour plus de détails).

Utilisez /usr/localplutôt, qui est l'emplacement prévu pour les installations côté utilisateur.

jasonologie
la source
ouais sauf que je dois créer un lien vers / usr / include ou je ne peux pas compiler avec gcc 4.9!
Michael
Vous devrez désactiver SIP alors je suppose.
jasonologie
Ancienne réponse, mais pourquoi ne pouvez-vous pas simplement dire à GCC où trouver les fichiers d'inclusion? C'est à cela que sert l'option '-l'. PHP en tant que root ... <shudder>
Marc Wilson