¿Cómo ejecutar Composer desde cualquier lugar?

79

Acabo de instalar el compositor en mi /usr/bincarpeta, por lo que cuando ejecuto desde esa carpeta php composer.phar, obtengo la información de ayuda sobre el compositor. Pero, cuando intento ejecutar lo mismo desde otra carpeta, obtengo Could not open input file: composer.phar.

¿Cómo llamar php composer.phardesde todas partes sin problemas?

ziiweb
fuente

Respuestas:

55

composer.phar se puede ejecutar solo, no es necesario prefijarlo con php. Esto debería resolver su problema (estando en la diferencia del $ PATH de bash y el include_path de php).

Maerlyn
fuente
10
También puede cambiarle el nombre a solo compositor y luego simplemente puede hacerlo composer install.
Seldaek
mi composer.phar está instalado. (Verifiqué usando php composer.phar) Pero no obtengo la ubicación. ¿Cómo encontrar la ruta de ubicación de composer.phar? Estoy usando UBUNTU.
Nana Partykar
Si puede ejecutar php composer.phar, probablemente esté en su directorio actual.
Maerlyn
25
Creo que quieres un acceso global a tu composer.phar. Muévelo y crea un alias: sudo mv composer.phar /usr/local/bin/entonces alias composer='/usr/local/bin/composer.phar'.
Stéphane
Hice un sudo mv composer.phar /usr/local/bin/composer. Después de eso, puedo usarlo en composer installcualquier lugar.
Markus Zeller
111

Puede hacer una instalación global ( guía archivada ):

Dado que Composer trabaja con el directorio de trabajo actual, es posible instalarlo en todo el sistema.

  1. Cambie a un directorio en su ruta como cd /usr/local/bin
  2. Obtener Composer curl -sS https://getcomposer.org/installer | php
  3. Hacer ejecutable el phar chmod a+x composer.phar
  4. Cambiar a un directorio de proyecto cd /path/to/my/project
  5. Usa Composer como lo harías normalmente composer.phar install
  6. Opcionalmente, puede cambiar el nombre del a para que sea más fácilcomposer.phar composer

Actualización : a veces no puede o no quiere descargar en /usr/local/bin(algunos han experimentado problemas de permisos de usuario o acceso restringido), en este caso puede probar esto

  1. Terminal abierto
  2. curl -sS http://getcomposer.org/installer | php -- --filename=composer
  3. chmod a+x composer
  4. sudo mv composer /usr/local/bin/composer

Actualización 2 : para Windows 10 y PHP 7 recomiendo este tutorial . Personalmente instalé Visual C ++ Redistributable para Visual Studio 2017 x64 antes de PHP 7.3 VC15 x64 versión Non Thread Safe (verifique qué versiones de ambos en la página PHP para Windows , menú lateral). Lea atentamente y tal vez la sección de habilitar extensiones podría diferir (en extension=curllugar de extension=php_curl.dll). Funciona como un amuleto, ¡buena suerte!

Quantme
fuente
3
No notan que necesita cambiar el nombre del archivo para que se llame con solo una composerbuena nota aquí.
Andrew Atkinson
2
@AndrewAtkinson Alternativamente, puede cambiar el nombre antes de descargar concurl -sS https://getcomposer.org/installer | php -- --filename=composer
quantme
Solo quiero dar las gracias por esto. He tenido problemas para comprender la lógica subyacente, y getcomposer.org en sí no hace un buen trabajo al explicar esto, ¡así que gracias! Lo tengo funcionando.
Traza DeCoy
28

Cómo ejecutar Composer desde cualquier lugar (en MacOS X) a través de Terminal

Antecedentes:

En realidad, en el sitio web de getComposer se indica claramente que, instale Composer utilizando el siguiente comando curl

curl -sS https://getcomposer.org/installer |php

Y ciertamente hace lo que está destinado a hacer. Y luego dice que mueva composer.phar al directorio / usr / local / bin / composer y luego composer estará disponible globalmente, ¡usando la siguiente línea de comando en la terminal!

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

Pregunta:

Entonces, el problema que me lleva a Google es cuando ejecuté la línea anterior en Mac OS X Terminal, decía eso, Permiso denegado. Como sigue:

mv: rename composer.phar to /usr/local/bin/composer: Permission denied

Responder:

El siguiente enlace me llevó a la solución como un encanto y estoy agradecido por eso. Lo que acabo de perder fue el comando sudo antes de la línea de comando "Mover" indicada anteriormente. Ahora mi comando Mover es el siguiente:

sudo mv composer.phar /usr/local/bin/composer
Password:

Le solicita directamente que se autentique y vea si está autorizado. Entonces, si ingresa una contraseña válida, entonces se realizará el movimiento, y puede verificar si composer está instalado globalmente, usando la siguiente línea.

composer about

Espero que esta respuesta te haya ayudado a ampliar tu visión y finalmente resolver tu problema.

¡Salud!

Randika Vishman
fuente
1
> Y luego dice que mueva composer.phar al directorio / usr / local / bin / composer /usr/local/bin/composerno es un directorio; es el nuevo nombre del archivo que se llamaría composer.pharantes.
XedinUnknown
1
Me funcionó en macOS Sierra.
Vahid Amiri
17

Primero instale el compositor como se menciona en la documentación de instalación del compositor . Acabo de agregar aquí como referencia.

curl -sS https://getcomposer.org/installer | php

y luego mueva el archivo a '/ usr / local / bin'.

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

Intenta correr composer -V. Si obtiene una salida comoComposer version seguido del número de versión, entonces el compositor se instaló correctamente.

Si obtiene algún resultado como composer: command not found, use el siguiente comando para crear un alias para el compositor. Entonces se ejecutará globalmente.

alias composer='/usr/local/bin/composer'

Ahora, si ejecuta composer -Vsignifica que obtendrá el resultado Composer Versionseguido del número de versión.

Espero que esto ayude a alguien.

Mahendran Sakkarai
fuente
7

Simplemente ejecute este comando para instalar composer globalmente

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
Tahir Yasin
fuente
Esto resuelve mi problema al solicitar la contraseña de sudoer. Gracias
MadzQuestioning
6

Simplemente muévalo a la /usr/local/bincarpeta y elimine la extensión

sudo mv composer.phar /usr/local/bin/composer
LeoSarli
fuente
Justo lo que necesitaba, gracias
Bobby Axe
2

Para MAC y LINUX utilice el siguiente procedimiento:

Agregue el directorio donde se encuentra composer.phar a su RUTA:

export PATH=$PATH:/yourdirectory

y luego cambie el nombre de composer.phar a composer:

mv composer.phar composer
Tadej
fuente
1

Para ejecutarlo desde otra ubicación, puede usar el programa composer que viene con el programa. Básicamente es un script bash. Si no lo tiene, puede crear uno simplemente copiando el siguiente código en un archivo de texto

#!/bin/sh

dir=$(d=$(dirname "$0"); cd "$d" && pwd)

if command -v 'cygpath' >/dev/null 2>&1; then
  dir=$(cygpath -m $dir);
fi

dir=$(echo $dir | sed 's/ /\ /g')
php "${dir}/composer.phar" $*

Luego guarde el archivo dentro de su carpeta bin y asígnele el nombre compositor sin ninguna extensión de archivo. Luego agregue la carpeta bin a su variable de entorno f

Muhammad Raihan Muhaimin
fuente
1

Puede hacer una instalación global simple para ejecutarlo desde cualquier lugar

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

El sitio web https://getcomposer.org/doc/00-intro.md#globally recomienda esta forma. Funcionó bien en Ubuntu 14.04 sin problema. De esta manera no necesita hacer un ejemplo php compomser.phar show, simplemente lo hace composer show, en cualquier directorio con el que esté trabajando.

usuario3257693
fuente
0

Algo de esto puede deberse al sistema operativo que está ejecutando su servidor. Recientemente hice una migración a un nuevo entorno de alojamiento con Ubuntu. Agregar este alias alias composer="/path/to/your/composer"a .bashrc o .bash_aliases no funcionó al principio por dos razones:

El servidor estaba ejecutando csh, no bash, de forma predeterminada. Para comprobar si esto es un problema en su caso, ejecute echo $0. Si lo que se devuelve es -csh, querrá cambiarlo a bash, ya que algunos procesos ejecutados por Composer fallarán al usar csh / tcsh .

Para cambiarlo, primero verifique si bash está disponible en su servidor ejecutando cat /etc/shells. Si, en la lista devuelta, ve bin/bash, puede cambiar el valor predeterminado a bash ejecutando chsh -s /bin/csh.

Ahora, en este punto, debería poder ejecutar Composer, pero normalmente, en Ubuntu, tendrá que cargar el script en cada sesión obteniendo sus scripts Bash ejecutando source ~/.bashrco source ~/.bash_profile. Esto se debe a que, en la mayoría de los casos, Ubuntu no cargará su script Bash, ya que se carga .profilecomo el script predeterminado.

Para cargar sus scripts Bash cuando abre una sesión, intente agregar esto a su .profile (esto es si su script Bash es .bashrc; modifíquelo en consecuencia si .bash_profile u otro):

if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi

Para probar, cierre su sesión y vuelva a cargar. Si funciona correctamente, se está ejecutando composer -vo which composerdebería comportarse como se esperaba.

karolus
fuente