atualiza o xdebug sem usar o apt?

4

Estou executando o debian 5.0.6 e instalei o xdebug 2.0.3 via aptitude. Agora eu quero instalar o PHPUnit, e ao tentar fazê-lo através do pear, eu recebo o erro que o PHPUnit quer um xdebug mais recente

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

Olhando para o site debian, não vejo um pacote para o 2.0.5. É seguro tentar atualizar o xdebug fora do sistema apt? Eu não estou totalmente claro sobre como essas coisas (php, apache2 e xdebug) estão inter-relacionadas, e eu não quero quebrar as coisas e ter tempo de inatividade. Meu palpite seria que eu iria construir o xdebug 2.0.5 e depois reiniciar o Apache. Se eu for sozinho, o aptitude vai atrapalhar mais tarde, quando um pacote xdebug for lançado?

    
por user394 29.10.2010 / 16:43

2 respostas

6

Existe uma versão recente suficiente do xdebug in squeeze (a próxima versão do Debian, que estará pronta qualquer mês agora). Ele não tem um backport oficial para stable (caso contrário, o backport seria listado na página de pesquisa do pacote xdebug ). O pacote binário depende de uma versão recente do PHP, mas você deve ser capaz de compilar o pacote fonte no lenny, já que suas dependências de construção são satisfiable no lenny. Aqui está uma receita para construir o pacote:

  1. Faça o download dos três arquivos ( .dsc , .orig.tar.gz e .debian.tar.gz ). Como essa é uma necessidade pontual, faça isso manualmente.
  2. Instale as dependências de construção (aqui debhelper e php5-dev ) com apt-get ou aptitude . Instale também o conjunto básico de pacotes de desenvolvimento; o pacote build-essential irá puxá-los todos. Instale também fakeroot .
  3. Descompacte a origem: dpkg-source -x xdebug_2.1.0-1.dsc e mude para o diretório de origem: cd xdebug-2.1.0 .
  4. (Você pode pular esta etapa se não fizer nenhuma alteração no pacote de fontes.)
    Edite o arquivo debian/changelog para adicionar uma nova entrada do changelog. Isso é feito facilmente no Emacs:
    • verifique se o pacote dpkg-dev-el está instalado;
    • abra debian/changelog no Emacs;
    • use C-c C-a para adicionar uma entrada;
    • escolha um novo número de versão (aqui 2.1.0~user394+1 seria uma escolha razoável, seguindo o padrão usado pelos backports oficiais);
    • escreva uma entrada de registro (por exemplo, backport to lenny , descreva as alterações feitas);
    • use C-c C-c para finalizar a entrada.
  5. Compile o pacote: dpkg-buildpackage -rfakeroot -us -uc
    Se você tiver uma chave PGP / GPG, não passe -us -uc e insira sua frase secreta se solicitado a assinar criptograficamente os pacotes.
  6. Lucro Instale o pacote binário.

Para resumir as etapas:

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
    
por 29.10.2010 / 21:36
0

Você está certo, você pode simplesmente instalar o pacote php-dev (para poder compilar o PHP existente) e construir uma versão xdebug atualizada, sobrescrevendo a versão debian. O problema seria obviamente que, assim que o debian tropeçasse com seu pacote (talvez apenas por um pequeno patch), suas alterações seriam sobrescritas. Você poderia construir seu próprio pacote, mas isso tende a ser um pouco doloroso.

Mas do ponto de vista do tempo de inatividade / problema você deve estar OK (o pior que poderia acontecer seria que você talvez tivesse que ajustar o caminho da extensão xdebug no arquivo php.ini).

    
por 29.10.2010 / 17:30

Tags