2009-08-29 32 views
42

Xây dựng từ nguồn bên ngoài của macports thật dễ dàng. Xây dựng với macports mất mãi mãi và dường như đóng băng os mỗi rất thường xuyên. Đây có phải là hành vi điển hình không? Mặc dù nó có vẻ giống như một công cụ đóng gói tốt đẹp cho os x, nếu tôi phải trải qua cơn đau này mỗi lần trong mỗi lần cài đặt, tôi nghĩ rằng tôi sẽ làm mà không có nó.Tại sao Macports mất mãi mãi để xây dựng các gói đơn giản?

+3

Tôi không coi câu hỏi này được trả lời dưới đây. Tương phản hiệu suất của các macports với bất kỳ trình quản lý gói nào khác như apt-get nó phải có thứ tự chậm hơn 100 lần. – user363349

+2

Nếu bạn không có thử nghiệm thực tế, bạn không nên sử dụng số lượng tùy ý "100 lần". – anddam

+0

@ user363349: Không công bằng khi so sánh các macports với apt-get; Các kho lưu trữ hệ sinh thái Linux thường xử lý các tệp nhị phân được biên dịch trước. Macports biên dịch mọi lúc từ nguồn. Sự khác biệt về tốc độ có thể được giải thích bằng cách tiếp cận này. –

Trả lời

35

Nếu bạn đang chạy trên bộ xử lý Intel Core 2 Duo, bạn có thể tăng gấp đôi tốc độ của xây dựng của bạn bằng cách thay đổi các tùy chọn cấu hình Macports nằm ở đây:

/opt/local/etc/macports/macports.conf

# Number of simultaneous make jobs (commands) to use when building ports 
buildmakejobs  2 

tôi đã đá bản thân mình khi tôi phát hiện ra điều này sau khi tôi xây dựng lại gcc;)

tùy chọn này sẽ cho phép bạn sử dụng cả hai của cpu để xây dựng các gói.

+0

cảm ơn mẹo! tôi cũng đã nhận xét! – ennuikiller

+7

Có ai có thể xác nhận điều này không? Nhận xét về trường này cho tôi nói "Giá trị # này có thể được đặt thành 0 để số lượng công việc đồng thời tạo thành # số lõi CPU được tự động phát hiện hoặc số GB # của vật lý bộ nhớ cộng với một, tùy theo cái nào ít hơn. "... vì vậy trừ khi phát hiện CPU bị hỏng hoặc bạn có <2 hợp đồng biểu diễn ram, nó phải đã làm điều đúng. – Trenton

+2

Tự mình thử nghiệm. Như tôi đã làm. Mở Activity Monitor, nhấn CPU và xem sự khác biệt hoạt động của mỗi lõi khi bạn thay đổi tùy chọn trong quá trình tạo. – galaxywatcher

8

"đóng băng hệ điều hành"? Bạn có thể cụ thể hơn không? Bạn đang cố gắng xây dựng gói nào trên phiên bản OS X trên máy tính nào? Theo kinh nghiệm của tôi, MacPorts xây dựng thường hoạt động chính xác trên hầu hết mọi cấu hình được hỗ trợ, trong trường hợp của tôi, từ 256MB Pismo G3 (năm 2000) chạy 10,4 trở lên mặc dù Intel iMac lõi kép lõi kép gần đây trên 10,5. Bạn phải kiên nhẫn, mặc dù: có thể mất một thời gian dài đặc biệt là nếu có rất nhiều gói phụ thuộc, đó là một trong những hạn chế của việc sử dụng một trình quản lý gói như MacPorts hoặc Fink. Điểm mấu chốt là bạn thường có một môi trường được kiểm soát nhiều hơn, và một trong những hy vọng, được thử nghiệm hơn là nếu bạn đã tự cài đặt các gói riêng từ nguồn. Và, nếu bạn chưa có, hãy chắc chắn rằng bạn cập nhật lên MacPorts mới nhất: 1.8.0 vừa được phát hành và có một số cải tiến quan trọng, bao gồm hỗ trợ tốt hơn về các bản dựng phổ dụng.

+0

+1 ... để kêu vang với Ned, nếu những gì bạn đang xây dựng có rất nhiều gói phụ thuộc (và những gói có phụ thuộc, và như vậy), bạn sẽ chờ đợi một thời gian dài để có được công cụ của bạn biên dịch. –

+0

bằng cách đóng băng os Tôi có nghĩa là nó sẽ không phản hồi trong vài giây. Tôi đang chạy os x 10.6 trên một bộ đôi lõi 2 macbook pro với 4gb mem. Quá đủ để xử lý ngay cả các quá trình cpu/mem mãnh liệt nhất. Tôi đang so sánh các macports với yum mà tôi đã sử dụng trên các hệ thống Linux trong một thời gian dài, và một lần nữa các macports dường như không nhanh nhẹn hơn nữa .... – ennuikiller

+0

Máy tính của bạn định kỳ không phản hồi vì rất nhiều bản dựng và cài đặt có các mẫu IO rất bùng nổ và nó là nút cổ chai trên đĩa IO. Nó không có gì để làm với CPU hoặc bộ nhớ. Nó không phải là gần như xấu với yum vì yum đang cài đặt các gói nhị phân biên dịch sẵn, không xây dựng chúng. –

4

Tôi không ngại chờ Mac Cổng xây dựng từ nguồn trên các gói mới nhất. Nhưng tại sao không khai thác tất cả sức mạnh xử lý này và cung cấp cho người dùng tùy chọn để cho phép xây dựng tự động được tải lên trở lại MacPorts hoặc vẫn được băm và cung cấp ngang hàng với những người dùng MacPort khác có thể chọn tùy chọn 'turbo'.

+7

Có lẽ bởi vì những ngày này mọi người (bao gồm cả bản thân tôi) quá hoang tưởng để tin tưởng một nhị phân từ một người lạ. Điều thú vị là hầu hết chúng ta không bao giờ bận tâm nhìn vào mã nguồn chúng ta xây dựng hàng ngày .... –

+2

Tôi tìm thấy câu hỏi này khi tự hỏi tại sao nó xây dựng thay vì cài đặt nhị phân, như câu trả lời "câu trả lời" này ... tin tưởng, tốt, nếu chúng ta tin tưởng vào cây nguồn macports, thì tôi thấy không có lý do gì để không tin tưởng, nói rằng, một sự xây dựng của những thứ được macports thực hiện.Điều đó đòi hỏi những người dùng macports phải có tài nguyên (phần cứng, thời gian, v.v.) để xây dựng mọi thứ (cho nhiều nền tảng khác nhau), nhưng ... có lẽ có một số cách trung gian? Tôi biết tôi thích cài đặt nhị phân hơn, với điều kiện một số mức độ tin cậy tương đương là ở đó. Nó chắc chắn không kém an toàn (vốn dĩ, dù sao) so với nguồn không nhìn vào. – lindes

+0

Không phải trên cơ sở p2p nhưng đây là trường hợp kể từ 2.0, không phải tất cả các gói đều sẵn có do giấy phép và tài nguyên sẵn có (buildbot cần xử lý tệp trước khi lưu trữ). Các lưu trữ được ký, cf. http://packages.macports.org – anddam

5

MacPorts được sử dụng để chỉ xây dựng từ nguồn và điều này có thể dẫn đến sự khác biệt của một số đơn đặt hàng của magnitudo khi so sánh với một hệ thống gói tìm nạp nhị phân. Hãy xem xét ví dụ như trường hợp của một gói lớn bằng cách nào đó mất vài giờ để được xây dựng và so sánh với thời gian tải xuống dưới dạng tệp lưu trữ có kích thước vài chục MB.

MacPorts sử dụng công cụ của Apple để xây dựng và nó chỉ thêm phí không đáng kể vào cùng thời gian xây dựng mà bạn sẽ nhận được bên ngoài MacPorts, gói càng lớn, sự khác biệt càng nhỏ. Nếu bạn gặp một sự khác biệt lớn khi xây dựng một chương trình bên ngoài MP, bạn nên nộp một vé trên issue tracker với các chi tiết.

Điều đó nói rằng tôi thấy câu hỏi là khá cũ, vì 2.0 có hỗ trợ cho lưu trữ nhị phân -cf. Changelog - có một kho lưu trữ được hỗ trợ macosforge với các buildbots tạo lưu trữ đã ký và mặc định là tìm nạp các lưu trữ nhị phân này thay vì xây dựng từ nguồn (mà bạn có thể buộc sử dụng -s flag). Trải nghiệm người dùng hiện tại giống với các trình quản lý nhị phân như apt-get, với khả năng thay đổi cấu hình và tùy chọn xây dựng khá dễ dàng.

Các vấn đề liên quan