Menu

4.2. 如何使用脚本安装 Composer?

我们如何以编程的方式安装 Composer?

如下载页面所指出的,这个安装程序包含一个签名,当安装程序代码发生改变时,它会随之发生改变,因此不应该长期依赖。

还有另一种方法,就是使用只对 UNIX 实用程序工作的脚本:

#!/bin/sh

EXPECTED_SIGNATURE="$(wget -q -O - https://composer.github.io/installer.sig)"
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
ACTUAL_SIGNATURE="$(php -r "echo hash_file('SHA384', 'composer-setup.php');")"

if [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ]
then
    >&2 echo 'ERROR: Invalid installer signature'
    rm composer-setup.php
    exit 1
fi

php composer-setup.php --quiet
RESULT=$?
rm composer-setup.php
exit $RESULT

如果失败,脚本将退出并返回1,或者成功返回0,如果没有任何返回则是没有错误。

或者,如果你想使用这个安装程序副本安装,你可以从 GitHub 的历史中获取特定的版本。如果您足够信任 GitHub 服务器,提交hash就足以让它具有唯一性和真实性。例如:

wget https://raw.githubusercontent.com/composer/getcomposer.org/1b137f8bf6db3e79a38a5bc45324414a6b1f9df2/web/installer -O - -q | php -- --quiet

你可以在最后一次提交的基础上提交替换任何内容的 hash:
https://github.com/composer/getcomposer.org/commits/master

本文章首发在 Laravel China 社区
上一篇 下一篇
讨论数量: 0
发起讨论


暂无话题~