Saya menggunakan Homebrew untuk mengelola instalasi paket di Lion (Server Lion sebenarnya tapi ini seharusnya tidak masalah) .
Homebrew dipasang di bawah satu pengguna. Sekarang pengguna lain ingin menambahkan paket dan Homebrew tidak senang:
$ brew update
fatal: Unable to create '/usr/local/.git/index.lock': Permission denied
Error: Failure while executing: git checkout -q master
Apakah ini dianggap buruk? Saya pikir salah satu keuntungan menggunakan /usr/local/
untuk instalasi Anda adalah bahwa Anda tidak perlu sudo
. Tapi jelas kami lakukan.
Semua pengguna yang perlu memodifikasi Homebrew adalah anggota grup admin . Jadi, saya bisa chmod -R g+w /usr/local/
tetapi takut ini akan merusak sesuatu atau membuat masalah keamanan?!?
Nasihat?
$ ls -al /usr/local/.git/
total 432
drwxr-xr-x 14 ladmin admin 476 Feb 24 11:48 .
drwxrwxr-x 14 root admin 476 Feb 9 15:27 ..
-rw-r--r-- 1 ladmin admin 94 Feb 24 11:48 FETCH_HEAD
-rw-r--r-- 1 ladmin admin 23 Feb 24 11:48 HEAD
-rw-r--r-- 1 ladmin admin 41 Feb 9 15:28 ORIG_HEAD
drwxr-xr-x 2 ladmin admin 68 Feb 9 15:27 branches
-rw-r--r-- 1 ladmin admin 218 Feb 9 15:27 config
-rw-r--r-- 1 ladmin admin 73 Feb 9 15:27 description
drwxr-xr-x 12 ladmin admin 408 Feb 9 15:27 hooks
-rw-r--r-- 1 ladmin admin 200272 Feb 24 11:48 index
drwxr-xr-x 3 ladmin admin 102 Feb 9 15:27 info
drwxr-xr-x 4 ladmin admin 136 Feb 9 15:27 logs
drwxr-xr-x 4 ladmin admin 136 Feb 9 15:27 objects
drwxr-xr-x 5 ladmin admin 170 Feb 9 15:27 refs
sumber
brew doctor
masih mengeluh bahwa misalnya/usr/local/include
tidak dapat ditulisi meskipun saya secara manual dapat memverifikasi bahwa saya dapat menulis ke file di sini (misalnya menggunakanecho "hello" > /usr/local/include/testfile
). Saya anggota grup admin. Ada ide untuk debugging?chmod -R g+w /Library/Caches/Homebrew
sudo chown -R $(whoami) $(brew --prefix)/*
alih-alih perintah di atas. Dapatkan dari siniAnda dapat mengaktifkan izin homebrew untuk lebih dari satu pengguna melalui grup admin, atau melalui grup pengguna lainnya. Berikut adalah resep yang sedikit diperluas untuk mengonfigurasinya:
Grup perlu mengelola direktori pemasangan homebrew lokal. Jadi berikan / usr / lokal ke grup admin (atau grup pilihan Anda) dan aktifkan izin menulis grup:
Grup ini juga memerlukan izin untuk cache formula dan file sumber lokal homebrew di / Library / Cache / Homebrew :
Jika Anda mengalami masalah izin lebih lanjut yang serupa saat menggunakan homebrew dari beberapa akun, catat jalur yang menyinggung dan pertimbangkan untuk mencoba pendekatan yang sama.
Leif Hanack telah blogged solusi yang sama , di mana ia menciptakan dan mengkonfigurasi grup pengguna yang didedikasikan minuman untuk tujuan tersebut.
--Perbarui 2015-08-20
Saya baru-baru ini menggunakan jawaban ini lagi untuk mengatur akun tamu dengan akses homebrew. Untuk menggunakan Tong dari akun admin kedua saya juga harus menjalankan perintah berikut:
sumber
Saya hanya akan mengomentari jawaban yang diterima (tetapi belum memiliki reputasi untuk itu.)
Sebagai pengguna Caskroom.io , saya juga merekomendasikan untuk menambahkan:
sejak tong, ekstensi yang sangat berguna untuk homebrew, memasukkan semua file-nya
/opt/homebrew-cask
sumber
/opt
saya kira Anda maksud/usr/local
? Seperti/opt
tidak ada pada instalasi OS X baru-baru ini, bahkan setelah instalasi homebrew./usr/local
(atau lebih tepatnya$(brew --prefix)
) dari/opt/homebrew-cask
jadi jawaban ini sekarang diperdebatkan, tetapi valid ketika ditulis. Lihat Memindahkan lokasi kamar mayat default # 21603Anda harus memberi izin ke jalan. jalankan ini di command line dan Anda akan baik-baik saja untuk pergi. Ini bekerja untuk saya:
sudo chown -R $ USER / usr / local
sumber
Saya akan memilih untuk menetapkan izin grup - dan bagi saya tampaknya hanya itu yang ada di sana dan tidak boleh membuat masalah keamanan.
sumber
sudo chmod -R g+w /usr/local/
?