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)

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.


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.