Tidak dapat menulis ke / usr bahkan dengan sudo

10

Inilah masalah saya:

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

... harus membiarkan saya menjalankan sebagai root dan memodifikasi /usr& /usr/sharedirektori, tetapi saya mendapatkan ini:

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.

Mengapa sudogagal memberi saya root privilege? * Catatan: * Saya berada di grup wheel, meskipun itu seharusnya tidak ada hubungannya dengan sudoperilaku lucu ini .

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

Jawaban:

15

Anda sedang mencoba memasang /usryang dilindungi oleh SIP (System Integrity Protection), fitur yang diperkenalkan dengan 10.11 (lihat Apa itu fitur "rootless" di El Capitan, sebenarnya? Untuk detailnya).

Gunakan /usr/localsebaliknya, yang merupakan lokasi yang dimaksudkan untuk instalasi di sisi pengguna.

jasonologi
sumber
ya kecuali saya harus menautkan ke / usr / include atau saya tidak dapat mengkompilasi dengan gcc 4.9!
Michael
Anda harus menonaktifkan SIP maka saya kira.
jasonology
Respons lama, tetapi mengapa Anda tidak bisa memberi tahu GCC di mana menemukan file sertakan? Itulah pilihan '-l'. PHP sebagai root ... <shudder>
Marc Wilson