2015-11-03 182 views
17

我已經安裝了許多次laravel,但是今天當我需要爲我的項目安裝時,我遇到了以下奇怪的錯誤:安裝Laravel時出現Composer錯誤「無法解碼響應:zlib_decode():數據錯誤」

Failed to decode response: zlib_decode(): data error 

重試與降級模式

我運行下面的命令來安裝laravel:

composer create-project laravel/laravel myproject --prefer-dist 
在我 /var/www/目錄

這是完全讀取,寫入和執行。

+0

可能是你可以找到https://github.com/composer/composer/issues/4121 –

回答

38

試試下面的命令:

composer clear-cache 
0

在Linux中我用sudo的前 '作曲家更新' 和問題就解決了。

sudo composer update 
+0

一些有用的信息,這是錯誤的答案,因爲它可以真正擰緊非根工作區域中的作曲者權限。唯一一次你想以root用戶身份運行composer的情況是,root用戶正在維護一個PHP工作區(在任何情況下這通常都是個壞主意)。 事實上,以root用戶身份運行此命令甚至會導致原始問題中報告的原始問題。 如果您不是root用戶,那麼您應該始終將作曲者作爲您的自己而非根。 –

0
composer clear-cache 

sudo composer self-update 
1

快速修復從composer

降級模式#

由於對特拉維斯和其他系統的一些間歇性問題,我們引入了一個降級的網絡模式,該模式有助於作曲完成成功,但禁止一些優化。這是在第一次檢測到問題時自動啓用的。如果偶爾發現此問題,則可能不必擔心(網絡緩慢或過載也會導致超時),但如果它反覆出現,則可能需要查看以下選項來識別並解決問題。

如果你已經指出了這個頁面,您要檢查的幾件事情:

如果使用ESET殺毒,進入「高級設置」,禁用「HTTP掃描儀」下的「網絡訪問保護「 如果您使用IPv6,請嘗試禁用它。如果這樣可以解決您的問題,請聯繫您的ISP或服務器主機,問題不在於Packagist級別,而在於您與Packagist(即大型互聯網)之間的路由規則。使這些問題得到解決的最好方法是提高對有能力解決問題的網絡工程師的意識。

要在Linux上禁用IPv6,請嘗試使用此命令,附加規則寧願IPv6上的IPv4到您的配置:

須藤SH -c「回聲 '的優先級將:: ffff:0:0/96 100'> > /etc/gai.conf「

如果以上都沒有幫助,請報告錯誤。

2

what @dwainm says之後,您還可以全局定義此配置,以避免編輯項目中的composer.json

創建~/.composer/config.json有:

{ 
    "repositories": [ 
     { 
      "type": "composer", 
      "url": "https://packagist.org" 
     }, 
     { 
      "packagist": false 
     } 
    ] 
} 
9

簡稱:運行composer self-update --update-keys,並按照指示。


循序漸進:

我試圖安裝我的項目依賴的時候了同樣的錯誤:

Failed to decode response: zlib_decode(): data error 
Retrying with degraded mode, check https://getcomposer.org/doc/articles/troubleshooting.md#degraded-mode for more info 
Your configuration does not allow connection to http://packagist.org. See https://getcomposer.org/doc/06-config.md#secure-http for details. 
http://packagist.org could not be fully loaded, package information was loaded from the local cache and may be out of date 

只是可以肯定,我嘗試更新作曲家與composer self-update,這給了我相同的錯誤,但另一個提示:

[RuntimeException] 
The phar signature did not match the file you downloaded, this means your public keys are outdated or that the phar file is corrupt/has been modified 

的問題之一是通過運行

composer self-update --update-keys 

Composer Public Keys/Signatures頁面進入鍵解決。之後我可以下載我的依賴關係。

0

使用命令composer clear-cache清除作曲家緩存。另外,請確保您有權訪問您的.composer目錄。它通常位於~/.composer

1

我將這個答案留給像我這樣的人試過以上所有解決方案都不成功。在我的情況下,問題是Mac的Virtual Box(1.5.8)的相關版本。我降級了我以前的版本(1.5.2),並全部恢復正常工作。

13

在我的情況下,VirtualBox的版本是問題。 https://github.com/composer/composer/issues/5814

請確保您的VB不是5.0.28或5.1.8。

+0

我也有這個問題,它最終成爲一個Virtualbox問題。我需要降級到版本5.1.6來解決它。 (我正在運行5.1.8) 另外,我讀了運行5.0.28也導致了這個問題,降級到5.0.10解決了它。 – sagesolutions

+2

版本5.0.30已修復此問題。 –

+0

我正在使用5.1.4並仍然存在此問題:/ – Javis

2

安裝或運行

composer config --global repositories.packagist.allow_ssl_downgrade false 
0

檢查您是否已經安裝了你的PHP CLI 我ZIP擴展後更新庫幫助(Ubuntu的):sudo易於得到安裝php7.0拉鍊

2

如果你看看人們想出的答案,有很多東西可以爲不同的人修復它,包括使用「sudo」,使用「自我更新」等。

經過很多次的測試,我發現真正的答案就是繼續反覆運行它。它每次都會變得更遠一點,並緩存之前得到最後一次數據。所以最終它才起作用,然後人們認爲他們所做的最後一件事就是解決它。事實上,你只需要反覆運行它。這顯然是作曲家應該解決的問題。

的關鍵是看它每次運行它是使用

composer update -vvv

會告訴你多遠,它與你運行它最後一次有時間取得進展。每次運行它時,通常都會下載另外一兩個回購。

直到作曲家修復任何潛在的原因,這似乎是最好的解決方案。祝你好運。

0

這裏是適合苗條的作曲家安裝的正確方法。

1.啓動作曲家安裝程序(composerSetup.exe) 注意:如果默認情況下未選擇php.exe文件,則轉到您的安裝文件夾(wamp,xamp,lamp - 您的安裝選項)文件夾並在bin文件夾下,查找php \ php.exe - 這恰好是您的命令行php的苗條。 3.啓動wamp,xamp或lamp(您選擇的服務器)服務器(以避免錯誤「無法解碼zlib流」) 3.然後繼續安裝的其餘部分(這將最終導致完成安裝沒有用戶輸入需要進一步)。

0

我在同一個問題跑,而試圖composer install doctrine/dbal 此消息一直顯示:Failed to decode response: zlib_decode(): data error

我不得不composer.json通過添加以下行我更新:

{ 
... 
    "config": { 
    "http": true 
    } 
... 
} 

它解決了這一問題。我希望它能幫助你們中的一些人。

1

這可能看起來多餘,但請嘗試重新啓動機器。如果你剛剛安裝了作曲家和其他東西,那麼你的系統可能只需要刷新。

我有這個相同的問題,但它現在正常工作後,重新啓動(在Mac上)。

1

有很多這個問題的答案,因爲有各種各樣的因素可能導致這個問題。它基本上歸結爲1)緩存問題,2)與存儲庫(例如Packagist)的連接問題,或3)Composer項目的配置問題。

在重新配置整個設置之前,先消除選項1和2。例如,2017年5月23日,Packagist was having issues,所以切換到不同的鏡像解決了我的問題。

0

對我來說,當我關掉我的VPN(ExpressVPN)時,這個錯誤消失。這裏建議的其他方法不起作用。

0

在我的情況下,這個問題是由於我的〜/ .composer目錄中的文件權限不好造成的。

於是我就

sudo chown myusername:myusername ~/.composer 

(替換用我的實際用戶名名爲myUsername)

然後作曲家運行良好。

0

窗口我用這個CMD

php composer.phar clear-cache