Як запустити композитора з будь-якого місця?


79

Я щойно встановив composer у свою /usr/binпапку, тому, коли з цієї папки я запускаю, php composer.pharя отримую довідкову інформацію про композитора. Але, коли я намагаюся запустити те ж саме з іншої папки, яку я отримую Could not open input file: composer.phar.

Як зателефонувати php composer.pharзвідусіль без проблем?

Відповіді:


55

composer.phar можна запустити самостійно, не потрібно додавати префікс до php. Це повинно вирішити вашу проблему (знаходячись у різниці між $ PATH та bash $ include_path).


10
Ви також можете перейменувати його на просто композитор, а потім можете просто зробити composer install.
Селдак

мій composer.phar встановлений. (Я перевірив за допомогою php composer.phar) Але, я не отримую розташування. Як знайти шлях до розташування composer.phar? Я використовую UBUNTU.
Nana Partykar

Якщо ви можете запустити php composer.phar, то це, мабуть, у вашому поточному каталозі.
Maerlyn,

25
Я думаю, ви хочете отримати загальний доступ до вашого composer.phar. Перемістіть його та зробіть псевдонім: sudo mv composer.phar /usr/local/bin/тоді alias composer='/usr/local/bin/composer.phar'.
Стефан,

Я зробив sudo mv composer.phar /usr/local/bin/composer. Після цього я можу використовувати будь- composer installде.
Маркус Целлер

111

Ви можете зробити глобальну установку ( заархівоване керівництво ):

Оскільки Composer працює з поточним робочим каталогом, можна встановити його загальносистемним способом.

  1. Перейдіть у каталог на своєму шляху, як cd /usr/local/bin
  2. Отримати композитора curl -sS https://getcomposer.org/installer | php
  3. Зробіть phar виконуваним chmod a+x composer.phar
  4. Перейдіть у каталог проекту cd /path/to/my/project
  5. Використовуйте Composer як зазвичай composer.phar install
  6. За бажання ви можете перейменувати на, щоб полегшитиcomposer.phar composer

Оновлення : Іноді ви не можете або не хочете завантажувати за адресою /usr/local/bin(у деяких виникають проблеми з дозволами користувача або обмежений доступ), у цьому випадку ви можете спробувати це

  1. Відкрити термінал
  2. curl -sS http://getcomposer.org/installer | php -- --filename=composer
  3. chmod a+x composer
  4. sudo mv composer /usr/local/bin/composer

Оновлення 2 : Для Windows 10 та PHP 7 я рекомендую цей підручник . Особисто я встановив Visual C ++ Redistributable для Visual Studio 2017 x64 до версії PHP 7.3 VC15 x64 Non Thread Safe (перевірте, які версії обох на сторінці PHP для Windows , бічне меню). Уважно прочитайте, і, можливо, розділ enable-extensions може відрізнятися ( extension=curlа не extension=php_curl.dll). Працює як оберіг, удачі!


3
Вони не зазначають, що вам потрібно перейменувати файл, щоб його можна було викликати просто composer- хороша примітка тут.
Ендрю Аткінсон,

2
@AndrewAtkinson Як варіант, ви можете перейменувати перед завантаженням за допомогоюcurl -sS https://getcomposer.org/installer | php -- --filename=composer
quantme

Просто хочу подякувати за це. У мене були проблеми з розумінням основної логіки, і сам getcomposer.org не дуже добре пояснює це, тож спасибі! Я працюю.
Trace DeCoy

28

Як запустити Composer з будь-якого місця (на MacOS X) через термінал

Передумови:

Насправді на веб-сайті getComposer чітко зазначено, що встановіть Composer, використовуючи таку команду curl,

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

І це, безумовно, робить те, що передбачається. І тоді він говорить про переміщення composer.phar до каталогу / usr / local / bin / composer, а потім композитор буде доступний у всьому світі, використовуючи наступний командний рядок у терміналі!

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

Питання:

Отже, проблема, яка приводить мене до Google, полягає в тому, що коли я виконував наведений вище рядок у терміналі Mac OS X, він сказав, що дозвіл відмовлено. Приблизно наступне:

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

Відповідь:

Наступне посилання привело мене до рішення, як шарм, і я вдячний цьому. Те, що я щойно пропустив, - це команда sudo перед вищезазначеним командним рядком "Move". Тепер моя команда Move така:

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

Це безпосередньо пропонує вам пройти автентифікацію та перевірити, чи маєте ви дозвіл. Отже, якщо ви введете дійсний пароль, переміщення буде виконано, і ви можете просто перевірити, чи встановлено композитор у всьому світі, використовуючи наступний рядок.

composer about

Сподіваюсь, ця відповідь допомогла вам розширити свій погляд і врешті вирішити проблему.

Ура!


1
> І тоді він каже, що переміщення composer.phar до каталогу / usr / local / bin / composer /usr/local/bin/composerне є каталогом; це нове ім'я файлу, яке було б викликано composer.pharдо цього.
Xedin Невідомо

1
Працював у мене на macOS Sierra.
Вахід Амірі

17

Спочатку встановіть композитор, як зазначено в документації щодо встановлення композитора . Я щойно додав сюди для довідки.

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

а потім перемістіть файл у '/ usr / local / bin'.

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

Спробуй бігти composer -V. Якщо ви отримаєте результат типуComposer version номер версії, тоді композитор успішно встановлено.

Якщо ви отримуєте будь-які результати, подібні до composer: command not foundзасобів, використовуйте наступну команду, щоб створити псевдонім для композитора. Тож він буде виконаний у всьому світі.

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

Тепер, якщо ви запустили, composer -Vозначає, що ви отримаєте вихідні дані з Composer Versionнаступним номером версії.

Сподіваюся, це комусь допоможе.


7

Просто запустіть цю команду для глобальної інсталяції композитора

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Це вирішує мою проблему із запитом пароля sudoer. Дякую
MadzQuestioning

6

Просто перемістіть його в /usr/local/binпапку і видаліть розширення

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

Тільки те, що мені потрібно, дякую
Боббі Екс

2

Для MAC та LINUX використовуйте наступну процедуру:

Додайте каталог, де знаходиться composer.phar, до вашого PATH:

export PATH=$PATH:/yourdirectory

а потім перейменуйте composer.phar на композитор:

mv composer.phar composer

1

Для запуску з іншого місця ви можете використовувати програму композитора, яка входить до програми. В основному це скрипт bash. Якщо у вас його немає, ви можете створити його, просто скопіювавши наступний код у текстовий файл

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

Потім збережіть файл у папці bin та назвіть його композитором без будь-якого розширення. Потім додайте папку bin до змінної середовища f


1

Ви можете зробити просту глобальну установку, щоб запустити його з будь-якого місця

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

Https://getcomposer.org/doc/00-intro.md#globally сайт рекомендує цей шлях. Добре працював над Ubuntu 14.04 без проблем. Таким чином, вам не потрібно робити це як приклад php compomser.phar show, ви просто робите це composer showв будь-якому каталозі, з яким ви працюєте.


0

Дещо з цього може бути пов’язано з ОС, на якій працює ваш сервер. Нещодавно я перейшов на нове хостингове середовище під управлінням Ubuntu. Додавання цього псевдоніма alias composer="/path/to/your/composer"до .bashrc або .bash_aliases спочатку не працювало з двох причин:

За замовчуванням на сервері працював csh, а не bash. Щоб перевірити, чи це проблема у вашому випадку, запустіть echo $0. Якщо те, що повертається, -cshви захочете змінити його на bash, оскільки деякі процеси, запущені Composer, не зможуть використовувати csh / tcsh .

Щоб змінити його, спочатку перевірте, чи є bash доступний на вашому сервері, запустивши cat /etc/shells. Якщо у списку, який ви повернули, ви бачите bin/bash, ви можете змінити значення за замовчуванням на bash, запустивши chsh -s /bin/csh.

Тепер, на цьому етапі, ви повинні мати змогу запустити Composer, але зазвичай, в Ubuntu, вам доведеться завантажувати сценарій на кожному сеансі, отримуючи скрипти Bash, запускаючи source ~/.bashrcабо source ~/.bash_profile. Це пояснюється тим, що в більшості випадків Ubuntu не завантажує ваш скрипт Bash, оскільки він завантажується .profileяк сценарій за замовчуванням.

Щоб завантажити свої сценарії Bash під час відкриття сеансу, спробуйте додати це до свого .profile (це якщо ваш скрипт Bash має .bashrc - відповідно змініть, якщо .bash_profile чи інший):

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

Щоб протестувати, закрийте сеанс і перезавантажте. Якщо він працює належним чином, працює composer -vабо which composerповинен поводитися належним чином .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.