Gần đây tôi đã chuyển sang Mac từ Ubuntu. Tôi đã thất vọng vì mac không có sự tiện lợi sudo apt-get
trong Ubuntu. Tôi đã nghe nói rằng tôi nên sử dụng homebrew nhưng tôi không chắc chắn chính xác những gì homebrew hoặc macports làm gì?
Gần đây tôi đã chuyển sang Mac từ Ubuntu. Tôi đã thất vọng vì mac không có sự tiện lợi sudo apt-get
trong Ubuntu. Tôi đã nghe nói rằng tôi nên sử dụng homebrew nhưng tôi không chắc chắn chính xác những gì homebrew hoặc macports làm gì?
Câu trả lời:
MacPorts là con đường để đi.
Giống như @ user475443, MacPorts có nhiều gói khác. Với brew bạn sẽ thấy mình bị mắc kẹt sớm vì công thức bạn cần không tồn tại.
MacPorts là một ứng dụng gốc: C + TCL. Bạn hoàn toàn không cần Ruby. Để cài đặt Ruby trên Mac OS X, bạn có thể cần MacPorts, vì vậy chỉ cần đi với MacPorts và bạn sẽ thấy hạnh phúc.
MacPorts thực sự ổn định, trong 8 năm tôi chưa bao giờ gặp vấn đề gì với nó và toàn bộ hệ sinh thái Unix của tôi chuyển tiếp trên đó.
Nếu bạn là nhà phát triển PHP, bạn có thể cài đặt phiên bản cuối cùng của Apache (Mac OS X sử dụng 2.2), PHP và tất cả các tiện ích mở rộng bạn cần, sau đó nâng cấp tất cả bằng một lệnh. Quên làm điều tương tự với Homebrew.
Các nhóm hỗ trợ MacPorts.
foo@macpro:~/ port select --summary
Name Selected Options
==== ======== =======
db none db46 none
gcc none gcc42 llvm-gcc42 mp-gcc48 none
llvm none mp-llvm-3.3 none
mysql mysql56 mysql56 none
php php55 php55 php56 none
postgresql postgresql94 postgresql93 postgresql94 none
python none python24 python25-apple python26-apple python27 python27-apple none
Nếu bạn đã cài đặt cả PHP55 và PHP56 (với nhiều phần mở rộng khác nhau), bạn có thể trao đổi giữa chúng chỉ bằng một lệnh. Tất cả các phần mở rộng tương đối là một phần của nhóm và chúng sẽ được kích hoạt trong nhóm được chọn: php55 hoặc php56. Tôi không chắc Homebrew có tính năng này.
Rubists thích viết lại mọi thứ trong Ruby, bởi vì điều duy nhất họ thấy thoải mái là chính Ruby.
Homebrew và macports đều giải quyết cùng một vấn đề - đó là việc cài đặt các thư viện và tiện ích chung không được gói cùng với osx.
Thông thường đây là các thư viện liên quan đến phát triển và việc sử dụng phổ biến nhất các công cụ này là dành cho các nhà phát triển làm việc trên osx.
Cả hai đều cần các công cụ dòng lệnh xcode được cài đặt (mà bạn có thể tải xuống riêng từ https://developer.apple.com/ ) và đối với một số gói cụ thể, bạn sẽ cần cài đặt toàn bộ IDE xcode.
xcode có thể được cài đặt từ cửa hàng ứng dụng mac, đây là bản tải xuống miễn phí nhưng phải mất khoảng 5 GB vì nếu tôi nhớ chính xác).
macports là phiên bản osx của tiện ích cổng từ BSD (vì osx có nguồn gốc từ BSD, đây là một lựa chọn tự nhiên). Đối với bất kỳ ai quen thuộc với bất kỳ bản phân phối BSD nào, macports sẽ cảm thấy như ở nhà.
Một sự khác biệt lớn giữa homebrew và macports; và lý do tôi thích homebrew là nó sẽ không ghi đè lên những thứ nên được cài đặt "nguyên bản" trong osx. Điều này có nghĩa là nếu có sẵn gói gốc, homebrew sẽ thông báo cho bạn thay vì ghi đè lên nó và gây ra sự cố tiếp theo. Nó cũng cài đặt các thư viện trong không gian người dùng (do đó, bạn không cần sử dụng "sudo" để cài đặt mọi thứ). Điều này cũng giúp khi thoát khỏi các thư viện vì mọi thứ đều nằm trong đường dẫn mà bạn có thể truy cập.
homebrew cũng thích một cộng đồng người dùng tích cực hơn và các gói của nó (được gọi là công thức) được cập nhật khá thường xuyên.
macports không ghi đè lên các gói OSX bản địa - nó cung cấp phiên bản riêng - Đây là lý do chính tôi thích macports hơn nhà sản xuất bia, bạn cần chắc chắn về những gì bạn đang sử dụng và Apple thay đổi vào các thời điểm khác nhau cho các cổng và đã biết chậm hơn nhiều năm so với cập nhật trong một số dự án
Bạn có thể đưa ra một tài liệu tham khảo cho thấy rằng macports ghi đè lên các gói OS X gốc không? Theo như tôi có thể nói, tất cả các cài đặt macports xảy ra trong
/opt/local
Có lẽ tôi nên làm rõ - tôi đã không nói bất cứ nơi nào trong câu trả lời của mình rằng macports ghi đè lên các gói gốc OSX. Cả hai đều cài đặt các mục riêng biệt.
Homebrew sẽ cảnh báo bạn khi bạn nên cài đặt những thứ "nguyên bản" (sử dụng trình cài đặt ưa thích của thư viện / công cụ) để tương thích tốt hơn. Đây là những gì tôi muốn nói. Nó cũng sẽ sử dụng nhiều thư viện cục bộ có sẵn trong OS X. Từ wiki :
Chúng tôi thực sự không thích bản sao trong Homebrew / homebrew
Tuy nhiên, chúng tôi thích bản sao trong vòi!
Những thứ đi kèm với OS X hoặc là một thư viện được cung cấp bởi RubyGems, CPAN hoặc PyPi không nên bị lừa. Có nhiều lý do tốt cho việc này:
- Thư viện trùng lặp thường xuyên phá vỡ các bản dựng
- Các lỗi tinh vi xuất hiện với các thư viện trùng lặp và ở mức độ thấp hơn, các công cụ trùng lặp
- Chúng tôi muốn bạn cố gắng hơn nữa để công thức của bạn hoạt động với những gì OS X đi kèm
Bạn có thể tùy ý ghi đè lên các phiên bản tiện ích được cung cấp macosx với homebrew.
/opt/local
Hiện tại, Macports có nhiều gói hơn (~ 18,6 K) so với các công thức Homebrew (~ 3,1K), do sự trưởng thành của nó. Homebrew đang dần bắt kịp mặc dù.
Các gói Macport có xu hướng được duy trì bởi một người duy nhất.
Macports có thể giữ nhiều phiên bản của các gói xung quanh và bạn có thể bật hoặc tắt chúng để kiểm tra mọi thứ. Đôi khi danh sách này có thể bị hỏng và bạn phải chỉnh sửa thủ công để đưa mọi thứ trở lại theo thứ tự, mặc dù điều này không quá khó.
Cả hai người quản lý gói sẽ yêu cầu được cập nhật thường xuyên. Điều này có thể mất một thời gian.
Lưu ý: bạn có thể có cả trình quản lý gói trên hệ thống của mình! Nó không phải là cái này hay cái khác Bia có thể phàn nàn nhưng Macports sẽ không.
Ngoài ra, nếu bạn đang xử lý các gói python hoặc ruby, hãy sử dụng môi trường ảo bất cứ nơi nào có thể.
Theo mặc định, Homebrew cài đặt các gói vào / usr / local của bạn. Các lệnh Macport yêu cầu sudo để cài đặt và nâng cấp (tương tự apt-get trong Ubuntu).
Để biết thêm chi tiết:
Trang web này gợi ý sử dụng Hombrew: http://deephill.com/macports-vs-homebrew/
trong khi trang web này liệt kê những lợi ích của việc sử dụng Macports: http://arstechnica.com/civis/viewtopic.php?f=19&t=1207907
Gần đây tôi cũng đã chuyển từ Ubuntu và tôi thích sử dụng homebrew (đơn giản và dễ sử dụng!), Nhưng nếu bạn cảm thấy gắn bó với việc sử dụng sudo, Macports có thể là cách tốt hơn để sử dụng!
/usr/local
Homebrew. Apple đã để lại /usr/local
"các tệp thực thi, thư viện, v.v. không được bao gồm bởi hệ điều hành cơ bản". Điều đó có nghĩa là có thể các công cụ được cài đặt trước khi sử dụng Homebrew có thể đã được tạo ra /usr/local
sao cho nó không thể được sửa đổi mà không có sudo
. Họ không thảo luận về điều đó tại wiki.
/usr/local
mà không cần quyền root. Các quyền mặc định cho /usr
cài đặt OS X mới là chủ sở hữu gốc, không có quyền ghi cho bất kỳ ai khác. Để thậm chí tạo /usr/local
, Homebrew sẽ cần quyền truy cập root. (Tôi không cố gắng bảo vệ bất cứ điều gì)
homebrew
có thể cài đặt công cụ mà không cần sudo
bởi vì khi nó tự thiết lập, nó đã sử dụng sudo
để cho phép trên thư mục lỏng hơn để nó có thể làm bất cứ điều gì bên trong /usr/local
mà không cần kích hoạt mật khẩu. Có nghĩa là phần "cài đặt không có mật khẩu" là sai? Tôi không nghĩ vậy! Vẫn đúng là homebrew
sẽ có thể lấy nội dung mà không cần mật khẩu.