Saat menginstal tig
, HomeBrew
menampilkan masalah berikut saat menginstal dependensi:
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/a2x
/usr/local/bin is not writable.
You can try again using:
brew link asciidoc
Jawaban:
Mengikuti jawaban Alex saya bisa menyelesaikan masalah ini; Tampaknya ini menjadi masalah tidak spesifik untuk paket yang diinstal tetapi dari izin
homebrew
folder.Untuk beberapa paket, Anda mungkin perlu melakukan ini ke
/usr/local/share
atau/usr/local/opt
:sumber
sudo chown -R
whoami:admin /usr/local/bin
setara dengan perintah dalam jawaban, tanpa perlu menggantiyourusename
dengan nama pengguna Anda yang sebenarnya?usr/local/opt
secara rekursif. Setelah itu berhasil./usr/local/bin
(dan teman) tampaknya kembali kedrwxr-xr-x+
danroot wheel
setiap hari. Saya harus mengkonfigurasi ulang perms setiap kali saya maubrew install
. Saya berasumsi OS mengatur ulang izin untuk melindungi saya? Bagaimana saya bisa menghentikannya? (Saya sudah mencobachflags uchg …
tetapi itu mencegah minuman dari menginstal.)Daripada menjalankan perintah tertentu, saya akan merekomendasikan menjalankan
brew doctor
dan menerima semua peringatan dengan serius. Mungkin ada masalah lain yang membuat Anda buntu dan mungkin tidak ditangkap dalam pertanyaan ini.Juga, karena minuman diperbarui dengan waktu, perintah tertentu mungkin atau mungkin tidak tetap valid.
brew doctor
Namun, akan memastikan bahwa Anda mendapatkan pemecahan masalah terbaru.sumber
brew doctor
tidak akan memperbaiki masalah, itu hanya akan memberi tahu Anda tentang hal itu, dan ketika Anda mengambil saran dokter, minuman mengatakan itu tidak bisa melakukannya. Itu bukan solusiJawaban yang lain adalah benar, sejauh mereka pergi, tetapi mereka tidak menjawab mengapa masalah ini mungkin terjadi, dan bagaimana mengatasi akar penyebab itu.
Sebab
Ada dua kemungkinan penyebab masalah ini:
brew doctor
, jika Anda menjalankannya.Larutan
Homebrew multi-pengguna
Jika Anda memiliki beberapa akun pengguna, dan Anda ingin lebih dari satu di antaranya dapat menggunakan minuman, Anda harus menjalankan beberapa langkah, jika tidak, Anda harus terus-menerus mengubah kepemilikan struktur file Homebrew setiap kali Anda berpindah pengguna, dan itu bukan ide bagus.
Instruksi terperinci dapat ditemukan online , tetapi jawaban cepatnya adalah ini:
Buat grup dengan nama brew:
sudo chgrp -R brew /usr/local
sudo chmod -R g+w /usr/local
sudo chgrp -R brew /Library/Caches/Homebrew
sudo chmod -R g+w /Library/Caches/Homebrew
Homebrew Pengguna Tunggal
Jika Anda tidak mencoba menggunakan lebih dari satu pengguna dengan Homebrew, maka solusi yang disediakan oleh jawaban lain, berdasarkan saran dari
brew doctor
mungkin cukup:sudo chown -R $(whoami) /usr/local
sudo chown -R $(whoami) /Library/Caches/Homebrew
Verifikasi
Setelah langkah-langkah ini,
brew doctor
harus melaporkan keberhasilan oleh setiap pengguna dalam minuman kelompok, dengan asumsi Anda sudah log out dan kembali menerapkan keanggotaan kelompok baru (jika Anda pergi rute multiuser). Jika Anda hanya mengoreksi hal-hal untuk homebrew pengguna tunggal, maka logout dan kembali tidak perlu karena tidak ada keanggotaan grup Anda yang berubah.sumber
/usr/local/bin
dapat ditulis grup, esp. dalam lingkungan multi-pengguna. Apakah ini benar-benar cara minuman "resmi"?Bagi yang mencari
/usr/local/sbin
bukanlah kesalahan yang bisa ditulisi:UPDATE: Bisa jadi
/usr/local/someOtherFolderName
misalnya/usr/local/include
. Anda hanya perlu membuat folder itu dengan:sudo mkdir someOtherFolderName
Pertama buat
sbin
folder, perhatikan bahwa ini membutuhkansudo
hak istimewacd /usr/local
sudo mkdir sbin
sudo chown -R $(whoami) $(brew --prefix)/*
brew link yourPackageName
sumber
PATH=$PATH:/usr/local/sbin
Saya menemukan untuk pengaturan khusus saya perintah berikut ini berfungsi
Dan kemudian itu menunjukkan saya di mana kesalahan saya, dan kemudian perintah ini sedikit berbeda dari komentar di atas.
sumber
brew doctor
brew doctor
itu bagus.Saya menemukan masalah yang sama, kami dapat menyelesaikannya dalam tiga langkah: -
Langkah 1
Langkah 2
Langkah 3
Jika Anda masih mendapatkan masalah penautan, katakan
mysql
saja, cukup tulisIni akan bekerja
sumber
Bagi mereka yang mengalami masalah ini (diberikan 4 tahun setelah posting ini dibuat) saat menjalankan Mac OS High Sierra - langkah-langkah yang dijelaskan di sini memecahkan masalah bagi saya. Pada dasarnya hanya menguraikan menghapus dan menginstal ulang minuman.
https://medium.com/@mrkdsgn/brew-error-on-macos-high-sierra-check-you-have-permission-to-write-to-usr-local-e8bd1c6a22d4
Setelah menjalankan langkah-langkah itu,
brew link
bekerja seperti pesona!sumber
Bagi saya solusinya adalah menjalankan
brew update
.Jadi, LAKUKAN PERTAMA INI.
Ini mungkin praktik biasa bagi orang-orang yang terbiasa dengan homebrew, tapi saya bukan orang seperti itu.
Sunting: Saya menemukan bahwa saya perlu memperbarui dengan menjalankan
brew doctor
seperti yang disarankan oleh jawaban @ kinnth untuk pertanyaan yang sama.Alur kerja pemecahan masalah umum mungkin terlihat seperti ini: 1. run
brew update
2. jika itu tidak membantu menjalankanbrew doctor
dan ikuti arahannya 3. jika itu tidak membantu memeriksa stack overflowsumber
Saat melakukan brew link node Selain itu saya mendapat masalah berikut juga:
Kesalahan: Tidak dapat symlink include / node / usr / local / include tidak dapat ditulisi.
Menautkan /usr/local/Cellar/node/9.3.0 ... Kesalahan: Izin ditolak @ dir_s_mkdir - / usr / local / lib
Untuk mengatasi hal di atas, cukup buka / usr / local / dan periksa ketersediaan folder 'include' dan 'lib', jika folder tersebut tidak tersedia, buat saja secara manual.
Dan jalankan brew install node lagi
sumber
Ini karena pengguna saat ini tidak diizinkan untuk menulis di jalur itu. Jadi, untuk mengubah izin r / w (baca / tulis), Anda dapat menggunakan 1. terminal, atau 2. Jendela "Get Info" grafis.
1. Menggunakan Terminal
Google cara menggunakan perintah chmod / chown (ubah mode / ubah pemilik) dari terminal
2. Menggunakan grafis 'Dapatkan Info'
Anda dapat mengklik kanan pada folder / file yang ingin Anda ubah izinnya, lalu buka Dapatkan Info yang akan menampilkan jendela seperti di bawah ini di bagian bawahnya Anda dapat dengan mudah mengubah izin r / w:
Ingatlah untuk mengubah izin kembali menjadi "hanya baca" setelah pekerjaan sementara Anda, jika memungkinkan
sumber
Saya telah menemukan yang berikut ini relevan untuk pengguna Sophos Anti-Virus:
https://stackoverflow.com/a/32981184
https://community.sophos.com/products/free-antivirus-tools-for-desktops/f/17/t/10029
Singkatnya, Sophos sedang mengubah izin direktori / usr / lokal tertentu. Sophos telah menambal ini dan perbaikannya disertakan dengan versi 9.4.1.
sumber
Masalah saya adalah
chown
tidak membantu, tetapi saya mengikutibrew doctor
saran berjalan dan peringatan ini membantu saya:Setelah
brew prune
semua bekerja dengan baik!sumber
Bagi mereka yang tidak terbiasa:
sumber
Jika Anda pergi ke folder di finder, klik kanan dan pilih "Dapatkan Info" Anda dapat pergi ke bagian "Berbagi dan Izin" untuk folder dan mengizinkan "Baca & Tulis" ke "semua orang"
Inilah yang saya lakukan untuk membuat symlink lulus dengan kesalahan ini. Pembuatan bir juga tampaknya mengatur ulang izin pada folder juga seolah-olah Anda belum mengubah apa pun
sumber
Jika Anda sudah memiliki direktori di
/usr/local
untuk paket yang Anda instal, Anda dapat mencoba menghapus direktori ini.Dalam kasus saya, saya sebelumnya menginstal paket yang saya coba instal tanpa menggunakan minuman, dan kemudian mencopotnya. Ada direktori yang
/usr/local/<my_package>/
tersisa dari instalasi sebelumnya. Saya menghapus folder ini (sudo rm -rf /usr/local/<my_package>/
) dan setelah itu langkah pembuatan bir berhasil.sumber