2014-01-10 119 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