2009-02-15 27 views
14

Tôi cố gắng để bao gồm không thành công để tôi ~/.profile:

export PATH='$HOME/opt/git/bin' 

Có vẻ như không làm việc vì $ git mang lại cho tôi gì cả. Tôi đang cố cài đặt Git.

Tôi cũng đã thử các lệnh here.

+0

Bạn có chắc chắn git của bạn được cài đặt trong $ HOME/opt/git và không chỉ/opt/git? – mattiast

Trả lời

19

Bạn sẽ muốn cẩn thận với lệnh đó. Nó sẽ ghi đè $ PATH của bạn.

Bạn có thể cần phải đặt nó trong ~/.bash_profile và thay đổi nó như thế này:

export PATH="$HOME/opt/git/bin:$PATH" 
+0

Mã của bạn hoạt động trong ~/.profile sau khi tôi khởi động lại thiết bị đầu cuối. Cảm ơn bạn! –

+0

Rất vui khi nó hoạt động! Tôi đã bỏ phiếu cho câu hỏi của bạn. – matpie

1

Điều này sẽ có hiệu quả.

$ HOME trỏ đến đâu?

Đảm bảo rằng $ HOME/opt/git/bin thực sự chứa một tệp thi hành được gọi là git.

+0

Để thêm điều gì đó vào đường dẫn, tôi nghĩ không cần thiết rằng tệp thực sự tồn tại – Eduardo

+0

$ HOME trỏ đến/home/mas. Điều này $ HOME/opt/git/bin bao gồm: http://dl.getdropbox.com/u/175564/opt-git-bin.png –

2

Bạn cần phải xoá '', hãy thử này

export PATH=$HOME/opt/git/bin 

Và để không ghi đè lên toàn bộ đường dẫn của bạn thử điều này:

export PATH=$PATH:$HOME/opt/git/bin 
+1

Trong hầu hết các trường hợp, bạn muốn thêm tiền tố cho đường dẫn cụ thể của người dùng, chứ không phải hậu tố chúng, để chúng được ưu tiên. –

+0

Không thay đổi, khi tôi kiểm tra mã của bạn trong ~/.profile. –

8

Như SirLancelot chỉ ra, bạn thiết lập lại đường dẫn của bạn chứ không phải là làm tăng nó. Bạn cũng sử dụng dấu nháy đơn thay vì dấu ngoặc kép, do đó, tập giá trị chính xác là chuỗi được hiển thị, thay vì chứa giá trị mở rộng của $ HOME. Như đã đề cập, giải pháp đúng để đó là sử dụng:

export PATH="$PATH:$HOME/opt/git/bin" 

Hoặc bạn có thể đảo ngược thứ tự:

export PATH="$HOME/opt/git/bin:$PATH" 

Tuy nhiên, tất cả những gì không được đảm bảo rằng khi bạn gõ git, thực thi sẽ tìm.

Câu hỏi của bạn cũng đề cập đến việc sử dụng $git; bạn sẽ phải thiết lập biến đó, có lẽ sử dụng:

export git=$(which git) 

Có nói rằng, tôi không thấy một lợi thế để sử dụng khi $gitgit là trên PATH của bạn; nó là một ký tự phụ để gõ (và một số được dịch chuyển). Nếu bạn muốn tiếp tục sử dụng $git, có thể bạn không nên thêm $HOME/opt/git/bin vào PATH. Sự hiện diện của nó làm chậm các tìm kiếm lệnh không thành công và nếu bạn luôn truy cập git qua $git (hiện tại phải được đặt bằng cách sử dụng: export git=$HOME/opt/git/bin/git), không có lợi ích khi có thư mục bin git trên PATH của bạn.


Masi nhận xét về trật tự là vô nghĩa, và Douglas Leeder trả lời:

Trình tự không phải là vô nghĩa - đó là thứ tự [trong đó thư mục là] đã tìm kiếm.Tuy nhiên, git không nằm trong bất kỳ thư mục tìm kiếm nào khác của bạn và không nên có bất kỳ sự chồng chéo nào giữa các lệnh trong thư mục bin git và bất kỳ thư mục nào khác, do đó đơn đặt hàng sẽ không tạo ra bất kỳ sự khác biệt nào trong trường hợp này.

Về cơ bản chính xác, nhưng tôi sẽ xoay nó một chút. Khi một lệnh được tìm kiếm, hệ thống tìm kiếm chương trình bằng cách tìm nó trong mỗi thư mục trong PATH cho đến khi nó tìm thấy nó. Vì vậy, khi nó tìm kiếm ls, ví dụ, với thư mục bin git ở phía trước của PATH, các vỏ sẽ tìm kiếm $HOME/opt/git/bin/ls và không tìm thấy nó, và chuyển sang các thư mục khác trong PATH của bạn, cuối cùng tìm thấy nó trong /usr/bin/ls hoặc /bin/ls. Một số shell cache vị trí nơi chương trình được tìm thấy; của người khác thì không. Vì vậy, nó có thể có ý nghĩa để giữ /bin/usr/bin gần mặt trước của PATH của bạn, để tăng tốc độ truy cập vào các tiện ích tiêu chuẩn. Tôi luôn giữ $HOME/bin ở phía trước PATH của tôi; theo cách đó, tôi có thể ghi đè mọi thứ bằng phiên bản của riêng mình - và tôi làm điều đó cho một số lệnh.

Ngoài ra, trên máy tính chính của mình, thư mục /usr/local/bin không nằm trong tầm kiểm soát của tôi. Tôi không tin tưởng nó, do đó, và tôi chắc chắn rằng nó là đúng ở cuối PATH của tôi, vì vậy GCC cổ trong nó không phải là một trong tôi sử dụng, ví dụ. [Hmmm; họ đã cập nhật nó lên 3.4.6; nó đã từng là 2,95 hoặc ở đó; tôi vẫn sử dụng 4.3.3.]

Một đề xuất khác cho bạn. Xem xét việc tạo một liên kết tượng trưng trong số $HOME/bin của bạn (giả sử bạn có một và nó nằm trên PATH) trỏ đến vị trí cài đặt của git. Điều này có nghĩa là bạn không thêm thư mục phụ vào PATH (vì vậy mọi thứ hoạt động nhanh hơn) nhưng bạn có thể sử dụng phiên bản git mà bạn chọn sử dụng.

ln -s $HOME/opt/git/bin/git $HOME/bin/git 
+0

Cảm ơn bạn! Tôi không biết rằng mệnh lệnh là vô nghĩa. –

+0

Thứ tự không phải là vô nghĩa - đó là thứ tự tìm kiếm - tuy nhiên git không phải là bất kỳ thư mục tìm kiếm nào khác của bạn và không nên có bất kỳ sự chồng chéo nào giữa các lệnh trong thư mục git bin và bất kỳ thư mục nào khác 't làm cho bất kỳ sự khác biệt trong trường hợp này. –

Các vấn đề liên quan