2009-10-02 120 views
6

我试图通过MacPorts(在雪豹)上获取postgresql 8.4,但似乎依赖关系是无止境的 - 包括变得已经在Snow Leopard,kitchen-sink中可用的旧版本的东西以及谁知道我是否最终结束与Windows 7 ...如何避免使用MacPorts安装不必要的依赖项?

有没有办法只得到那些绝对必要的依赖从Mac的命令行运行的东西?

特别是我试图避免安装旧版本的python,Xorg软件包等。

任何想法?到目前为止,似乎完全避免MacPorts更好。

+0

我在xorg- *或py2 *上看不到任何postgresql84依赖关系。你准备安装哪些软件包? – outis 2009-10-02 12:33:19

+0

您加载了哪些变体? 0什么是你使用的命令行来安装 – Mark 2009-10-02 12:43:15

+0

我正在使用:sudo port install postgresql84 + python – stefanB 2009-10-02 12:47:11

回答

8

看着port file for postgresql84+python变体实际上意味着python2.5。大部分你觉得讨厌的依赖可能是由python tkinter模块依赖于Tk引入的,默认情况下它会生成Tk的X11版本,而不是+ quartz变体。您可以通过指定该变体并重新安装来更改它。处理变体的简单方法是将您通常希望使用的选项添加为/opt/local/etc/macports/variants.conf中的选项。

不幸的是,目前,tk +quartz变体版本是broken on Snow Leopard

port installed 
port -f uninstall tk Xft2 xorg-libX11 ... 

您可能要首先做一个干:所以,如果你不打算使用的MacPorts的python2.5使用Tkinter的(或空闲),您可以将不需要的模块的事实后强制拆除通过添加-y选项来运行,以确切了解uninstall的效果。

请注意,python26端口有一个方便的+no_tkinter变体,一旦portgresql端口升级到python2.6,该变体可能很有用。

+0

感谢您的深入分析,现在似乎我会尝试编译手头需要的东西,我会再次尝试MacPorts ... – stefanB 2009-10-02 21:12:58

+0

我在MacPorts上为python变体创建了一张使用python2.6的票据。 http://trac.macports.org/ticket/22075 – 2009-10-14 21:54:34

6

这可能有点烦人的工作(并肯定会违反奥卡姆剃刀的这种特殊情况)......但如果你是正面的,你知道哪些依赖关系你不需要/需要,他们总是可以作为连字符传递在停靠之后-delimited ARGS:

port install sweetPort -depYouDontWant -depYouDontNeed ... 

我知道它已经因为OP一段时间,但我希望这可以帮助...有人。

+0

帮助了我。谢谢!!! – 2010-12-17 05:51:57

+0

这不适用于macports 2.3.4 ...'sudo port install ImageMagick -ghostscript'仍然提取并安装ghostscript – Normadize 2016-08-08 20:43:07

+0

创建你自己的repo,修改portfile,增加rev,运行portindex,安装你的版本 – 2017-06-10 11:40:28