Symfony “错误”;无法删除";和作曲家一起流浪
我有一个流浪汉在运行Linux,我正在尝试安装Symfony 在命令Symfony “错误”;无法删除";和作曲家一起流浪,symfony,vagrant,Symfony,Vagrant,我有一个流浪汉在运行Linux,我正在尝试安装Symfony 在命令composer创建项目symfony/framework标准版。/“2.5.*”I出现错误: [RuntimeException] Could not delete ./.git/objects/pack/tmp_idx_llwUKb: 如果我尝试编写器更新另一个项目,我总是会出现这样的错误无法删除 有什么想法吗 编辑:对于另一个项目上的简单的sudo composer更新-vvv: - Installing son
composer创建项目symfony/framework标准版。/“2.5.*”
I出现错误:
[RuntimeException]
Could not delete ./.git/objects/pack/tmp_idx_llwUKb:
如果我尝试编写器更新另一个项目,我总是会出现这样的错误无法删除
有什么想法吗
编辑:对于另一个项目上的简单的sudo composer更新-vvv
:
- Installing sonata-project/admin-bundle (dev-master 8a022aa)
Failed to download sonata-project/admin-bundle from source: Could not delete /vagrant/crm_neo/vendor/sonata-project/admin-bundle/.git/objects/pack/tmp_idx_hchQhc:
Now trying to download from dist
- Installing sonata-project/admin-bundle (dev-master 8a022aa)
Failed: [RuntimeException] Could not delete /vagrant/crm_neo/vendor/sonata-project/admin-bundle/.git/objects/pack/tmp_idx_hchQhc:
[RuntimeException]
Could not delete /vagrant/crm_neo/vendor/sonata-project/admin-bundle/.git/o
bjects/pack/tmp_idx_hchQhc:
Exception trace:
() at phar:///usr/local/bin/composer/src/Composer/Util/Filesystem.php:193
Composer\Util\Filesystem->unlink() at phar:///usr/local/bin/composer/src/Composer/Util/Filesystem.php:151
Composer\Util\Filesystem->removeDirectoryPhp() at phar:///usr/local/bin/composer/src/Composer/Util/Filesystem.php:129
Composer\Util\Filesystem->removeDirectory() at phar:///usr/local/bin/composer/src/Composer/Util/Filesystem.php:35
Composer\Util\Filesystem->remove() at phar:///usr/local/bin/composer/src/Composer/Util/Filesystem.php:80
Composer\Util\Filesystem->emptyDirectory() at phar:///usr/local/bin/composer/src/Composer/Downloader/FileDownloader.php:108
Composer\Downloader\FileDownloader->doDownload() at phar:///usr/local/bin/composer/src/Composer/Downloader/FileDownloader.php:89
Composer\Downloader\FileDownloader->download() at phar:///usr/local/bin/composer/src/Composer/Downloader/ArchiveDownloader.php:35
Composer\Downloader\ArchiveDownloader->download() at phar:///usr/local/bin/composer/src/Composer/Downloader/DownloadManager.php:201
Composer\Downloader\DownloadManager->download() at phar:///usr/local/bin/composer/src/Composer/Installer/LibraryInstaller.php:156
Composer\Installer\LibraryInstaller->installCode() at phar:///usr/local/bin/composer/src/Composer/Installer/LibraryInstaller.php:87
Composer\Installer\LibraryInstaller->install() at phar:///usr/local/bin/composer/src/Composer/Installer/InstallationManager.php:152
Composer\Installer\InstallationManager->install() at phar:///usr/local/bin/composer/src/Composer/Installer/InstallationManager.php:139
Composer\Installer\InstallationManager->execute() at phar:///usr/local/bin/composer/src/Composer/Installer.php:548
Composer\Installer->doInstall() at phar:///usr/local/bin/composer/src/Composer/Installer.php:217
Composer\Installer->run() at phar:///usr/local/bin/composer/src/Composer/Command/UpdateCommand.php:128
Composer\Command\UpdateCommand->execute() at phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:252
Symfony\Component\Console\Command\Command->run() at phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:889
Symfony\Component\Console\Application->doRunCommand() at phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:193
Symfony\Component\Console\Application->doRun() at phar:///usr/local/bin/composer/src/Composer/Console/Application.php:135
Composer\Console\Application->doRun() at phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:124
Symfony\Component\Console\Application->run() at phar:///usr/local/bin/composer/src/Composer/Console/Application.php:84
Composer\Console\Application->run() at phar:///usr/local/bin/composer/bin/composer:43
require() at /usr/local/bin/composer:15
这件事曾经发生在我身上,结果发现我正在按作曲者的暂停时间
您可以采取以下措施来提高速度:
增加composer进程超时(默认值300)(如果以下设置有助于提高速度,则实际上不需要,但不会造成伤害)
将dist
设置为首选安装类型
为github启用https
协议,速度更快
~/.composer/config.json
{
"config": {
"process-timeout": 600,
"preferred-install": "dist",
"github-protocols": ["https"]
}
}
如果此后仍有问题,还可以清除composer的缓存:
rm -rf ~/.composer/cache
我们也遇到了一些问题。有几个人似乎有这个问题,但尚未提供解决方案。有关更多信息,您可以查看vagrant winnfsd的详细信息。在AWS上,我在部署Yii框架项目时遇到了此错误
/变量/应用程序/当前/供应商/
文件夹我删除了其中的所有内容,然后返回到我的文档根目录并运行composer update。它再次获取了所有的repo。在我的情况下,通过删除插件并重新创建框来解决问题。只需运行即可
sudo chmod -R 777 /folder/path
这将授予您对正在运行composer的文件夹的写入权限。
我知道这是一篇老文章,但它很有效,所以我必须与大家分享。我在配置机器时遇到了这个问题,机器是引导运行composer安装的。我只是简单地退出了虚拟机,在主机上的代码上运行了composer安装
,它就工作了
因此,如果在VM内部运行Composer时遇到此问题,请尝试从VM外部运行Composer
更新:正如下面的评论所指出的,由于本地环境和漫游环境之间的系统配置不同,这可能会给安装的不同版本的软件包带来一些问题,因此在尝试此操作时请谨慎。对我来说,这是由composer超时造成的。我检查了我的网速,发现网速降到了0.7M,几乎无法使用。在我重新连接wifi并使internet连接速度恢复正常后,错误就消失了。刚刚遇到了同样的问题
我看到了访问一些本地文件的问题。在我的例子中,目标目录位于“root”之下,而我不是root用户
解决方案
更改文件/目录的权限/所有者。
重新定义所有者:
sudo chown myuser:myuser-R/path/to
可能您所在的组缺少权限。
因此,尝试运行:
sudo chmod g+rwX-R/path/to
或者,如果“sudo”适合您,您也可以使用它运行命令(不推荐)。:)
附言。它不安全
UPD1
另一件事,您可能会发现解决问题根源的方法很有用,将编写器
二进制文件包装起来,以便始终代表某个用户运行它
$ cat /usr/local/bin/composer
#!/bin/bash
# run composer behalf www-data user
set -o pipefail
set -o errexit
set -o nounset
#set -o xtrace
[[ "${DEBUG:-}" = "true" ]] && set -o xtrace || true
composer_debug=$([[ 'true' != "${COMPOSER_DEBUG:-}" ]] || echo '-vvv' )
sudo -u www-data -- /usr/bin/composer ${composer_debug:-} $@
这与主机和来宾操作系统之间的文件夹同步有关,该文件夹可能只是从主机临时锁定
解决方法是从主机操作系统中删除有问题的.git
文件夹,或者重新启动计算机,然后再次启动composer安装
理想情况下,每个操作系统都有自己的依赖项和不同的二进制文件,因此您应该将您的/vendor
文件夹从rsync/vagrant文件夹共享中隔离出来,同样,您也可以对Nodejs项目上的/node\u模块执行相同的操作。适用于Windows用户
哇,我真不敢相信我花了多长时间才意识到这一点,不幸的是,这已经发生了多次,我终于写下了这封信,这样我和其他人下次就能很快恢复过来
只需使用Windows资源管理器删除/vendor/whatever\u project\u name
文件夹,而不是尝试从Vagrant命令行中删除它
然后运行composer update
重新安装依赖项
在我的例子中,我尝试了composer更新
,但是我得到了
[运行时异常]
无法删除…/vendor/bin/php解析:
尽管我使用的是Laravel框架,但这个问题是谷歌的第一个链接,所以我决定发布一个答案
我的解决方案是授予供应商的所有权
:sudo chown-R$USER:www-data-vendor/
和
sudo chown-R$USER:www-data-composer.json
更新:我的主机操作系统是Ubuntu16.04。另一件需要检查的事情是,Composer需要在它有权限访问的目录的上下文中运行
在我的例子中,我试图从/var/www发出一个createproject命令,目标是/var/www/html/var/www归root所有,/var/www/html归我执行Composer的用户(www-data)所有。我得到了以下错误;无法删除/var/www/html/:
从/var/www/html本身发出了相同的Composer命令,它工作得非常好。对我来说,它通过下载主页上的命令行帮助安装了一个(新)版本。我可以排除一些文件权限,因为我是chmod+R 0777的root用户,尽管我安装了virtualbox驱动器。无论如何,由于新版本可以工作,这意味着它是一个新版本,或者通过PHPHAR运行一个新版本,并且原始bin属于root
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
在本地Homestead环境中的Laravel Framework升级练习中,我试图更新项目依赖项(使用composer update
),但没有
Could not delete /home/vagrant/projects/projectname/vendor/kylekatarnls/update-helper/src/UpdateHelper
composer update --no-plugins
{
"config": {
"preferred-install": "source"
}
}
folders:
- map: ~/code/cs-cart-trial
to: /home/code/cs-cart-trial
type: "nfs"