嘿,我是新來的MacPorts的東西,因爲我最近改用Mac電腦。因爲我正在考慮在我的Mac中開發一些應用程序,我想要所有常用的gnu和開源工具。但我有一個小混亂。我正在用macports安裝git,並且我注意到它安裝了很多像Perl這樣的包,我已經在我的機器上了。所以我在想沒有任何衝突,以及如何知道使用哪個版本。 macports一個還是蘋果一個?MacPorts的混亂
3
A
回答
9
MacPorts將其所有端口安裝到/opt/local
(或者您配置的任何前綴,但默認爲/opt/local
)。它安裝自己的Perl,Python等副本,以便MacPorts的安裝是標準化的,並且爲了避免衝突(蘋果公司提供的一些程序,如Perl和Python,以及一些庫的版本,往往遠遠落後於最新版本的那些工具)。
當您安裝使用MacPorts,它自動會預先/opt/local/bin
您$PATH
變量(您可以通過編輯你的shell配置文件改變這一點),因此,如果調用perl
等等,你會得到的MacPorts版本。但是,Apple提供的版本仍然保持不變,並且依賴於這些版本的其他程序也不會受到影響。
1
MacPorts在/opt/local
樹中安裝它自己的依賴關係(您可以在生成MacPorts時更改此默認設置),因爲它的打包程序具有已知數量的測試對象。在某些情況下,對於給定的依賴關係,有一個系統包可讓您使用系統安裝的版本,但這實際上非常罕見。根據PATH
(對於可執行文件)或動態庫的鏈接程序路徑中首先選擇的系統與MacPort版本進行選擇。使用標準開發工具的選項來選擇合適的庫鏈接,你應該沒問題。
3
不應該有任何衝突,因爲安裝MacPorts的所有方案中/opt/local/
一個完全獨立的目錄層次結構下。
如果您安裝了多個版本的軟件(例如默認的OS X Perl和MacPorts的Perl),那麼它取決於您的環境變量$PATH
中的目錄順序。 MacPorts的通常把它自己與它的bin
目錄早些時候在你的路徑,所以說perl
在命令行中會調用的MacPorts的Perl,而不是OS X的Perl。
相關問題
- 1. 混亂
- 2. 混亂
- 3. 混亂
- 4. 混亂
- 5. PrintWriter的混亂
- 6. 的RewriteCond混亂
- 7. 的memcpy混亂
- 8. java的混亂
- 9. mod_rewrite的混亂
- 10. 的virtualenv混亂
- 11. 的TransactionScope混亂
- 12. 的ModelForm混亂
- 13. 的Java:GridBagLayout的混亂
- 14. 的Objective-C++混亂
- 15. Unicode的混亂#3423435
- 16. WordPress的CSS混亂
- 17. C++ const的混亂
- 18. 混亂與Android的
- 19. Kohana的URI混亂
- 20. SQLAlchemy的SELECT混亂
- 21. PHP的preg_match混亂
- 22. SQLiteOpenHelper-的Android混亂
- 23. 先行混亂
- 24. pySpark toRowMatrix混亂
- 25. CreateMutex混亂
- 26. Android混亂
- 27. ado.net SQLite混亂
- 28. CFG OPLIST混亂
- 29. Android inApp混亂
- 30. convertToNodeSpace混亂
一個警告是:如果你在你的$ PATH首先將/ opt/local/bin目錄,以便MacPorts的版本的優先級,要知道,有*可能*是MacPorts的版本和蘋果提供的一個之間的差異。我過去一直被燒掉的一個具體和潛在的關鍵示例是'rsync',它被MacPorts'git-core'軟件包依賴。不幸的是,MacPorts rsync -aE選項與Apple rsync -aE選項不同:擴展屬性和資源分支默默無視,這可能會在以後嘗試使用複製的文件時導致令人不快的意外。 – 2009-11-18 00:49:45