安装Laravel时出现错误:“./ composer.json不可写。”

时间:2017-01-03 17:03:19

标签: laravel installation

这是我运行的命令

composer global require "laravel/installer"

这是我之后得到的文字和错误:

Changed current directory to /home/dimitar/.composer
./composer.json is not writable.

我正在运行Ubuntu 16.04 LTS和PHP 7以及Composer 1.3.0版,并从我的主文件夹运行此命令。

8 个答案:

答案 0 :(得分:29)

检查composer.json的所有者。

mongoose.model('customer', customerSchema);
mongoose.model('customer').find({ 'Name': 'XXX' }, function (err, articles) 
{
    var json = JSON.stringify(articles);
    console.log("stringify Log: " + json);
});

如果是'root',请运行:

ls -lh ~/.composer/composer.json

在.composer文件夹中,选中“缓存”文件夹所有者。 如果是'root',请重新运行命令,但将composer.json切换到缓存。 否则,您最终可能会收到“无法创建缓存目录”警告。

答案 1 :(得分:3)

错误说明了一切,权限存在问题。我想最简单的解决方法是运行此命令:

sudo chmod -R 775 /home/dimitar

答案 2 :(得分:2)

我认为你的作曲家文件中缺少这段代码,它不允许Packagist找到Laravel的包。

将它放在composer.json文件中,然后重试:

"repositories": {
    "packagist": { "url": "https://packagist.org", "type": "composer" }
 }

答案 3 :(得分:0)

检查composer.json的所有者。

ls -lh /home/<yourusername>/composer.json

如果它是'root',请运行:

sudo chown -R yourusername:yourusername /home/<yourusername>/.composer/composer.json

在.composer文件夹中,检查“ cache”文件夹所有者。如果它是“ root”,请重新运行以上命令,但将composer.json切换到缓存。否则,您可能会收到“无法创建缓存目录”警告。

答案 4 :(得分:0)

您的命令正在以vagrant用户的身份运行,该用户没有足够的权限。

它可以以www-data用户身份运行:

sudo -u www-data composer global require "laravel/installer"

答案 5 :(得分:0)

另一种情况。如果您使用的是双引导操作系统,请确保其他操作系统已关闭/正常关闭。例如在我的情况下,如果Windows 10处于休眠状态,Ubuntu操作系统就会发生此错误

答案 6 :(得分:-2)

sudo composer global package_name

示例:

sudo composer global require "laravel/installer"

您的密码

输入

答案 7 :(得分:-4)

您可以使用colorVector <- c("black", "red", "blue", "green", "orange", rep("red", 5), rep("blue", 5), rep("green", 4), rep("orange", 4), rep("red", 11), rep("blue", 14), rep("green", 14), rep("orange", 11)) jsarray <- paste0('["', paste(colorVector, collapse = '", "'), '"]') nodeStrokeJS <- JS(paste0('function(d, i) { return ', jsarray, '[i]; }')) radialNetwork(ToListExplicit(Data_tree, unname = TRUE ), linkColour = "#ccc", nodeColour = "#fff", nodeStroke = nodeStrokeJS, textColour = "#cccccc") 权限运行而无需更改文件夹权限,因为您在全局安装。