Cygwin 作曲家及;西格温
如果您尝试“全局”安装Composer,它将无法在Cygwin中正确运行 将composer.phar放入/usr/local/bin/composer,然后尝试运行它将导致错误:Cygwin 作曲家及;西格温,cygwin,composer-php,Cygwin,Composer Php,如果您尝试“全局”安装Composer,它将无法在Cygwin中正确运行 将composer.phar放入/usr/local/bin/composer,然后尝试运行它将导致错误: Could not open input file: /usr/local/bin/composer 让作曲家在Cygwin的全球范围内工作是件痛苦的事 我提出的解决方案如下: 不要在全球范围内使用它。如果您在Windows安装中使用PHP CLI,它将无法识别Cygwin使用的Linux路径 我所做的是将它放在我
Could not open input file: /usr/local/bin/composer
让作曲家在Cygwin的全球范围内工作是件痛苦的事 我提出的解决方案如下:
我认为可行的方法是构建一个代理:
- 将composer.phar放入/usr/local/bin/composer.phar
- 使用以下命令创建bash代理/usr/local/bin/composer:
#!/bin/sh c:/path/to/php c:/path/to/composer.phar $@
- chmod+x/usr/local/bin/composer
- 在
下设置一个/home/my username
目录:bin
cd ~ mkdir bin
- 移动
(或任何其他正在兴起的漂亮新PHP插件) 进入composer.phar
目录,并确保设置它的执行位:~/bin
# Notice how I got rid of the superfluous `.phar` extension mv /path/to/composer.phar ~/bin/composer chmod +x ~/bin/composer
- 告诉
在搜索路径中包含您的cygwin
目录: 打开文件~/bin
并取消对以下段落的注释~/.bash\u profile
# Set PATH so it includes user's private bin if it exists if [ -d "${HOME}/bin" ] ; then PATH="${HOME}/bin:${PATH}" fi
- 现在,最重要的部分是:
帮助Win的原生PHP解析Unix样式路径的包装器脚本(导致
毕竟,问题在于Windows不知道如何处理
路径) 编辑包装器脚本后,/cygdrive/…
应为:~/bin/php
#!/bin/bash # e.g. php="/cygdrive/c/Program Files (x86)/php/php.exe" php="/path/to/php.exe" for ((n=1; n <= $#; n++)); do if [ -e "${!n}" ]; then # Converts Unix style paths to Windows equivalents path="$(cygpath --mixed ${!n} | xargs)" case 1 in $(( n == 1 )) ) set -- "$path" "${@:$(($n+1))}";; $(( n < $# )) ) set -- "${@:1:$((n-1))}" "$path" ${@:$((n+1)):$#};; *) set -- "${@:1:$(($#-1))}" "$path";; esac fi done "$php" "$@"
- 从中安装PHP和所需的模块
- 下载
- 将“composer.phar”重命名为“composer”,并将其保存到/usr/local/bin
- 打开/bin/dash.exe并运行“/usr/bin/rebaseal”
- 如果4。给您一个错误,composer应该立即运行
- 将
安装到XAMPP的composer.phar
目录中php
- 在XAMPP的
目录中创建名为php
的可执行Bash脚本:composer
使用#!/bin/bash script_dir=$(cygpath -w $(dirname $0)) php "$script_dir/composer.phar" $@
将路径转换为Windows窗体中的路径非常重要cygpath-w
- 确保XAMPP的
目录可以在Cygwin的php
中访问:$PATH
$ export PATH=$PATH:/cygdrive/i/dev/server/xampp/php
- 刚刚被同样的问题绊倒并找到了解决方案。把它贴在这里,以防万一我再查一遍
最简单的方法是使用Windows installer从其网站安装composer,然后将两个文件“composer”和“composer.phar”从“C:\ProgramData\composer”复制到PATH变量中的目录中。例如,您可以将文件复制到cygwin的/bin/目录中。之后,您可以再次卸载composer的“Windows版本” 更新我就是这么做的:
我在Cygwin/XAMPP设置中解决了这样的问题:
现在,您可以在任何地方调用
composer
,而不会出现任何问题:
$ composer -V
Composer version 264f433ca3f007d39568b3722b4bf418f58ba15b
我通过添加一个
/usr/local/bin/composer
文件修复了它:
nano /usr/local/bin/composer
内容如下:
#!/bin/bash
/cygdrive/c/wamp/bin/php/php5.4.3/php "C:\wamp\bin\php\php5.4.3\composer"
基本上,您必须使用Windows风格的路径来调用PHP,而不是cygwin路径。我所做的(非常简单):
- 通常使用Windows安装程序安装Composer
- 打开Cygwin控制台类型
您将看到类似composer
无法打开输入文件:/c/route/to/your/composer/installation/bin的内容
- 在您的bash配置文件或bashrc或其他文件上创建别名
composer='composer.bat'
- 完成
我正在运行Windows 8.1,我也遇到了同样的问题。从composer安装程序中读取最后一条指令后,它说应该重新加载$PATH变量。我重新启动了计算机,然后将Composer bin链接到
/usr/local/bin
首先找到composer容器:
/cygdrive/c/ProgramData/composer设置/bin/composer
#!/bin/sh
/cygdrive/c/ProgramData/ComposerSetup/bin/composer $@
然后根据答案,在尝试了一个不起作用的符号链接后,我做了:
nano/usr/local/bin/composer
#!/bin/sh
/cygdrive/c/ProgramData/ComposerSetup/bin/composer $@
chmod+x/usr/local/bin/composer
#!/bin/sh
/cygdrive/c/ProgramData/ComposerSetup/bin/composer $@
它正在工作。这个怎么样
alias composer='php c:\\your\\path\\to\\composer.phar'
source~/.bashrc
我可以使用Cygwin的原生php.exe和XAMPP的Windows专用php.exe。我建议您使用babun,它基于Cygwin,但您可以通过pact安装软件包,您可以执行以下操作: pact安装php json php phar php-r“readfile(“”);”php
那就尽情享受吧。我遇到了这个问题。大多数的回答都让我不知所措,但我毫无问题地解决了 步骤1)按照以下步骤全局重新安装Composer 第二步)别管它。所有你想做的特殊事情,不要那样做 步骤3)从下载最新的setup-xxx.exe 步骤4)用鼠标单击它 注意:在第五步中,你会突然感觉到阅读说明的冲动,浏览网页获取信息,并开始勾选菜单上的小方框。不要那样做 步骤5)单击“下一步”,直到它停止询问。它将查看您现有的 设置、修复和添加任何缺少的依赖项
这对我很有效。我在让Composer在Cygwin中工作时遇到了困难,上面的解决方案都不能解决我的问题。最终,我在作曲家github bugs的讨论中偶然发现: 是的,使用cygwin的php不是一个好主意,cygwin的环境太不一样了。造成失败的黑客太多了。。在任何情况下,在这里关闭,就像在那里关闭一样
php
php-json
php-mbstring
php-phar
php-zip
php-posix
apt-cyg install php php-json php-mbstring php-phar php-zip php-posix
apt-cyg install php-xmlwriter php-tokenizer php-ctype
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
chmod +x ./composer.phar
mv ./composer.phar /usr/bin/composer
composer -v