【发布时间】:2013-09-02 00:52:59
【问题描述】:
我有雪豹,它显然预装了带有梨的 php。我启用了 php,但找不到 PEAR 的任何迹象。所以我已经安装了它,现在 phpinfo() 显示它的安装
include_path .:/usr/lib/php/share/pear
当我输入任何 pear 命令时
$ sudo pear
我得到一个错误:sudo: pear: command not found
我错过了什么?
【问题讨论】:
我有雪豹,它显然预装了带有梨的 php。我启用了 php,但找不到 PEAR 的任何迹象。所以我已经安装了它,现在 phpinfo() 显示它的安装
include_path .:/usr/lib/php/share/pear
当我输入任何 pear 命令时
$ sudo pear
我得到一个错误:sudo: pear: command not found
我错过了什么?
【问题讨论】:
给这只猫剥皮的方法有很多,但如果你安装了 locate (你可能会这样做),我会输入这个:
$ locate bin/pear
这应该列出一件或多件事情,其中一件看起来像是通往梨的道路。假设它说类似/usr/local/bin/pear。那么你的下一个命令是:
$ sudo /usr/local/bin/pear
我想到了两个警告:
pear 所在的目录添加到您的PATH 环境变量中。【讨论】:
locate bin/pear 时会发生什么?我见过的每一个 Mac OS X 安装都默认安装了 Locate,所以看到你说它没有安装我很惊讶。如果确实没有安装,请尝试whereis pear。
sudo /usr/local/bin/pear和sudo /usr/local/php5/bin/pear。我已经看到梨在 Mac OS X 上的两个位置都出现了。如果您真的不知道它在哪里,但确定它就在某个地方,并且您可以非常耐心地尝试一些东西彻底但效率低下,例如:sudo find / -name pear,但这可能需要很长时间才能运行。我准备至少给它几个小时。我怀疑,那只是在真正绝望的时候。 (在生产服务器上运行可能是个坏主意。)
sudo /usr/lib/php/bin/pear,或者您可以按照@hayashi-kei 的说明进行操作,但使用该行添加:export PATH=/usr/lib/php/bin:$PATH
您需要更新系统 $PATH 变量才能使 pear 命令正常工作。使用以下内容编辑 bash 配置文件(如果您有 textmate):
mate ~/.bash_profile
并在这一行中添加:
export PATH=/usr/local/pear/bin:$PATH
然后重新加载您的终端,它现在应该可以工作了
已编辑: 感谢您强调我的错误小跑。我已经更改了路径以找到垃圾箱的大致位置(取决于选择安装它的位置)
【讨论】:
如果你已经在PHP(例如MAMP)上直接安装了pear,你应该将pear复制到/usr/local/bin:
cp /php5.3.2/pear /usr/local/bin/pear
然后导出 var PATH,并在 shell 中使用“pear”进行测试。
【讨论】:
我遇到了类似的问题,需要在 sudoers 中更新 secure_path,因为它会覆盖用户的 $PATH。
在 sudo 上检查 secure_path
[root@host ~]# sudo -V | grep 'Value to override'
Value to override user's $PATH with: /sbin:/bin:/usr/sbin:/usr/bin
如果$PATH 被我们覆盖visudo 并编辑/etc/sudoers
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
【讨论】: