Mengubah PATH sehingga / usr / local / bin berada di depan / usr / bin

24

Saya mencoba menginstal minuman tetapi mendapatkan peringatan berikut:

Warning: /usr/bin occurs before /usr/local/bin
This means that system-provided programs will be used instead of those
provided by Homebrew. The following tools exist at both paths:

2to3
2to3-2.7
idle
idle2.7
pydoc
pydoc2.7
python
python-config
python2.7
python2.7-config
pythonw
pythonw2.7
smtpd.py
smtpd2.7.py

Consider amending your PATH so that /usr/local/bin
is ahead of /usr/bin in your PATH.

Saya tidak tahu bagaimana mengubah jalan. Saya telah menjelajahi beberapa file dari tumpukan stack overflow ini (http://stackoverflow.com/questions/8886114/using-brew-with-ruby-1-9-2), tetapi tidak dapat menemukan jalur yang relevan untuk diedit. Satu-satunya file yang saya miliki yang ada adalah file / etc / profile saya yang saat ini terlihat seperti:

# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
    PATH="/Library/Frameworks/Python.framework/Versions/2.7/local/bin:${PATH}"
export PATH

Saya ingin menghapus instalan python lalu memasangnya kembali melalui homebrew, tetapi saya sedikit gugup karena melanggar terlalu banyak hal sekaligus.

Apakah ada cara mudah untuk mengubah jalan? Haruskah saya membuat file .bash_profile? Terima kasih atas bantuannya sebelumnya.

inovasi rumah tangga
sumber

Jawaban:

30

Ya, buat .bash_profilefile di direktori home Anda yang berisi

PATH="/usr/local/bin:$PATH"

dan kemudian lakukan salah satu dari yang berikut untuk membuat perubahan aktif

  • menjalankan . ~/.bash_profile
  • jalankan PATH="/usr/local/bin:$PATH"di shell saat ini
  • restart Terminal
glenn jackman
sumber
2
@threenovation jika jawaban di atas benar, dapatkah saya menyarankan Anda menandainya sebagai jawaban (klik centang di sebelah jawaban)
Stu Wilson
Saya ingin tahu apakah ini harus diekspor? Proses anak harus memiliki jalur baru ini juga. Juga: Ketika saya menyiapkan brew, itu tidak mengingatkan saya bahwa / usr / bin datang sebelum / usr / local / bin.
Steven Lu
@ SevenLu, ini sudah diekspor saat Anda masuk ke .bash_profile. Tidak ada ruginya untuk secara eksplisit mengekspornya lagi, tetapi tidak perlu.
glenn jackman
Terima kasih untuk ini. Bekerja, "Sistem Anda siap untuk diseduh."
Vezu
Saya sepertinya mendapatkan entri duplikat di $PATH.
flow2k
10

Anda perlu mengubah / etc / path sehingga / usr / local / bin terdaftar sebelum / usr / bin . Anda harus sudo editor Anda untuk melakukan itu.

Salah satu cara untuk membuka editor adalah

 sudo open -t /etc/paths
Konstantin Spirin
sumber
PATH saya dikonfigurasi dengan benar di .bash_profile saya, tetapi tidak di /etc/paths. Ini bekerja dengan baik.
Nick Tomlin
7
JANGAN gunakan metode ini untuk mengatur jalur Anda - ada risiko bahwa aplikasi non-terminal akan mengambil komponen "diseduh" dan gagal. Menggunakan "sudo" juga harus menjadi tanda bahaya kecuali Anda benar-benar memahami apa yang Anda lakukan (terutama dengan sistem pengembangan tingkat pengguna seperti Mac Homebrew). Mengedit .bash_profile dan memulai ulang terminal Anda sudah cukup.
rholmes
@ rholmes Jadi perubahan hanya .bash_profilemempengaruhi shell pengguna interaktif dan bukan aplikasi lain?
flow2k
1
@ flow2k .bash_profile akan memengaruhi shell pengguna interaktif. Setiap variabel yang diekspor akan dilihat oleh aplikasi yang diluncurkan dari baris perintah shell (misalnya, meluncurkan aplikasi Mac "biasa", atau perintah baris perintah). Beberapa detail lebih lanjut dapat ditemukan di sini, tetapi mereka membuat perbedaan yang lebih baik daripada yang Anda tanyakan: scriptingosx.com/2017/04/about-bash_profile-and-bashrc-on-macos Jawaban oleh glenn jackman adalah yang akan digunakan .
rholmes
1
@ flow2k ya, Anda sudah menyatakannya dengan benar.
rholmes