我正在尝试通过 macports 在 Snow Leopard 上安装“ipe”。我运行的命令是“sudo port install ipe”。这是输出:
Chriss-MacBook:macports chris$ sudo port install ipe
Warning: No port p5.12-locale-gettext found in the index.
---> Computing dependencies for help2man
Error: Dependency 'p5.12-locale-gettext' not found.
Error: Unable to upgrade port: 1
Error: Unable to execute port: upgrade pkgconfig failed
To report a bug, see <http://guide.macports.org/#project.tickets>
发生了什么?我该如何修复?
编辑更新后,这是输出。仍然立即失败。
---> Computing dependencies for p5.12-locale-gettext
---> Fetching archive for p5.12-locale-gettext
---> Attempting to fetch p5.12-locale-gettext-1.50.0_6.darwin_10.x86_64.tbz2 from http://packages.macports.org/p5.12-locale-gettext
---> Attempting to fetch p5.12-locale-gettext-1.50.0_6.darwin_10.x86_64.tbz2.rmd160 from http://packages.macports.org/p5.12-locale-gettext
---> Installing p5.12-locale-gettext @1.50.0_6
---> Activating p5.12-locale-gettext @1.50.0_6
Error: Target org.macports.deactivate returned: Active version of p5-locale-gettext is not 1.50.0_3 but 1.05_3.
Log for p5-locale-gettext is at: /opt/local/var/macports/logs/_opt_local_var_macports_registry_portfiles_p5-locale-gettext_1.05_3/p5-locale-gettext/main.log
Warning: Failed to execute portfile from registry for p5-locale-gettext @1.05_3
---> Deactivating p5-locale-gettext @1.05_3
---> Cleaning p5.12-locale-gettext
Portfile changed since last build; discarding previous state.
---> Computing dependencies for help2man
---> Fetching archive for help2man
---> Attempting to fetch help2man-1.40.4_1.darwin_10.x86_64.tbz2 from http://packages.macports.org/help2man
---> Attempting to fetch help2man-1.40.4_1.darwin_10.x86_64.tbz2.rmd160 from http://packages.macports.org/help2man
---> Installing help2man @1.40.4_1
---> Cleaning help2man
---> Computing dependencies for help2man
---> Deactivating help2man @1.38.2_0
---> Cleaning help2man
---> Activating help2man @1.40.4_1
---> Cleaning help2man
---> Computing dependencies for autoconf
---> Dependencies to be installed: perl5
---> Activating perl5 @5.12.3_1+perl5_12
Error: Target org.macports.activate returned: Image error: /opt/local/bin/a2p is being used by the active perl5.8 port. Please deactivate this port first, or use 'port -f activate perl5' to force the activation.
Error: Failed to install perl5
Log for perl5 is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_perl5/perl5/main.log
Error: The following dependencies were not installed: perl5
Error: Unable to upgrade port: 1
Error: Unable to execute port: upgrade pkgconfig failed
仍未解决
答案1
遇到了同样的问题。我按照 Jens 的建议进行了“端口升级过时”,但缺少的依赖项仍然存在。进一步的研究有所帮助,我发现这很有用:
http://comments.gmane.org/gmane.os.apple.macports.tickets/11599
其中写道:
有关缺少 p5.*- 端口的消息几乎总是由 MacPorts 1.x、运行 selfupdate 一次以升级到 MacPorts 2.x 以及索引未正确重建而导致的。解决该问题的方法是再次运行 selfupdate,这将正确重建索引。如果这不能解决您的问题,那么我们希望查看您看到的错误消息以及“sudo port -v selfupdate”的输出。
因此,在执行第二次“sudo port -v selfupdate”后,它对我来说运行良好!启用详细模式后,您可以看到 port 如何修复缺失的依赖项。这让我很开心!
答案2
尝试port selfupdate
或port sync
。
答案3
错误日志会告诉您该做什么(或至少尝试做什么):
Error: Target org.macports.activate returned: Image error: /opt/local/bin/a2p is being used by the active perl5.8 port. Please deactivate this port first, or use 'port -f activate perl5' to force the activation.
已激活较旧的 perl 版本。使用 找出当前激活的 perl 版本port -f activate perl5
,它会打印一些 5.8 版本。只需使用 停用它port deactivate perl @5.8.9_0
(将版本号更改为匹配的版本)并重新安装您想要安装的任何内容 - 较新的 perl 版本现在将正确安装。
当然,还有更好的方法可以找出安装的 perl 版本 - 因为我不再使用 macports,而是使用 homebrew,所以我无法尝试任何东西。也许其他用户会发现...
PS:不仅可以port selfupdate
,还port upgrade outdated
可以将已安装的软件包升级到较新的版本。
答案4
我意识到这个问题已经很老了,但是如果其他人也遇到这个问题,我在这里找到了一个解决方案,需要稍作修改(使用 -f 强制,并针对您的特定版本):http://yetanotherprogrammingblog.com/node/19
基本上是这样的:
查看现有的 perl 版本: sudo port install | grep perl
我的不同,只需卸载所有旧版本的 perl。
perl5 @5.8.9_0
perl5 @5.12.3_0+perl5_12
perl5.12 @5.12.3_1 (active)
perl5.8 @5.8.9_3 (active)
首先像这样卸载构建
sudo port -f uninstall perl5 @5.8.9_0
然后卸载所有旧版本的 perl
sudo port -f uninstall perl5.8
如果您有多个旧版本和版本,请对它们全部执行此操作。您可以保留新版本(5.12 或系统上的任何版本)
然后执行
sudo port upgrade install