2014-04-15 207 views
8

當我嘗試運行作曲家自我更新,我得到的錯誤:作曲家不能自我更新

The file is corrupted (creating archive "/home/heytherejake/.composer/cache/composer-temp.phar" disabled by the php.ini setting phar.readonly). 
Please re-run the self-update command to try again. 

我已經設置phar.readonly設定爲關閉(和我的phpinfo反映了這一點),但在錯誤仍然存​​在。有誰知道還有什麼可能導致這種情況?

+1

可能嘗試類似'rm -rf〜/ .composer/cache/*'(運行風險自負,但看不到它會如何受傷)。或者手動完全重新安裝Composer? – Sam

+0

不幸的是,試圖重新安裝Composer會出現同樣的錯誤。 (不同的位置,但:下載已損壞(創建存檔「/etc/php5/apache2/composer.phar」由php.ini設置phar.readonly禁用),中止。) –

+0

有趣的是什麼方法你安裝它用?儘管我不建議這樣做,但我很想知道它是否以超級用戶身份進行安裝。 – Sam

回答

8

作曲家沒有更新或工作正常通常是由於兩件事之一。錯誤的權限和/或錯誤的緩存。

要刪除緩存,使用sudo rm -rf ~/.composer/cache/

要解決權限問題變化composer.phar權限755:

which composer 
sudo chmod 755 path/to/composer 

爲修復此問題的最後一個平均值,嘗試用sudo來更新sudo -H composer self-update

+3

請不要'chmod 777'! –

+0

@UnamataSanatarai Thx的提示,但你能否詳細說明並給我一個更正,以便我可以更新我的文章? – NMC

+0

@NMC查看Paulo Pereira的答案 – bastey

9

最好的解決方案是刪除作曲家,然後重新安裝它:

i。 Find Composer:

which composer 

ii。然後刪除它作爲sudo(使用從上面返回的目錄)

sudo rm -rf /usr/local/bin/composer 
sudo rm -rf ~/.composer/cache/ 

iii。然後使用apt-get安裝它

sudo apt-get update 
sudo apt-get install curl php5-cli git 
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer 

iv。然後測試,如果它的工作

composer self-update