Tôi mới dùng OS X. Tôi đang chạy OS X Lion trên MacBook Pro. Có an toàn không khi nâng cấp bash shell bằng Homebrew:
$ brew install bash
Nếu an toàn, làm cách nào để biến nó thành phiên bản mặc định của shell mà tôi chạy qua Terminal?
Cảm ơn!
Tôi mới dùng OS X. Tôi đang chạy OS X Lion trên MacBook Pro. Có an toàn không khi nâng cấp bash shell bằng Homebrew:
$ brew install bash
Nếu an toàn, làm cách nào để biến nó thành phiên bản mặc định của shell mà tôi chạy qua Terminal?
Cảm ơn!
Câu trả lời:
Các nhị phân /{,usr/}{,s}bin/
thường không nên được thay thế bằng các tệp khác. Các chương trình khác hy vọng chúng là phiên bản đi kèm với OS X và chúng được thay thế bằng các bản nâng cấp hệ điều hành.
Sau khi chạy brew install bash
, bạn có thể thay đổi shell mặc định một cách an toàn bằng cách:
/usr/local/bin/bash
vào/etc/shells
chsh -s /usr/local/bin/bash
.Cài đặt trong Terminal hoặc iTerm 2 thường không phải thay đổi. Cả hai đều mặc định mở các cửa sổ mới bằng vỏ đăng nhập của vỏ mặc định.
Shell mặc định cũng có thể được thay đổi từ System Preferences hoặc với dscl, nhưng cả ba tùy chọn chỉ cần sửa đổi /var/db/dslocal/nodes/Default/users/$USER.plist
.
/etc/shells
để bao gồm bash cài đặt bia là bắt buộc. Nếu không (ít nhất là trên máy của tôi) Terminal sẽ từ chối bắt đầu.
brew install bash
làm việc này. (tức là không phải sửa đổi /etc/shells
)
Tôi có thể sai ở đây, nhưng theo như tôi biết brew
sẽ cài đặt ví dụ của riêng nó bash
, vì brew hoạt động /usr/local/bin
trong khi hệ thống mặc định hoạt động theo /bin
(và /usr/bin
).
Về Terminal, bạn có thể mở shell bằng lệnh tùy chỉnh của riêng bạn. Đi tới Tùy chọn> Khởi động và chọn Shell mở bằng: Lệnh (đường dẫn hoàn chỉnh) . Đơn giản chỉ cần gõ đường dẫn đến mới bash
và v mộng của bạn !
Hy vọng nó giúp!
BTW: Sao lưu! Lời khuyên tốt nhất trong tình huống này!
Trước khi bạn làm bất cứ điều gì, hãy sao lưu tệp hiện tại của bạn (tất nhiên, nhưng luôn xứng đáng được nói)
sudo cp /bin/bash /bin/bash.3.2.bk
Sau đó, tạo một liên kết tượng trưng đến bash thực thi mà Homebrew đã tải xuống. Tôi nghĩ nó sẽ ở / usr / local / Cellar, như vậy
sudo ln -s /usr/local/Cellar/bash/4.2.10/bin/bash /bin/bash
Bây giờ / bin / bash trỏ đến tệp trong thư mục usr / local của bạn
Tôi nghĩ rằng nó an toàn nếu bạn chỉ khởi động
brew install bash
và sau đó thêm nó làm vỏ mặc định của bạn
chsh -s /usr/local/bin/bash
vì bạn chỉ sửa đổi người dùng hiện tại của bạn. Tuy nhiên, tôi nhận thấy rằng mặc định của tôi ~ / .profile là
if [ "/bin/bash" == $BASH ]; then
source ~/.bashrc
fi
vì vậy nó cần được cập nhật Tôi đã đổi nó thành
if [ "bash" == $(basename $BASH) ]; then
source ~/.bashrc
fi
chsh
một mình là không đủ. Ngoài ra, đoạn trích .profile được cập nhật của bạn trông giống hệt với đoạn gốc
brew install bash
không yêu cầu thêm bất kỳ hành động nào. Với hồ sơ cập nhật tôi đã chia sẻ, nó không. Tôi hy vọng điều này có thể giúp đỡ người khác.