让 Ubuntu 确认已安装自定义版本的 PHP

让 Ubuntu 确认已安装自定义版本的 PHP

我正在尝试在我的 Ubuntu 12.04 VPS 上从源代码安装 PHP。我在 configure 命令中使用以下参数:

--enable-intl
--with-openssl
--without-pear
--with-gd
--with-jpeg-dir=/usr
--with-png-dir=/usr
--with-freetype-dir=/usr
--with-freetype
--enable-exif
--enable-zip
--with-zlib
--with-zlib-dir=/usr
--with-mcrypt=/usr
--with-pdo-sqlite
--enable-soap
--enable-xmlreader
--with-xsl
--enable-ftp
--with-curl=/usr
--with-tidy
--with-xmlrpc
--enable-sysvsem
--enable-sysvshm
--enable-shmop
--with-mysql=mysqlnd
--with-mysqli=mysqlnd
--with-pdo-mysql=mysqlnd
--enable-pcntl
--with-readline
--enable-mbstring
--with-curl
--with-pgsql
--with-pdo-pgsql
--with-gettext
--enable-sockets
--with-bz2
--enable-bcmath
--enable-calendar
--with-libdir=lib
--enable-maintainer-zts
--with-gmp
--enable-fpm

现在,一切都很顺利。版本按预期运行,安装过程中我没有遇到任何问题。现在有趣的事情来了。每当我想安装类似的东西时mcrypt(例如),我通常会输入,apt-get install php5-mcrypt但当我这样做并查看依赖项时,我发现 PHP5 仍然列为依赖项,一旦我点击就会安装y(覆盖我自己的版本)。

现在我的问题的真正核心是,我如何让 Ubuntu 知道我已经安装了 PHP5,以便它不再尝试将 PHP5 安装为依赖项。我是否必须在配置过程中进行某些更改?我是否必须apt-get先使用这种方式安装 PHP5,然后手动将其删除,然后再安装我自己的 PHP 版本。

值得一提的是,我需要这个自定义的 PHP 构建来使 Pthreads 工作,因为没有提供 ZTS 版本 PHP 的 repo(但是,请有人制作一个?)。

答案1

当您从源代码编译或安装 apt(apt-get)之外的包时,就会出现这个问题。

可能最简单的解决方案是使用 checkinstall

sudo apt-get install checkinstall

然后制作并安装php

make
sudo checkinstall

checkinstall 从您的源代码创建一个 .deb,然后安装一个 .deb,因此 apt 将会确认 php 已安装。

https://help.ubuntu.com/community/CheckInstall

答案2

不要告诉 Ubuntu 任何事情。相反,将其安装到与 Ubuntu 包管理运行所在的目录不同的目录中。这就是/usr/local/opt的用途。使用它们!

相关内容