【问题标题】:Unable to write keys.dev.pub to: /home/ubuntu/.composer无法将 keys.dev.pub 写入:/home/ubuntu/.composer
【发布时间】:2017-07-13 19:49:09
【问题描述】:

我正在按照说明安装 composer (found here)。我刚刚跑了php composer-setup.php这行,终端就返回了:

All settings correct for using Composer
Unable to write keys.dev.pub to: /home/ubuntu/.composer

我正在 Vagrant 中安装到 Ubuntu 虚拟机中。

【问题讨论】:

  • 看起来是权限问题

标签: ubuntu terminal vagrant key composer-php


【解决方案1】:

如果您使用sudo 安装了composer,或者使用与.composer 文件夹所有者不同的用户(如@PhoneixS 所述)

检查如果是这种情况,通过运行:

ls -al ~/.composer  

可能会返回

ls -al .composer 
total 16
drwxr-xr-x  2 root root 4096 May  1 15:04 .
drwxr-xr-x 53 user-name  user-group  4096 May  1 15:07 ..
-rw-r--r--  1 root root  799 May  1 15:04 keys.dev.pub
-rw-r--r--  1 root root  799 May  1 15:04 keys.tags.pub

那么

  • 如果 .composer 的所有者是 root 用户,则运行 使用 sudo 的命令,作为休闲 sudo php composer-setup.php ,将解决问题
  • 如果所有者是 root 但您不想以 root 身份运行 composer,那么您可以将 .composer 的 owner-user:owner-group 更改为当前用户,如下所示:sudo chown -R owner-user:owner-group ~/.composer
  • 如果 .composer 的所有者是不同于用户名的用户,那么您可以使用 su 作为该特定用户运行命令

【讨论】:

  • 完美答案!
  • 关于如何诊断和解决问题的良好解释和替代方案。我建议先放置第二个选项(更改用户名),因为我认为这是最好的选择。
【解决方案2】:

在您的项目目录中安装 Composer 时,您可能会收到此错误。 我使用的是 Ubuntu 16,安装时遇到了同样的问题


使用 Composer 的所有设置都正确无法将 keys.dev.pub 写入:/home/ubuntu/.composer

第 1 步:只需转到您的项目目录并运行命令

sudo su

第 2 步:然后尝试使用以下命令安装 Composer

curl -sS https://getcomposer.org/installer | php

【讨论】:

  • sudo(根据接受的答案)对我不起作用,而sudo su,根据sunil KV 的建议,实际上解决了这个问题
  • 在项目目录中安装 composer 的全部意义在于它不应该推荐超级用户权限。
  • 这是一个糟糕的答案,可能只是过时了。您不应该将作曲家安装为root,这正是这样做的。您应该修复/home/ubuntu/.composer 上的文件权限,并以ubuntu 用户身份运行与composer 相关的任何操作。
  • 我已将其删除为实际答案。正如许多其他用户所说,以sudo 运行东西是危险的,而 Composer 旨在安装 不需要sudo
【解决方案3】:

您当前的用户似乎存在权限问题。你可以试试这个。

sudo chown $USER -R /home/$USER/.composer

注意:$USER 在 Linux 类型系统中总是指当前用户。

【讨论】:

    【解决方案4】:

    试试

    sudo apt-get install composer
    

    【讨论】:

      【解决方案5】:

      如果您之前安装的 composer 未完全删除,或者您使用与 .composer 文件夹所有者不同的用户运行安装程序,则可能会发生这种情况。

      您可以重命名旧文件夹(以进行备份),然后重试:

      mv ~/.composer ~/.composer.old
      

      这比使用 sudo 执行未知的风险要小。

      【讨论】:

      • 将此标记为实际答案,因为它在大多数情况下都可以解决问题,并且不需要 root 权限。以sudo 运行的东西很快就会给新用户带来麻烦 - 将其移至顶部以希望阻止这种情况发生。
      • 就我而言mv ~/.config/composer/ ~/.config/composer.old/
      猜你喜欢
      • 2018-08-07
      • 1970-01-01
      • 1970-01-01
      • 2013-04-23
      • 1970-01-01
      • 2020-08-28
      • 2013-10-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多