将MacPorts依赖项替换为其他程序包

时间:2009-12-10 22:58:58

标签: macos osx-snow-leopard macports

有没有办法在MacPorts中使用另一个包(而不是指定的包)来满足某个端口依赖?更具体地说,对于需要XYZ的第二个端口,使用XYZ-devel包而不仅仅是XYZ?

提前致谢。

2 个答案:

答案 0 :(得分:1)

您可以使用“port variants”命令显示给定端口的可用变体列表。例如:

[michaelsafyan@codemage ~]$ port variants ffmpeg
ffmpeg has the variants:
   darwin_10: Platform variant, selected automatically
   no_gpl: disallow use of GPL code, license will be LGPL
   no_mmx: disable all x86 asm optimizations
   speex: enable Speex decoding via libspeex

然后您可以使用“+ variantname ”激活或“ - variantname ”来停用安装的给定变体(例如,可以使用“sudo port”安装ffmpeg + speex“以使用speex变量安装ffmpeg)。这是您可以在不同配置和依赖关系之间进行选择的唯一方法(不会破坏MacPorts)。

答案 1 :(得分:1)

如果-devel端口不作为变体提供,那么唯一的方法是编辑端口文件。

$ sudo port edit $the_port

将在编辑器中打开指定的端口。您可以将依赖关系从发布端口更改为那里的-devel端口。

请注意:

  1. 这可能会破坏端口,因为它可能不适用于-devel版本(不太可能,但可能)。
  2. 每次执行port selfupdate时,您对Portfile的更改都将被还原。如果您不希望每次更新时都必须“修复”Portfile,您可能需要设置local Portfile repository