在Mac端口中添加变体

won*_*yte 16 macos macports

我想知道如果您已经安装了端口,如何将变量附加到端口.例如,我安装了'vim'端口,并希望返回并添加python25变体.我需要删除vim并重新安装吗?这只是一个例子,我真的想知道为任何端口执行此操作的过程.

谢谢你的帮助,格雷格

Ned*_*ily 25

一次只能有一个MacPorts端口变体处于活动状态.但是,在MacPorts术语中,端口的多个变体和/或版本可以installed同时进行.其中,最多的是active其他任何一个inactive.如果您需要偶尔在变体之间切换,您可以根据需要激活特定变体.这也将自动停用任何冲突的活动端口.例如,这是一个假设的vim例子(未经过全面测试!):

$ sudo port install vim +python26
$ sudo port clean vim
$ sudo port install vim +python31
$ sudo port echo installed |grep vim
vim                            @7.3.21_0+python26
vim                            @7.3.21_0+python31
$ sudo port activate vim @7.3.21_0+python26
# ... edit with Python 2
# ...
$ sudo port activate vim @7.3.21_0+python31
# ... edit with Python 3
# ...
Run Code Online (Sandbox Code Playgroud)

  • 我不是内部的专家,但基本上它保存每个`installed`端口的副本(查看`/ opt/local/var/macports/software /`).激活端口的过程会创建从其中的文件到正常位置(`/ opt/local/bin`等)的硬链接.停用端口会删除这些硬链接.因此,该过程很快,并且不需要每个文件的额外副本,只需要硬链接条目. (3认同)

Ala*_*air 9

我相信macports现在支持这个--enforce-variants选项.所以在上面的例子中,命令就是

$ sudo port upgrade --enforce-variants vim +python25
Run Code Online (Sandbox Code Playgroud)