无法通过作曲家安装 laravel 安装程序

Posted

技术标签:

【中文标题】无法通过作曲家安装 laravel 安装程序【英文标题】:Can't install laravel installer via composer 【发布时间】:2018-02-13 22:55:39 【问题描述】:

我正在尝试在我的 Ubuntu PC 上使用 composer 安装 laravel 安装程序,但在安装过程中出现此错误。 `您的需求无法解析为一组可安装的软件包。

  Problem 1
    - laravel/installer v1.4.1 requires ext-zip * -> the requested php extension zip is missing from your system.
    - laravel/installer v1.4.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - Installation request for laravel/installer ^1.4 -> satisfiable by laravel/installer[v1.4.0, v1.4.1].

  To enable extensions, verify that they are enabled in those .ini files:
    - /etc/php/7.0/cli/php.ini
    - /etc/php/7.0/cli/conf.d/10-opcache.ini
    - /etc/php/7.0/cli/conf.d/10-pdo.ini
    - /etc/php/7.0/cli/conf.d/20-calendar.ini
    - /etc/php/7.0/cli/conf.d/20-ctype.ini
    - /etc/php/7.0/cli/conf.d/20-exif.ini
    - /etc/php/7.0/cli/conf.d/20-fileinfo.ini
    - /etc/php/7.0/cli/conf.d/20-ftp.ini
    - /etc/php/7.0/cli/conf.d/20-gettext.ini
    - /etc/php/7.0/cli/conf.d/20-iconv.ini
    - /etc/php/7.0/cli/conf.d/20-json.ini
    - /etc/php/7.0/cli/conf.d/20-phar.ini
    - /etc/php/7.0/cli/conf.d/20-posix.ini
    - /etc/php/7.0/cli/conf.d/20-readline.ini
    - /etc/php/7.0/cli/conf.d/20-shmop.ini
    - /etc/php/7.0/cli/conf.d/20-sockets.ini
    - /etc/php/7.0/cli/conf.d/20-sysvmsg.ini
    - /etc/php/7.0/cli/conf.d/20-sysvsem.ini
    - /etc/php/7.0/cli/conf.d/20-sysvshm.ini
    - /etc/php/7.0/cli/conf.d/20-tokenizer.ini
  You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.
`

出现错误然后我使用此评论:

composer global require "laravel/installer"

【问题讨论】:

【参考方案1】:

它说它需要zip扩展

laravel/installer v1.4.0 需要 ext-zip...

安装使用(安装默认版本):

sudo apt install php-zip

或者,如果您正在运行特定版本的 PHP:

# For php v7.0
sudo apt-get install php7.0-zip

# For php v7.1
sudo apt-get install php7.1-zip

# For php v7.2
sudo apt-get install php7.2-zip

# For php v7.3
sudo apt-get install php7.3-zip

# For php v7.4
sudo apt-get install php7.4-zip

【讨论】:

完美运行,但这不应该在作曲家安装中吗?这是一个依赖管理器......缺少一个依赖。也许是 Cannonical 没有包含在内。 @TylerChristian,composer install 管理 PHP 依赖,php7.0-zip 是系统包。它不能由作曲家解决。理论上,也可以添加安装系统包的钩子,但它需要 sudo 访问权限,这是非常糟糕的做法。 requires ext-zip 是一个非常无用的消息。至少应该说requires php-zip or phpX.X-zip 对于 mac os 用户,请改用 Homebrew。您不需要以 root 身份运行 brew 命令。示例:brew install php7.0-zip【参考方案2】:

对于使用 CATALINA 的 MAC 用户

首先,安装自制软件。 然后说

brew install php@7.3
brew link php@7.3

重启控制台并运行 laravel 安装程序

【讨论】:

这个问题是关于 Ubuntu,而不是 Mac。 请为您的答案添加一些进一步的解释 - 此命令如何解决给定的问题?在不先安装其他程序的情况下简单地安装给定的扩展程序有什么问题吗? 补充,brew link php@7.3 没用。它给了我一个警告。我需要使用brew link php@7.3 --force 强制它。【参考方案3】:

在我用过的centos 7上:

yum install php-pecl-zip

因为任何其他解决方案都不适合我。

【讨论】:

这个问题是关于 Ubuntu,而不是 CentOS。 这正是我想要的,谢谢。 yum install php-zip 在 CentOS 7 上不起作用。 对于特定版本的 php,在“yum install”之后使用以下软件包名称之一:php54-php-pecl-zip php55-php-pecl-zip php56-php-pecl-zip php70-php-pecl-zip php71-php-pecl-zip php72-php-pecl-zip php73-php-pecl-zip php74-php-pecl-zip php80-php-pecl-zip【参考方案4】:

对于 PHP7.1 安装这个

sudo apt-get install php7.1-zip

【讨论】:

【参考方案5】:

如果您在使用 ma​​cOS Catalina 时遇到此问题,我建议您执行以下步骤:

    安装 Homebrew(如果您还没有这样做的话):前往 brew.sh 或直接运行以下命令:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

    运行brew install php@7.3

    更新您的 $PATH 变量以包含新安装的 php 版本:

echo 'export PATH="/usr/local/opt/php@7.3/bin:$PATH"' >> ~/.zshrc

echo 'export PATH="/usr/local/opt/php@7.3/sbin:$PATH"' >> ~/.zshrc

    重新加载您的 shell 首选项脚本 $ source ~/.zshrcsource ~/.bashrc

    最后安装laravel:composer global require laravel/installer

【讨论】:

在第 4 步之前,打开一个新的终端窗口,否则新的 $PATH 将不可用。 这个问题是关于 Ubuntu,而不是 Mac。 但是我来这里是为了寻找这个错误,我在 OS X Catalina 上。这个答案很有帮助。【参考方案6】:

对于Ubuntu 16.04,我已将此命令用于PHP7.2,它对我有用。

sudo apt-get install php7.2-zip

【讨论】:

【参考方案7】:

Centos 7 与 PHP7.2:

sudo yum --enablerepo=remi-php72 install php-pecl-zip

【讨论】:

这个问题是关于 Ubuntu,而不是 CentOS。【参考方案8】:
V=`php -v | sed -e '/^PHP/!d' -e 's/.* \([0-9]\+\.[0-9]\+\).*$/\1/'` \
sudo apt-get install php$V-zip

【讨论】:

请添加一些 cmets 来解释您的代码如何回答问题,以改进此答案。【参考方案9】:

对于带有 Macports 的 Mac,

# port install php71-zip

【讨论】:

这个问题是关于 Ubuntu,而不是 Mac。【参考方案10】:

适用于 Ubuntu 18.04 LTS 中的 PHP 7.2

sudo apt-get install php7.2-zip

像魅力一样工作

【讨论】:

【参考方案11】:

了解你的 php 版本

php -v 

对于 php 7.3.0

sudo apt-get install php7.3-zip

【讨论】:

我收到此错误 E:无法找到包 php7.3-zip E:无法通过 glob 'php7.3-zip' 找到任何包 E:找不到任何包通过正则表达式'php7.3-zip'【参考方案12】:

zip extension is missing,你可以通过简单的运行以下命令来避免这个错误,它会默认使用版本

sudo apt-get install php-zip

如果您需要任何特定版本,您需要提及您的php的特定版本,假设我需要安装X版本的php-zip,那么命令将是。

sudo apt-get install phpX-zip  

用你需要的版本替换X,在我的例子中,它是X = 7.3

【讨论】:

【参考方案13】:

对于 macOS 用户,您可以改用 Homebrew:

# For php v7.0
brew install php@7.0

# For php v7.1
brew install php@7.1

# For php v7.2
brew install php@7.2

# For php v7.3
brew install php@7.3

# For php v7.4
brew install php@7.4

【讨论】:

请在您的答案中添加一些进一步的解释 - 这个命令列表如何解决给定的问题?【参考方案14】:

我正在使用 WSL 和 ubuntu 16.04 LTS 版本以及 php 7.3 和 laravel 5.7

sudo apt-get install php7.3-zip

为我工作

【讨论】:

以上是关于无法通过作曲家安装 laravel 安装程序的主要内容,如果未能解决你的问题,请参考以下文章

通过作曲家 InvalidArgumentException 安装 laravel

XAMPP:作曲家返回错误而不是创建新的laravel项目

使用作曲家安装 Laravel 4 包

Laravel - 即使 PHP 版本是必需的,也无法安装包

作曲家更新:您的要求无法解决为一组可安装的软件包

由于证书问题无法安装作曲家