【问题标题】:How to install old version of composer [duplicate]如何安装旧版本的作曲家[重复]
【发布时间】:2020-04-07 16:39:14
【问题描述】:

我想安装旧版本的作曲家。我的命令是:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'baf1608c33254d00611ac1705c1d9958c817a1a33bce370c0595974b342601bd80b92a3f46067da89e3b06bff421f182') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php --version=1.4.1
php -r "unlink('composer-setup.php');"

但它没有安装作曲家。我检查了命令composer -v,但不幸的是它不起作用。我该怎么做?

【问题讨论】:

    标签: php composer-php


    【解决方案1】:

    这些命令将在当前工作目录的composer.phar 文件中安装composer 二进制文件。您可以尝试通过运行php composer.phar -v 命令来验证这一点。 composer 命令最喜欢指向系统中的某个全局安装 - 您需要将新的二进制文件移动到正确的位置,以便它可以被识别为全局命令 (see docs):

    mv composer.phar /usr/local/bin/composer
    

    如果你已经安装了 Composer,你应该可以使用self-update 命令降级到任何版本:

    composer self-update 1.4.1
    

    sudo -H composer self-update 1.4.1
    

    【讨论】:

    • 我安装了最新版本的作曲家,然后使用命令 composer self-update 1.4.1 更改为 1.4.1 版本,它成功了,谢谢
    • 当我的项目在 1.8.0 版成功运行时,我遇到了 compose 2.0 的问题。使用“composer self-update [version]”可以解决问题。真的像意外错误一样不知从何而来。
    • 这绝对是改变作曲家版本的方式。虽然我已经安装了版本 1,但如下:curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer --version=1.10.16
    • composer self-update 1.4.1 这会破坏 composer 并开始抛出错误 [ErrorException] Trying to access array offset on value of type null
    • 1.4.1 已经很老了,它可能不适用于最新的 PHP。如果您只想回到 1.x 行,请使用 composer self-update --1(如果您的作曲家不支持 --1 标志,请使用 composer self-update 1.10.17)。
    【解决方案2】:

    如果你来这里是为了从 composer 2.0 降级到 1.0

    composer self-update --1

    【讨论】:

    • 我认为sudo在大多数情况下是不必要的,因为它将.composer的所有者更改为root用户。
    【解决方案3】:

    Curl 可用于下载特定版本:

    curl -O "https://getcomposer.org/download/1.10.17/composer.phar"
    chmod a+x composer.phar
    sudo mv composer.phar /usr/local/bin/composer
    

    【讨论】:

      【解决方案4】:

      如果你已经安装了 composer v2,并且想另外安装 composer v1,你可以这样做:

      wget https://getcomposer.org/composer-1.phar
      chmod a+x composer-1.phar
      sudo mv composer-1.phar /usr/local/bin/composer1
      

      在旧项目上使用composer1

      cd <OLD-PROJECT>
      composer1 install
      

      【讨论】:

      • 这对我有用,因为我经常需要在旧项目上做一些工作。你只需要避免全局安装包。
      猜你喜欢
      • 2020-08-02
      • 1970-01-01
      • 2020-12-06
      • 2014-01-29
      • 2018-01-22
      • 2019-04-21
      • 2013-05-26
      • 2014-03-03
      • 2017-06-05
      相关资源
      最近更新 更多