私は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用のパッケージは見えません。適切なシステム外でxdebugをアップグレードするのは安全ですか?私はこれらのもの(php、apache2、xdebug)が互いにどのように関連しているか完全にはわかりません。問題を起こし、ダウンタイムを引き起こしたくありません。私のおおよその推測は、xdebug 2.0.5をビルドしてからApacheを再起動することです。一人でxdebugパッケージが出てくると適性が問題を引き起こしますか?
答え1
新しいバージョンがありますスクイズ中のxdebug(Debianの次のバージョンは毎月準備されます)。安定した公式バックポートはありません。それ以外の場合は、バックポートが以下にリストされます。xdebug パッケージ検索ページ)。バイナリパッケージは最新バージョンのPHPを使用しますが、コンパイルできるはずです。ソースコードパッケージこれはlennyのビルド依存関係がlennyで満足されるからです。パッケージを作成する秘訣は次のとおりです。
- 3つのファイル(
.dsc
、、.orig.tar.gz
および.debian.tar.gz
)をダウンロードします。これはタイムリーな要件なので、手動で実行できます。 - ビルド依存関係を使用またはインストールします(ここ
debhelper
およびphp5-dev
)。また、デフォルトの開発パッケージセットをインストールすると、パッケージはすべて削除されます。まだインストールが必要です。apt-get
aptitude
build-essential
fakeroot
- ソースコードを解凍し、
dpkg-source -x xdebug_2.1.0-1.dsc
ソースコードディレクトリに切り替えますcd xdebug-2.1.0
。 - (ソースパッケージを変更しない場合は、この手順をスキップできます。)ファイルを
編集して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
。
- 確実にする
- パッケージのコンパイル:
dpkg-buildpackage -rfakeroot -us -uc
PGP / GPGキーがある場合は、-us -uc
パッケージに暗号化署名するように求められたときにパスワードを入力しないでください。 Profitはバイナリパッケージをインストールします。
ステップを要約すると、次のようになります。
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拡張へのパスを調整する必要があるかもしれません)。