instalar composer cygwin composer-php

cygwin - instalar composer en windows



Compositor y cygwin (13)

Composer no se ejecuta correctamente en Cygwin si intenta instalarlo "globalmente".

Poner composer.phar en / usr / local / bin / composer, luego intentar ejecutarlo generará el error:

Could not open input file: /usr/local/bin/composer


¿Que tal este?

  1. En ~ / .bashrc, agregue: alias composer=''php c://your//path//to//composer.phar''
  2. Reinicie cygwin o vuelva a cargar el bashrc ejecutando source ~/.bashrc

Funciona para mí usando php.exe nativo de Cygwin y uno específico de Windows de XAMPP.


Acabo de tropezar con el mismo problema y encontré una solución. Publicándolo aquí, en caso de que alguna vez tenga que buscarlo nuevamente.

  1. Configure un directorio bin justo debajo de /home/my-username :

    cd ~ mkdir bin

  2. Mueva el composer.phar (o cualquier otro de esos ingeniosos nuevos PHP imps que están en aumento) en el directorio ~/bin y asegúrese de establecer su bit de ejecución :

    # Notice how I got rid of the superfluous `.phar` extension mv /path/to/composer.phar ~/bin/composer chmod +x ~/bin/composer

  3. Dígale a cygwin que incluya su directorio ~/bin en la ruta de búsqueda:

    Abra el archivo ~/.bash_profile y descomente el siguiente párrafo ...

    # Set PATH so it includes user''s private bin if it exists if [ -d "${HOME}/bin" ] ; then PATH="${HOME}/bin:${PATH}" fi

  4. Ahora, para la parte más importante:

    Un script de envoltura que ayuda a que el PHP nativo de Win resuelva las rutas de estilo Unix (lo que está causando el problema después de todo, ya que Windows no sabe cómo manejar /cygdrive/... rutas).

    cd ~/bin touch php chmod +x php

    Después de editar el script contenedor ~/bin/php debería leer:

    #!/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" "$@"

  5. Ahora reinicie su shell y debería invocar correctamente al intérprete de PHP cada vez que encuentre un #!/usr/bin/env php shebang. Simplemente emita un

    composer --help


Creo que lo que podría funcionar es construir un proxy en su lugar:

  • Ponga composer.phar en /usr/local/bin/composer.phar
  • Cree un proxy bash como / usr / local / bin / composer con lo siguiente:

    #!/bin/sh c:/path/to/php c:/path/to/composer.phar $@

  • chmod + x / usr / local / bin / composer


Estaba teniendo este problema. La mayoría de las respuestas estaban sobre mi cabeza pero lo arreglé sin problemas.

Paso 1) Reinstale Composer globalmente según https://getcomposer.org/download/

Paso 2) Déjalo en paz. Todas las cosas especiales que quieres hacer, no hagas eso.

Paso 3) Descargue la última versión de setup-xxx.exe desde https://cygwin.com/

Paso 4) Haz click con tu mouse.

NOTA: Durante el paso 5, sentirá un impulso repentino de leer las instrucciones, navegar por la web para obtener información y comenzar a marcar las casillas en el menú. No hagas eso

Paso 5) Haga clic en ''siguiente'' hasta que deje de preguntar. Observará sus configuraciones existentes, arreglará las cosas y agregará las dependencias faltantes.

Esto funcionó para mí.


Estaba teniendo problemas para que Composer trabajara en Cygwin y ninguna de las soluciones anteriores resolvía mi problema. Eventualmente, me topé con este comentario en la discusión de errores del compositor github:

Sí, TBH usando php de cygwin no es una gran idea, cygwin es un entorno demasiado diferente. Demasiados hacks que crean fallas ... En cualquier caso, cerrando aquí ya que no hay mucho que podamos hacer, me temo :)

No sé exactamente dónde se estaba metiendo el compositor / Cygwin / php, pero, en términos generales, mi problema era que tenía dos instalaciones conflictivas de PHP en variables ambientales, una de una instalación de WAMP y otra instalada con Cygwin. La instalación de Cygwin PHP parecía estar luchando con algún tipo de problema de ruta. Lo quité, usando solo el PHP WAMP, y el compositor funcionó en Cygwin muy bien.


La forma más fácil es instalar el compositor utilizando el instalador de Windows desde su sitio web y luego copiar los dos archivos ''compositor'' y ''composer.phar'' de "C: / ProgramData / Composer" en un directorio que se encuentra en la variable PATH. Por ejemplo, podría copiar los archivos en el directorio / bin / de cygwin. Después, puede volver a desinstalar la "versión de Windows" del compositor.

¡Actualizar! Esto es lo que hice:

  1. Instale PHP y los módulos necesarios del proyecto Cygwin Ports
  2. Descarga la última instantánea del compositor
  3. Cambie el nombre de ''composer.phar'' a ''compositor'' y guárdelo en / usr / local / bin
  4. Abra /bin/dash.exe y ejecute ''/ usr / bin / rebaseall''
  5. También si 4. te da un error, el compositor debería ejecutarse ahora

Lo arreglé agregando un archivo /usr/local/bin/composer :

nano /usr/local/bin/composer

Con el siguiente contenido:

#!/bin/bash /cygdrive/c/wamp/bin/php/php5.4.3/php "C:/wamp/bin/php/php5.4.3/composer"

Básicamente, debe llamar a PHP con una ruta de estilo de Windows, no una ruta de cygwin.


Lo que hice (muy simple):

  • Instala Composer normalmente con el instalador de Windows
  • Abra una consola de Cygwin, un composer tipos que verá algo como Could not open input file: /c/route/to/your/composer/installation/bin
  • Cree un alias composer=''composer.bat'' en su perfil de bash o bashrc o lo que sea
  • Hecho

Estoy ejecutando Windows 8.1


Lograr que el compositor trabaje globalmente dentro de Cygwin es un dolor en el trasero ...

Las soluciones que he encontrado con:

  1. No lo uses globalmente. Si está utilizando la CLI de PHP desde una instalación de Windows, no reconocerá las rutas de Linux que utiliza Cygwin.

    Lo que he hecho es ponerlo en el directorio base de todos los proyectos con los que uso el compositor y hacer ../composer.phar para ejecutarlo.

    Funciona bien de esta manera, y está disponible en todo el mundo ...

  2. Descarga y compila tus propios binarios de PHP en Cygwin ... Sí, una especie de exageración.


Prueba esto:

  • Instale Cygwin PHP y utilícelo para ejecutar compositor en Cygwin.

Puede elegir una de las dos formas de trabajar bien con PHP + Composer en Cygwin:

  1. Instale Cygwin PHP e instale composer.phar en Cygwin.

  2. Instale Windows PHP e instale Winodows Composer, luego llame luego desde Cygwin. (Windows XAMMP + Composer con alias en cmd)

Su problema se debe a que Cygwin Composer está arruinando el Windows PHP en Cygwin, por lo que no puede reconocer la ruta del archivo.

Después de instalar Cygwin PHP, el compositor se integrará con Cygwin PHP y luego se ajustará a la ruta de archivo de Cygwin.

Extensiones PHP Cygwin para uso del compositor:

php php-json php-mbstring php-phar php-zip php-posix

Puede instalar otra extensión de PHP cuando se necesita el paquete del compositor, como php-xmlwriter , php-tokenizer , php-ctype .

Guía de comandos de instalación:

Si ya ha instalado apt-cyg , hay un comando de instalación arriba:

apt-cyg install php php-json php-mbstring php-phar php-zip php-posix apt-cyg install php-xmlwriter php-tokenizer php-ctype

Luego instale Composer a través de Cygwin PHP:

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

Conclusión

Recomiendo usar Windows PHP + Windows Composer, y luego llamar a Cygwin, porque Cygwin PHP no es mucho más estable que Windows PHP.


Resolví el problema de esta manera en una configuración de Cygwin / XAMPP:

  • Instala composer.phar en el directorio php de XAMPP

  • Cree un script ejecutable de Bash llamado composer en el directorio php de XAMPP:

    #!/bin/bash script_dir=$(cygpath -w $(dirname $0)) php "$script_dir/composer.phar" $@

    Es importante utilizar cygpath -w para convertir la ruta a una ruta en forma de Windows.

  • Asegúrese de que el directorio php de XAMPP esté accesible en $PATH Cygwin:

    $ export PATH=$PATH:/cygdrive/i/dev/server/xampp/php


Ahora es posible llamar al composer desde cualquier lugar sin problemas:

$ composer -V Composer version 264f433ca3f007d39568b3722b4bf418f58ba15b


Te sugiero que uses babun, se basa en cygwin, pero puedes instalar package by pact, puedes hacer esto:

pacto instalar php php-json php-phar

php -r "readfile ('' https://getcomposer.org/installer '');" | php

entonces diviértete


Yo tuve el mismo problema. Después de leer las instrucciones finales del instalador del compositor, dice que la variable $ PATH se debe volver a cargar. Reinicié mi computadora y luego vinculé el contenedor Composer a /usr/local/bin .

Primero ubique el contenedor del compositor: /cygdrive/c/ProgramData/ComposerSetup/bin/composer

Luego, según la respuesta de Seldaek , después de probar un enlace simbólico que no funciona, hice:

nano /usr/local/bin/composer

#!/bin/sh /cygdrive/c/ProgramData/ComposerSetup/bin/composer $@

chmod +x /usr/local/bin/composer

Y está funcionando.