Thực tế là câu trả lời được chấp nhận trước đây đề cập đến php 5.3.6, trong khi phiên bản hiện tại của tàu MAMP với 5.6.2 là mặc định (tính đến 2015-05-01), chỉ ra rằng đây không phải là một giải pháp rất bền vững. Bạn có thể đảm bảo đường dẫn của mình tự động cập nhật bằng cách thêm một dòng bổ sung vào số .bash_profile
của bạn để lấy phiên bản PHP mới nhất từ /Applications/MAMP/bin/php/
và xuất nó sang đường dẫn của bạn. Đây là cách tôi làm điều đó:
# Use MAMP version of PHP
PHP_VERSION=`ls /Applications/MAMP/bin/php/ | sort -n | tail -1`
export PATH=/Applications/MAMP/bin/php/${PHP_VERSION}/bin:$PATH
(Sử dụng source ~/.bash_profile
sau khi thực hiện những thay đổi của bạn để đảm bảo rằng chúng có hiệu lực.)
Như những người khác đã đề cập, bạn sẽ có khả năng cũng muốn thay đổi vỏ để sử dụng mysql MAMP của thực thi, được đặt tại /Applications/MAMP/Library/bin
. Tuy nhiên, tôi không không khuyên bạn nên xuất thư mục đó, bởi vì có một loạt các tệp thi hành khác ở đó, như libtool
, có thể bạn không muốn ưu tiên hơn các phiên bản được cài đặt hệ thống của mình. Sự cố này đã ngăn tôi cài đặt gói nút gần đây (libxmljs), như được ghi thành tài liệu here.
giải pháp của tôi là để xác định và xuất khẩu mysql
và mysqladmin
như các chức năng:
# Export MAMP MySQL executables as functions
# Makes them usable from within shell scripts (unlike an alias)
mysql() {
/Applications/MAMP/Library/bin/mysql "[email protected]"
}
mysqladmin() {
/Applications/MAMP/Library/bin/mysqladmin "[email protected]"
}
export -f mysql
export -f mysqladmin
tôi đã sử dụng chức năng thay vì bí danh, vì bí danh không được truyền cho tiến trình con, hoặc ít nhất là không trong bối cảnh một kịch bản shell. Nhược điểm duy nhất tôi đã tìm thấy là chạy which mysql
và which mysqladmin
sẽ không còn trả lại bất kỳ điều gì, đó là một con số thấp. Nếu bạn muốn kiểm tra xem mysql nào đang được sử dụng và đảm bảo mọi thứ đều là copacetic, hãy sử dụng mysql --version
để thay thế.
Lưu ý: @julianromera chỉ ra rằng zsh không hỗ trợ chức năng xuất, do đó, trong trường hợp đó, bạn nên sử dụng bí danh, như alias mysql='/Applications/MAMP/Library/bin/mysql'
. Chỉ cần lưu ý rằng các bí danh của bạn có thể không có sẵn từ các subshells (như khi thực thi một kịch bản lệnh shell).
Giải pháp này là thanh lịch, bền vững và hoàn toàn thiên tài. Cảm ơn bạn! –
chức năng xuất không hoạt động trên zsh. Điều gì về việc sử dụng một bí danh? (ví dụ 'alias mysql = '/ Applications/MAMP/Library/bin/mysql'') – r3x
@julianromera Tôi bắt đầu với các bí danh, nhưng theo kinh nghiệm của tôi, các bí danh không được truyền cho các tiến trình con, hoặc ít nhất là không trong ngữ cảnh của một kịch bản lệnh shell. Vì vậy, nếu tôi chạy một tập lệnh shell sử dụng mysql, nó sẽ không tìm thấy bí danh của tôi và thay vào đó sẽ sử dụng phiên bản hệ thống của mysql. Dù sao, cảm ơn cho tip! Tôi sẽ thêm ghi chú về zsh. –