微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

software-installation – 我应该用自编的PHP替换/usr/bin中的PHP系统二进制文件吗?

我在我的Mac 10.9机器上安装了PHP 5.4版,并希望升级到5.6.

我下载了源文件并运行./configure,make和make install.我看起来似乎已经成功编译和安装,但它将自己安装到/usr/local/bin中.旧版本的PHP安装在/usr/bin中.

当我运行PHP时,使用/usr/bin位置,因为/usr/bin位于$PATH中的/usr/local/bin之前.我想使用新版本.

我应该用/usr/local/bin中的版本替换/usr/bin中的旧版PHP吗?或者我应该从/usr/bin中删除它们?

这有点棘手,因为5.6安装还安装了一些其他的东西,比如新版本的perl和pecl以及其他一些辅助二进制文件(包括PHP-configPHPize).其中一些(最后两个)已经存在于/usr/bin文件夹中,但perl和pecl不存在.我应该将所有新内容移动到/usr/bin吗?

最后,为什么新的安装在/usr/local/bin中而旧的安装没有?区别是否重要? PHP团队是否出于某种原因决定移动它?或者它只是在/usr/bin中,因为它来自我的系统,而下载的更新被放入/usr/local/bin?

PHP.ini的位置是否依赖于这些?

解决方法:

通常,/ usr层次结构用于来自OS供应商/站点管理员内容,而/usr/local用于本地安装的内容(例如,在网络上,/ usr可能是由多台计算机共享的NFS安装,而/usr/local是本地文件系统).这就是配置脚本通常认安装到/usr/local的原因 – 不破坏系统包.这也是为什么PATH在/usr/{bin,sbin}之前应该有/usr/local/{bin,sbin}的原因.

要更改它,您需要做的就是运行良好的构建系统:

./configure --prefix=/path/to/install/to

这说了很多,取决于旧PHP版本的来源.只是覆盖它不是一个好主意,因为它可能会留下旧版本中的一些文件(这就是为什么使用包管理器是Good IdeaTM).因此,除非你有一个干净的卸载以前版本的方法,/usr/local可能稍好一些.另一个选择是(错误)在/ opt下使用单独的层次结构 – 例如安装到/opt/PHP5.6.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐