Việc cài đặt git homebrew sẽ không được ưu tiên so với phiên bản hệ thống (in / usr / bin /)


10

OS X (hoặc Xcode) đi kèm với git 1.7. Một cái gì đó, nhưng sau brew install git(1.8.0), which gittiếp tục trả lại cái cũ /usr/bin/git.

Đây là những gì tôi nhận được khi tôi lặp lại $ PATH ngay bây giờ:

/usr/local/bin:/usr/local/sbin:~/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin

Công cụ Homebrew không nên được ưu tiên?

Ngoài ra, tôi không biết usr/local/git/bincuối cùng nó đến từ đâu.


Bạn đã xác minh rằng git thực sự nằm trong / usr / local / bin chưa?
Joe Bane

Vâng. ls /usr/local/bincho thấy gitlà có. Brew cũng xác nhận rằng nó đã được cài đặt. Tôi thậm chí đã chạy trình gỡ cài đặt git (cả bằng brew uninstallvà sử dụng cái đi kèm với tải xuống git chính thức) và làm lại brew install git. Tôi tiếp tục nhận được which git = = /usr/bin/git".
o_o_o--

2
Chạy which -a gitđể xem nếu nó tìm thấy nó ở tất cả.
Joe Bane

Câu trả lời:


7

Hiểu rồi. Câu trả lời là trong câu hỏi của bạn; brew cài đặt git đến /usr/local/git/bin(không /usr/local/bin) nhưng vì sau đó /usr/bintrong đường dẫn của bạn, bạn sẽ có được cái đó trước. Nhận xét của tôi cho which -a gitnên đã chỉ cho bạn theo hướng này.


1
Chạy ls -l /usr/local/bin/gitquá. Tôi đặt cược nó là một liên kết tượng trưng đến /usr/bin/git.
Joe Bane

Ồ, và /usr/local/git/bindường như là nơi trình cài đặt chính thức cũng đặt nó.
Joe Bane

Bạn nên nhìn vào /etc/paths/etc/paths.dlà tốt.
Joe Bane

1
đây là một bước ngoặt thú vị của sự kiện: which -a gitlợi nhuận /usr/local/bin/git; /usr/bin/git; /usr/local/bin/git. Vì vậy, tôi đã đổi tên git cũ usr/bin/git_oldvà đưa nó ra khỏi đường đi. Bây giờ git --versiontrả về 1.8, chứng minh rằng brew đã cài đặt git thành công. - Một lần nữa, tôi đổi tên thành tên /usr/bin/gitban đầu của nó ... và đột nhiên nó hoạt động bình thường! Tôi không biết tại sao hay làm thế nào, nhưng đổi tên /usr/bin/gitvà chạy git một lần dường như đã giải quyết được vấn đề. Ai biết được gốc rễ của vấn đề là gì. Dù sao cũng cảm ơn :)
o_o_o--

Thật ki quặc. Vui mừng bạn đang lên và chạy ít nhất bây giờ.
Joe Bane

3

Tôi cũng gặp phải vấn đề này.

Sau khi cài đặt git qua homebrew, nếu bạn chạy brew doctorthì nó sẽ cảnh báo bạn rằng, như Joe đã đề cập ở trên, hệ thống đang chạy git cũ vì vị trí cài đặt của nó xuất hiện trước.

Nhưng, trong cùng một cảnh báo, homebrew cung cấp mã để sửa nó:

$ echo export PATH='/usr/local/bin:$PATH' >> ~/.bash_profile

0

Đó là một phần trong thói quen Unix của tôi để có một ~/binthư mục mà tôi đặt vào lúc bắt đầu PATH. Đây là một trong những bit đầu tiên trong tôi .bashrc:

case ":$PATH:" in
  *:$HOME/bin:*) ;;     # do nothing if $PATH already contains $HOME/bin
  *) PATH=$HOME/bin:$PATH ;;  # in every other case, add it to the front
esac

Với điều đó, sau đó chọn lọc chỉ gitưu tiên quản lý Homebrew so với phiên bản hệ thống (thay vì mọi nhị phân do Homebrew quản lý) và chỉ cho các phiên shell của bạn (thay vì tất cả các chương trình bắt đầu từ mọi nơi, kể cả các chương trình GUI), là đơn giản như symlinking nó:

ln -s /usr/local/bin/git ~/bin/git
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.