2015-06-20 62 views
9

中被作者拒絕接受我遵循https://getcomposer.org/doc/00-intro.md#globally的文檔在arch linux上全局安裝composer。當我做composer self-update,我得到這個消息:權限在/ usr/local/bin/

[ErrorException]                      
    rename(/home/hannes/.composer/cache/composer-temp.phar,/usr/local/bin/composer): Permission denied 

/usr/local/bin/的權限(我把它們改成777,但它並沒有幫助):

-rwxrwxrwx 1 hannes users 1104202 30. Mai 18:07 composer 

在我這樣做是我的主目錄:

sudo chmod -R 777 .composer/ 

/etc/php/php.ini,將open_basedir看起來如此:

open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/usr/local/bin/ 

我也試過sudo composer self-update但它沒有工作,可能不是正確的方法。 (?)。我還有什麼可以嘗試做這項工作?

+1

您應該檢查_directory_'/ usr/local/bin /'的權限,而不是其中的文件。該過程必須寫入必須授予的目錄中。除此之外,還有一個提示:_do並不總是將所有內容都設置爲777_。沒有理由,這會讓你的系統變得脆弱。 – arkascha

+0

好吧,我應該爲我的用戶(我)「chown」目錄'/ usr/local/bin'嗎?它看起來像這樣:'drwxr-xr-x 2 root root 4096 30. Mai 18:08 bin'它看起來應該只由root用戶擁有,而不是用戶。(?) – haheute

+0

而不是開始註釋流程這裏我在下面發佈了一個答案。 – arkascha

回答

1

現在,有一個包在Arch Linux的作曲家,其作品對我來說:

sudo pacman -S composer 
9

您應該檢查目錄/ usr/local/bin /的權限,而不僅僅是其中的文件。該過程必須將文件和文件寫入兩者都必須被授予的目錄中。

除此之外,一般提示:並不總是將所有內容都設置爲777.沒有理由這樣做,這會使系統變得脆弱。

根據您在最後一條評論中發佈的行,該目錄目前僅爲,對於root用戶本人而言只有。這將解釋你得到的錯誤。你應該不是讓你自己的用戶帳戶成爲擁有者,Linux系統是多用戶環境。相反,想想這些方法之一:

  • 添加,是爲了執行composer到組root(用戶帳戶可以屬於多個組),使目錄組可寫
  • 變化組帳戶將目錄帳戶的組的所有權的成員,使目錄組可寫
  • 使用sudo實用程序安裝和更新composer實用

最後Ø ption是典型的選擇和首選。它保留了權限(保守),並且只對安裝和升級等系統維護作業使用提升權限。

+1

我怎樣才能做你在子彈中描述的步驟? Linux命令不是我的專長 – Lykos

8

將sudo命令用於寫入文件夾根文件的任何命令。它爲我工作。

使用sudo的「你的命令」

+0

這可能是大錘的做法。 – dakab

1

我得到一個權限錯誤甚至通過sudo mv composer.phar /usr/local/bin/composer文件移動後試圖運行composer命令時。 sudo chmod 755 /usr/local/bin/composer爲我修好了東西。

0

該做的工作,我在CentOS 7

chown -R apache:apache path/to/composer 
chmod 755 path/to/composer 
+0

你能解釋一下它是如何澄清你的答案嗎?提前致謝! –

+0

第一個命令將apache指定爲文件夾的所有者。第二個命令使文件夾對於用戶和組「可讀,可寫,可執行」,對於其他可讀「可執行」。 – wkipo

8

這可能是這種情況,如果你已經直接下載composer.phar

而不是通過運行php composer-setup.php

使composer.phar可執行文件與以下命令,然後將其移至/usr/local/bin/composer或移動後

sudo chmod 755 composer.phar

作曲家setup.php將使這種變化對我們默認

+0

我做到了這一點,它爲我工作。在進入/ usr/local/bin或重新安裝作曲程序之前,不確定它是否在執行chmod。沒有意義,因爲它已經具有正確的權限,但它現在沒有錯誤。 – systematical

1

在Ubuntu 16.04 SRV

FIRST

sudo rm /usr/local/bin/composer 

cd ~/.cache/composer 
chmod 755 composer-temp.phar 
sudo mv composer-temp.phar /usr/local/bin/composer 
+0

這對我有用。謝謝 –