Xung đột giữa / usr / bin và / usr / local / bin


6

Tôi có một ứng dụng ( Exuberant Ctags) được cài đặt trong / usr / bin.

Tôi cũng đã biên dịch Emacs từ nguồn, cài đặt phiên bản ctags của riêng nó trong / usr / local / bin.

Chạy ctags từ dấu nhắc lệnh chạy phiên bản Emacs từ / usr / local / bin .

Có cách nào để buộc nó sử dụng ứng dụng từ / usr / bin không?

Tôi có thể truy cập vào / usr / local / bin và xóa hoặc đổi tên phiên bản ctags không mong muốn, nhưng tôi tự hỏi liệu có cách nào khác không.

Câu trả lời:


10

Chỉnh sửa PATH của bạn, vì vậy / usr / bin xuất hiện trước / usr / local / bin. Bạn tìm ra con đường hiện tại của bạn với echo $PATH. Để thay đổi điều này phụ thuộc vào hệ thống của bạn, thường ~/.bashrc. Có câu hỏi ở đây và trên ServerFault liên quan đến nơi tìm các biến môi trường và sử dụng biến nào, ~/.bashrchoặc ~/.bash_profile:-)

Nếu bạn đã cài đặt phần mềm trong phần /usr/local/bin/"ghi đè" những gì hệ thống đưa vào /usr/bin, bạn có thể tạo bí danh để chỉ định thực thi nào sẽ chạy trên cơ sở mỗi chương trình. Ví dụ với chương trình ctags này, hãy đặt cái này vào ~/.bashrc.

alias ctags="/usr/bin/ctags"

(mặc dù một trong những liên kết SF là về cygwin, nhưng nó cũng có thể áp dụng trên các nền tảng khác)


Ngắn gọn. Tuy nhiên, có các tài liệu tham khảo về cơ bản mọi góc độ mà tác giả muốn nhìn vào. Bài đăng tốt.
koenigdmj

3
Tôi nghĩ rằng tôi thích tùy chọn để đặt bí danh cho nó. Toàn bộ điểm của / usr / local / bin là nó ghi đè mặc định của hệ thống.
GodEater

Sử dụng giải pháp này là yêu cầu sự cố 'cuz /usr/localđược thiết kế để ghi đè /usrbởi FHS. Bạn sẽ mất quyền truy cập vào bất kỳ chương trình /usr/localnào có /usrđối tác. aliaschỉ có tác dụng đối với các lệnh shell tương tác và giới thiệu các hiệu ứng phụ của chính nó vì nó ghi đè PATHtìm kiếm.
ivan_pozdeev

0

Nếu bạn không cần ctagscài đặt /usr/local, chỉ cần xóa nó. (Đây là cách tốt nhất có thể 'vì nó sẽ cứu bạn khỏi phải giải quyết vấn đề mà bạn đang gặp phải bây giờ, một lần nữa.)

Hoặc ngăn Emacs cài đặt nó ở nơi đầu tiên và / hoặc làm cho nó kiểm tra cái hiện có trước khi cài đặt (cách thực hiện tùy thuộc vào cách bạn cài đặt nó).

Cuối cùng, bạn có thể nói cho Emacs đường dẫn đến ctagstheo EmacsWiki: Build Tags , bằng cách đặt

 (setq path-to-ctags "<path_to_ctags_executable>")

vào tập tin init của bạn.

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.