2014-01-10 92 views
6

我尝试使用下面的命令来安装从composer.json文件symfony 2.4.1:InvalidArgumentException作曲家安装symfony的

php composer.phar install 

我运行从其中包含composer.json文件(VAR/WWW根目录下这个命令/项目名称/)

几个软件包安装正确。当安装学说包,我得到以下错误:

InvalidArgumentException $from (/var/www/projectname/bin/doctrine) and $to() must be absolute paths.

这是我已经尝试过:

  • 运行PHP composer.phar自更新(现在最新版本)
  • 运行PHP的作曲家。药业更新
  • 运行PHP composer.phar安装

删除整个项目(包括COM poser.json)并运行一个新的安装使用composer.phar创建项目symfony /框架标准版/ var/www/[PROJECTNAME] 2.4。* --prefer-dist

一个adition:我使用vagrant使用与Windows 7共享虚拟盒。我通过ssh运行这些命令。

在这里,你会发现错误报告http://pastebin.com/rFk4vfnL

这是php - 版本的输出:

PHP 5.3.10-1ubuntu3.9 with Suhosin-Patch (cli) (built: Dec 12 2013 04:27:25) 
Copyright (c) 1997-2012 The PHP Group 
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies 
+0

这是Windows 7主机上的unix/linux guest吗? –

+0

你能告诉我们'php --version'和'php --re'的输出。谢谢! –

+0

@ JasperN.Brouwer Vagrant/Virtualbox在Windows 7机器上运行。 查看原始发布有关php的更多信息 – Arthur

回答

7

请删除作曲家的缓存(~/.composer/cache/),然后再试一次。

另外:

  • 您使用的是最新版本? (composer.phar selfupdate
  • 您是否正在将作曲者作为拥有对/var/www/projectname/内的所有内容进行写入权限的用户运行?

更新

作曲家想符号链接doctrine脚本到您的bin目录,它似乎findShortestPath()传唤时没有收到正确的路径。我从来没有见过:(

如果我理解正确,这种情况发生前,你在一个流浪客运行的“同步文件夹”里面作曲:

  1. 你为什么要在客户操作系统中运行的作曲家,而不是在主机上?
  2. 您可以尝试在guest虚拟机上的其他位置运行composer(安装您的项目)吗?(不在同步文件夹中)这样可以排除它与Windows 7共享有关。

更新

所以问题是运行Windows 7的主机上同步文件夹作曲家。下一步是获取作曲家的来源并调试LibraryInstaller::installBinaries()方法。开始检查是否realpath($binPath)here不返回false或类似的东西。我不得不再次问:你为什么这样做?通常会在同步文件夹中设置一个Vagrant框,以便能够在主机上进行开发,并在guest虚拟机(模仿生产服务器)上运行它。所以一般人会主持人,不是客户上运行作曲家...

+0

我在原始问题中添加了一些额外信息 – Arthur

+0

我没有看到任何关于删除作曲家的缓存的问题...... –

+0

我删除了缓存文件并从内部进行了新安装该项目。发生相同的错误。 在流浪者中是否有一些环境变量缺失? – Arthur

0

尝试与多个参数用这个install instruction

$ php composer.phar create-project symfony/framework-standard-edition /path/to/webroot/Symfony 2.4.1 
0

从我可以告诉(基于@jasper答案)作曲家创建符号链接到你的bin文件夹有一个问题......这可能是由于文件系统不支持符号链接(主机的文件系统,然后与客人共享),一个好的测试将是尝试和运行流浪汉在Linux机器上,看看问题是否仍然存在。

我认为解决这个问题的唯一方法就是在客人端安装全局依赖关系(这有点违背了使用流浪者的观点)。

请注意我没有可以测试的Windows计算机,但是在使用samba共享和NTFS/FAT32文件系统时,符号链接问题让我感到困惑。

+0

作曲家有一些代码来处理smb-mounts之类的符号链接。问题不在于创建符号链接,而在于确定用于创建符号链接的路径。 PS:在* nix主机上使用同步文件夹在* nix主机上运行作曲家完美作品:) –

+0

kewl @ composer围绕符号链接工作,很久没有使用过窗口了...... @arthur可以发布流浪和作曲家CONFIGS?可能是那里的东西。 – NiGhTHawK

+0

我在Debian(主机)和Ubuntu(guest)上遇到了这个问题。 – Gibbs