sudo: pear: команда не найдена - PullRequest
3 голосов
/ 03 июня 2011

У меня есть снежный барс, у которого, видимо, уже установлен php с грушей. Я включил php, но не смог найти никаких признаков PEAR. Итак, я установил его, и теперь phpinfo () показывает его установку

include_path .:/usr/lib/php/share/pear

Тем не менее, когда я набираю любую команду груши

$ sudo pear

Я получаю сообщение об ошибке: sudo: pear: команда не найдена

Чего мне не хватает?

Ответы [ 4 ]

7 голосов
/ 03 июня 2011

Есть много способов сделать скин для этого кота, но я бы набрал его, если у вас установлен locate (что вы, вероятно, делаете):

$ locate bin/pear

Это должно перечислить одну или несколько вещей, одна из которых будет выглядетьпуть к груше.Допустим, это говорит что-то вроде /usr/local/bin/pear.Тогда ваша следующая команда:

$ sudo /usr/local/bin/pear

На ум приходят два предостережения:

  1. Возможно, что locate перечислит несколько исполняемых грушевых файлов.Если это так, может быть важно выбрать правильный вариант, в зависимости от того, какой PHP вы используете.
  2. Возможно, вы захотите добавить каталог, в котором расположен pear, к вашей переменной среды PATH.
5 голосов
/ 03 июня 2011

Вам нужно обновить системную переменную $ PATH, чтобы команда pear работала. Отредактируйте файл профиля bash, используя следующее (если у вас есть textmate):

mate ~/.bash_profile

и добавьте в эту строку:

export PATH=/usr/local/pear/bin:$PATH

перезагрузите ваш терминал после этого, и теперь он должен работать

Отредактировано: Спасибо за то, что подчеркнули мою ошибку. Я изменил путь, чтобы найти место, где должна находиться корзина (в зависимости от того, где он установлен)

1 голос
/ 26 мая 2013

Если вы установили pear прямо на PHP (например, MAMP), вам нужно скопировать pear в /usr/local/bin:

cp /php5.3.2/pear /usr/local/bin/pear

, затем экспортировать var PATH и проверитьс "pear" в оболочке.

0 голосов
/ 01 сентября 2013

У меня была похожая проблема, и мне потребовалось обновить secure_path в sudoers, так как он переопределяет $ PATH пользователя.

Проверьте secure_path для sudo

[root@host ~]# sudo -V | grep 'Value to override'
Value to override user's $PATH with: /sbin:/bin:/usr/sbin:/usr/bin

If $PATH переопределяет нас visudo и редактирует /etc/sudoers

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
...