Trình cài đặt chính thức cho các gói Unix trên Mac OS là gì?


10

Tôi hơi bối rối về việc cài đặt các gói Unix tiêu chuẩn trên Mac OS X. Ví dụ: tôi có / usr / bin / svn, đó là SVN v.1.4.4, nhưng FinkCommander nói rằng svn chưa được cài đặt. Điều tương tự giữ cho các gói khác, như emacs, vv

Có phải đó chỉ là một cài đặt FinkCommander sai? Hiện tại nó được thiết lập để cài đặt mọi thứ trong /swđó, thậm chí không có trong PATH. Vì vậy, tôi chỉ cần cài đặt nó để cài đặt các gói /usrvà nó sẽ nhận ra phần mềm đã cài đặt? Tôi không muốn cài đặt các gói trùng lặp của mọi thứ và điều khá lạ là FinkCommander dường như không đồng bộ với phần mềm đã cài đặt.

Hoặc có bất kỳ trình cài đặt nào khác tôi nên sử dụng? Cổng Mac có phải là trình cài đặt được đề xuất sử dụng không?

(Tôi đang sử dụng Mac OS 10.5.8.)


Câu hỏi hay và một số câu trả lời tuyệt vời. Ngoài ra hãy xem cái này: superuser.com/questions/28529/macports-fink-etc
Jonik

Đối với MacPorts: Biên dịch mọi gói từ đầu chỉ là điên rồ. Tôi thấy mình rời khỏi máy tính xách tay trong nhiều ngày và đêm nay chỉ để cài đặt R với MacPorts (lần đầu tiên biên dịch gcc43, perl, automake, glib2, và nhiều hơn nữa ...).
dehmann

Nếu bạn muốn các gói nhị phân dựng sẵn, hãy xem Rudix .
Telemachus

Câu trả lời:


10

Không có trình quản lý gói chính thức cho OS X.

Fink , MacPortsHomebrew cung cấp các tính năng và chức năng khác nhau của riêng họ để lấp đầy khoảng trống này.

Như nhiều người dùng đã chỉ ra:

  • tránh sử dụng / usr
  • cho đến khi bạn định cấu hình PATH của mình, các gói từ các thư mục khác nhau sẽ không được tìm thấy.

Cảm ơn câu trả lời. Điều đó khá đáng thất vọng. Tại sao họ không thể cung cấp một trình quản lý gói thích hợp? :-(
dehmann

5
Đối tượng mục tiêu của họ sẽ không biết phải làm gì. Phần còn lại của chúng tôi làm cho nó hoạt động :-)
Jeremy L

Tôi chọn nó là câu trả lời được chấp nhận, nhưng tôi nói thêm rằng việc sử dụng nhiều người quản lý thực sự tốt. Ít nhất Fink và MacPorts có thể cùng tồn tại, vì chúng cài đặt vào các thư mục khác nhau.
dehmann

7

Mặc dù không có trình quản lý gói Unix / FOSS chính thức cho Mac OS X, nhưng cần lưu ý rằng MacPorts đã được tạo và vẫn chủ yếu được duy trì bởi các kỹ sư Mac OS X / Darwin của Apple. Trang web macports.org được lưu trữ trên các máy chủ của Apple, như một phần của dự án "MacOSForge.com" của Apple. Do Mac OS X / Darwin dựa trên * BSD, nên nhiều kỹ sư phần mềm lớp Unix của Apple đến từ truyền thống * BSD, vì vậy họ đã mô hình hóa MacPorts theo mô hình "cổng" BSD.

Fink là trình quản lý gói nguồn mở ban đầu cho Mac OS X, nhưng nó không có mối quan hệ tổ chức chặt chẽ với Apple và nó đã chọn theo truyền thống apt-get của Debian Linux.

Tôi không chắc bất kỳ chi tiết nào ở trên là đủ để giới thiệu cái này qua cái khác. Tôi muốn nói rằng nó thuộc về mô hình mà bạn đã quen thuộc hơn. Nếu bạn quen thuộc hơn với apt-get, hãy đến với Fink. Nếu bạn quen thuộc hơn với "cổng" BSD, hãy đến với MacPorts.

Như những người khác đã nói, tốt nhất bạn nên để các công cụ Unix mặc định của Mac OS X. Fink và MacPorts đã học được bài học đó và cài đặt các bản sao của chính chúng trong hệ thống phân cấp thư mục của riêng chúng (/ sw cho Fink, / opt cho MacPorts). Homebrew vẫn chưa học hết bài học đó, nhưng ngay khi một số người dùng sử dụng Homebrew để cập nhật bản sao tích hợp của Perl hoặc Python và nó có một số vấn đề tương thích không lường trước đã phá vỡ các phần Mac tích hợp OS X, chẳng hạn như các gói trình cài đặt (tệp bó Mac OS X .pkg) sử dụng tập lệnh Perl để thực hiện một số tác vụ cài đặt.


5
Theo tôi hiểu, Homebrew cài đặt dưới / usr / local /, và do đó sẽ không bao giờ ghi đè lên hệ thống Python.
Pepijn

4
Không thể sử dụng Homebrew để ghi đè lên các thành phần hiện có của bạn. OSX vận chuyển không có / usr / local theo mặc định.
Paul Robinson

5

Không có trình quản lý gói chính thức cho OS X.

Fink có thể nói rằng nó chưa được cài đặt vì nó không được cài đặt trong đường dẫn Fink. Tôi gặp vấn đề khi cài đặt một cái gì đó từ Fink hoặc MacPorts hoặc sao chép với các số phiên bản khác nhau.

Chọn một và dính vào nó. Nếu bạn cảm thấy mình phải thay đổi, tốt nhất nên xóa sạch trình quản lý gói khác và cài đặt lại từ gói mới.


3

Phiên bản svn bạn đang thấy đi kèm với Mac OS X - không phải từ Fink hoặc bất kỳ nguồn nào khác.

Bạn có thể xác định các phiên bản khác nhau bằng cách sử dụng typelệnh của bash . Ví dụ: tôi sử dụng MacPorts và cài đặt phiên bản mới hơn của sqlite3:

$ type -a sqlite3
sqlite3 is /opt/local/bin/sqlite3
sqlite3 is /usr/bin/sqlite3

Phiên bản trong / opt / local / bin đến từ MacPorts, phiên bản trong / usr / bin đi kèm với Mac OS X.

Tôi khuyên bạn không nên cài đặt nhị phân Fink hoặc MacPorts vào / usr - hãy để chúng một mình. Hãy để Fink cài đặt trong / sw hoặc MacPorts cài đặt trong / opt / local. Điều chỉnh PATHđể tìm phiên bản Fink / MacPorts trước phiên bản tiêu chuẩn


Sử dụng các cờ tương tự, bạn có thể sử dụngwhich -a sqlite3
Jeremy L

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.