不使用apt升级xdebug?

不使用apt升级xdebug?

我正在运行 debian 5.0.6 并通过 aptitude 安装了 xdebug 2.0.3。现在我想安装 PHPUnit,当尝试通过 pear 进行安装时,我收到错误消息 PHPUnit 想要更新的 xdebug

phpunit/PHPUnit requires PHP extension "xdebug" (version >= 2.0.5), installed version is 2.0.3

查看 debian 网站,我没有看到 2.0.5 的软件包。在 apt 系统之外尝试升级 xdebug 是否安全?我并不完全清楚这些东西( php、apache2 和 xdebug )是如何相互关联的,而且我不想破坏东西并造成停机。我的粗略猜测是,我将构建 xdebug 2.0.5,然后重新启动 Apache。如果我单独行动,当 xdebug 包出现时, aptitude 是否会出现问题?

答案1

有一个足够新的版本挤压中的 xdebug(Debian 的下一个版本,现在任何月份都将准备就绪)。它没有稳定的官方向后移植(否则向后移植将列在xdebug包搜索页面)。二进制包依赖于最新版本的 PHP,但您应该能够编译源码包在 lenny 上,因为它的构建依赖关系在 lenny 上是可满足的。这是构建包的秘诀:

  1. 下载三个文件(.dsc.orig.tar.gz.debian.tar.gz)。由于这是一个准时的需求,所以手动完成即可。
  2. 使用或安装构建依赖项(此处debhelperphp5-dev)。还要安装基本的开发包集;包裹会将它们全部拉走。还要安装.apt-getaptitudebuild-essentialfakeroot
  3. 解压源码:dpkg-source -x xdebug_2.1.0-1.dsc并切换到源码目录:cd xdebug-2.1.0
  4. (如果不在源包中进行任何更改,则可以跳过此步骤。)
    编辑该debian/changelog文件以添加新的更改日志条目。这在 Emacs 中很容易完成:
    • 确保dpkg-dev-el软件包已安装;
    • debian/changelog在 Emacs 中打开;
    • 用于C-c C-a添加条目;
    • 选择一个新的版本号(这2.1.0~user394+1是一个合理的选择,遵循官方向后移植使用的模式);
    • 编写日志条目(例如backport to lenny,描述您所做的更改);
    • 用于C-c C-c完成条目。
  5. 编译包:dpkg-buildpackage -rfakeroot -us -uc
    如果您有 PGP/GPG 密钥,请不要-us -uc在提示对包进行加密签名时输入密码。
  6. 利润安装二进制包。

总结一下步骤:

wget http://ftp.de.debian.org/debian/pool/main/x/xdebug/xdebug_2.1.0{.orig.tar.gz,-1.{dsc,debian.tar.gz}}
sudo aptitude install build-essential fakeroot debhelper php5-dev
dpkg-source -x xdebug_2.1.0-1.dsc
cd xdebug-2.1.0
# patch as necessary
emacs debian/changelog # not necessary if unpatched
dpkg-buildpackage -rfakeroot -us -uc
dpkg -i ../php5-xdebug_2.1.0_*.deb

答案2

你是对的,你可以安装 php-dev 包(以便能够针对现有的 PHP 进行编译)并构建更新的 xdebug 版本,覆盖 debian 版本。问题显然是,一旦 Debian 更新了他们的软件包(也许只是一个小补丁),你的更改就会被覆盖。您可以构建自己的软件包,但这往往有点麻烦。

但从停机/问题的角度来看,您应该没问题(可能发生的最坏情况是您可能必须调整 php.ini 文件中 xdebug 扩展的路径)。

相关内容