我正在尝试更新 Composer,但没有任何运气!
我试过的:
$ composer self-update
[InvalidArgumentException] 命令“自我更新”未定义。
$ sudo -H composer self-update
[InvalidArgumentException] 命令“自我更新”未定义。
$ sudo apt-get install composer
读取包列表...完成构建依赖树读取状态信息...完成作曲家已经是最新版本。以下软件包已自动安装且不再需要: libntdb1 linux-headers-4.2.0-30 linux-headers-4.2.0-30-generic linux-image-4.2.0-30-generic linux-image-extra- 4.2.0-30-generic python-ntdb 使用 'apt-get autoremove' 删除它们。 0 升级,0 新安装,0 删除,10 未升级。
我正在尝试自我更新 Composer,因为每次尝试时我都面临以下问题:
$ composer update
使用包信息加载作曲家存储库更新依赖项(包括 require-dev)[RuntimeException] 无法在 http://packagist.org 中加载包 rmrevin/yii2-fontawesome:[UnexpectedValueException] 无法解析版本约束 v4.1 .: 无效版本字符串“v4.1”。 [UnexpectedValueException] 无法解析版本约束 v4.1。:无效的版本字符串“v4.1”。
我该如何解决这个问题?
我的 PHP 版本是:
php --version
PHP 5.6.11-1ubuntu3.4 (cli) 版权所有 (c) 1997-2015 PHP Group Zend Engine v2.6.0,版权所有 (c) 1998-2015 Zend Technologies with Zend OPcache v7.0.6-dev,版权所有 (c) 1999 -2015,Zend 科技
我的作曲家版本是:
composer --version
Composer 版本 @package_branch_alias_version@ (@package_version@) @release_date@
作为 Waqleh said,您必须卸载 PHP Composer 并重新安装。首先,执行:
sudo apt-get remove composer
然后,执行这些命令。 此处的校验和适用于 Composer 1.10.13,但在运行第一行时您将获得最新的 Composer(编辑此答案时为 2.0.4),因此请务必签入 { 1}:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '8a6138e2a05a8c28539c9f0fb361159823655d7ad2deecb371b04a83966c61223adc522b0189079e3e9e277cd72b8897') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
现在将文件 composer.phar 移动到路径中的目录(来自 Installation - Linux / Unix / macOS):
sudo mv composer.phar /usr/local/bin/composer
并从任何目录执行 composer
。就这样!
PS:如果您使用的是 PhpStorm(或者可能是其他 IDE),则必须将其关闭并再次打开。
自从我发布答案后,我学会了一种更简单的以编程方式安装 Composer 的新方法:How do I install Composer programmatically?
老答案:
根据@JimL 评论,我可以通过以下方式自我更新 Composer:
从包管理器 (apt) 中卸载 Composer。
我是按照官方文档安装的
现在它按预期工作。
alias composer='/usr/local/bin/composer'
最后还需要此命令才能让作曲家从任何目录工作。
安装最新版本:
删除您当前的 Composer 版本,例如 Ubuntu/Debian:
sudo apt-get remove composer
现在,前往 https://getcomposer.org/download/ 并将脚本粘贴到您的命令行中。这可确保您获得最新版本的 Composer(截至撰写本文时:v2.0.7)。
像这样:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '906a84df04cea2aa72f40b5f787e49f22d4c2f19492ac310e8cba5b96ac8b64115ac402c8cd292b8a03482574915d1a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
php -r "unlink('composer-setup.php');"
一段时间后,您可以更新并且不需要使用 sudo 前缀:
composer self-update
它对我有用(linux,Ubuntu 20.04):
sudo apt-get remove composer
sudo apt-get update
sudo apt-get install curl
sudo curl -s https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
/usr/local/bin/composer
。我会更新你的答案。
sudo mv composer.phar /usr/bin/composer
如果您有旧版本的 Composer,您需要遵循以下命令:
composer -V
sudo apt remove composer
cd /tmp
wget http://getcomposer.org/download/1.10.5/composer.phar
php composer.phar -V
sudo mv composer.phar /usr/bin/composer
sudo chmod 750 /usr/bin/composer
composer -V
chmod 755
您可以在设置 PHP Composer - php composer-setup.php
时指定安装目录和文件名,如下所示:
sudo php composer-setup.php --install-dir=/usr/bin --filename=composer
已经有很多答案了,想分享一下我的经验。
我使用的是 Ubuntu 20.04,我以前的 Composer 版本是 Composer 2.0.11,我的项目要求是 Composer 2.1.15。
我不需要删除任何东西,我只是使用了以下命令,它对我来说很好:)
https://i.stack.imgur.com/nDMnQ.png
我已经安装了 Homebrew,它为我节省了很多。
安装 brew,然后安装 brew install composer
以安装 Composer。
Debian 上的作曲家 2:
cd /usr/src
sudo apt-get install curl php7.2-cli
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
chmod 777 composer
nano ~/.bashrc
添加:PATH=$PATH/usr/local/bin/
source ~/.bashrc
验证:composer -v
通过以下步骤安装最新的 Composer:
卸载作曲家
sudo apt-get remove composer
运行以下命令
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '8a6138e2a05a8c28539c9f0fb361159823655d7ad2deecb371b04a83966c61223adc522b0189079e3e9e277cd72b8897') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
在 /usr/bin 目录中安装 Composer 以从任何地方运行 Composer
sudo php composer-setup.php --install-dir=/usr/bin --filename=composer
删除安装程序
php -r "unlink('composer-setup.php');"
检查或自我更新
composer self-update
/usr/bin
中?根据 unix.stackexchange.com/questions/8656/…,/usr/bin
不应用于通过包管理器以外的任何其他方式安装的二进制文件