Mac OS上Unix软件包的正式安装程序是什么?


10

我对在Mac OS X上安装标准Unix软件包有些困惑。例如,我有/ usr / bin / svn,即SVN v.1.4.4,但FinkCommander表示未安装svn。其他软件包(例如emacs等)也是如此。

那是一个错误的FinkCommander设置吗?当前它被设置为安装所有的东西/sw,甚至都没有安装PATH。因此,我是否只需要将其设置为将软件包安装为/usr,它就能识别已安装的软件?我不想安装所有组件的重复软件包,而且FinkCommander似乎与已安装的软件不同步是很奇怪的。

还是我应该使用其他安装程序?Mac Ports是推荐使用的安装程序吗?

(我使用的是Mac OS 10.5.8。)


好问题,好答案。另请查看以下内容:superuser.com/questions/28529/macports-fink-etc
Jonik 2010年

至于MacPorts:从头开始编译每个软件包都是疯狂的。我发现自己现在已经白天和晚上离开笔记本电脑,只是为了在MacPorts上安装R(首先编译gcc43,perl,automake,glib2等)。
dehmann

如果您需要预构建的二进制软件包,请查看Rudix
Telemachus

Answers:


10

没有用于OS X的官方软件包管理器。

FinkMacPortsHomebrew提供了自己独特的功能,以填补这一空白。

正如许多用户指出的那样:

  • 避免使用/ usr
  • 除非您配置PATH,否则找不到其他目录中的软件包。

感谢您的回答。真令人失望。他们为什么不能提供合适的包装经理?:-(
dehmann 2010年

5
他们的目标受众不知道该怎么办。我们其余的人都可以使用它:-)
杰里米·L

我选择它作为可接受的答案,但我要补充一点,使用多个管理器实际上是可以的。至少Fink和MacPorts可以共存,因为它们安装在不同的目录中。
dehmann

7

尽管没有用于Mac OS X的官方 Unix / FOSS软件包管理器,但应注意,MacPorts是创建的,仍然主要由Apple的Mac OS X / Darwin工程师维护。macports.org网站托管在Apple的服务器上,是Apple的“ MacOSForge.com”项目的一部分。由于Mac OS X / Darwin是基于* BSD的,因此许多Apple的Unix层软件工程师都来自* BSD传统,因此他们在* BSD“端口”模型之后对MacPorts进行了建模。

Fink是Mac OS X的原始开源软件包管理器,但它与Apple没有紧密的组织联系,因此选择遵循Debian Linux apt-get的传统。

我不确定上面的任何细节是否足以推荐一个细节。我会说这取决于您已经熟悉哪种模型。如果您对apt-get更熟悉,请选择Fink。如果您对BSD“端口”更为熟悉,请使用MacPorts。

正如其他人所说,最好不要单独使用Mac OS X的默认Unix工具。Fink和MacPorts已经吸取了教训,并在自己的目录层次结构中安装了自己的副本(Fink为/ sw,MacPorts为/ opt)。Homebrew还没有完全学到这一课,但是,一旦某些用户使用Homebrew更新Perl或Python的内置副本,Homebrew就会上课,并且它存在一些无法预料的兼容性问题,会破坏Mac的内置部分OS X,例如使用Perl脚本执行某些安装任务的安装程序包(Mac OS X .pkg捆绑文件)。


5
据我了解,Homebrew安装在/ usr / local /下,因此永远不会覆盖系统Python。
Pepijn

4
使用Homebrew覆盖现有组件是不可能的。默认情况下,OSX不带/ usr / local。
保罗·罗宾逊

5

没有OS X的官方软件包管理器。

Fink可能说它没有安装,因为它没有安装在Fink路径中。从Fink或MacPorts安装某些东西,或者使用不同版本号复制副本时,我遇到了问题。

选择一个并坚持下去。如果您觉得必须更改,最好清除另一个软件包管理器,然后从新的软件包管理器重新安装。


3

您看到的svn版本是Mac OS X附带的-不是来自Fink或任何其他来源。

您可以使用bash的type命令标识不同的版本。例如,我使用MacPorts并安装了较新版本的sqlite3:

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

/ opt / local / bin中的版本来自MacPorts,/ usr / bin中的版本来自Mac OSX。

我建议您不要将Fink或MacPorts二进制文件安装到/ usr中,请不要使用它们。让Fink安装在/ sw或MacPorts安装在/ opt / local。调整PATH以在标准版本之前找到Fink / MacPorts版本


使用类似的标志,您可以使用which -a sqlite3
杰里米L

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.