mercurial atualizado, mod_wsgi roda versão antiga

1

Eu tenho um VPS com o Centos 5.5, instalado o Python 2.6 seguindo Configure o Python 2.5, mod_wsgi, e o Django 1.0 no tutorial do CentOS 5 (cPanel) e o Mercurial 1.6 via fácil instalação.

Agora eu queria atualizar para o Mercurial 1.7.5, então eu o instalei e pareceu funcionar. Pelo menos quando usado no terminal.

Eu tenho usado hgwebdir para enviar / extrair meus repositórios via HTTP. No entanto, quando tento visualizar um repositório criado com o novo hg (1.7.5), recebo a página de erro 500. Uma olhada no Apache error_log lê algo sobre o suporte dotencode

 RepoError: requirement 'dotencode' not supported,

O Google diz que é um problema quando o antigo hg tenta ler um repositório feito com um novo hg .

Como posso descobrir qual hg é usado pelo Apache / mod_wsgi ? E como atualizá-lo?

    
por frnhr 06.02.2011 / 20:12

2 respostas

1

Só para esclarecer, parece que você estava usando o mod_wsgi compilado contra o Python 2.5 (que tem uma versão antiga do hg). Agora você está tentando executar o mod_wsgi com o Python 2.6 (que possui hg 1.7.5).

Supondo que você tenha seguido as instruções no artigo que você vinculou, você perceberá que você compilou o mod_wsgi contra as fontes no Python 2.5. O mod_wsgi não inicia um interpretador Python; em vez disso, ele chama diretamente as fontes do Python. Então, se você quiser que o mod_wsgi trabalhe com o Python 2.6, você terá que recompilá-lo com as fontes do Python 2.6.

Você pode seguir as mesmas etapas do artigo, usando apenas as fontes do Python 2.6 em vez do Python 2.5. Eu compilei o mod_wsgi contra o Python 2.6 antes, e o artigo se parece com o lugar dele.

Espero que isso ajude e definitivamente deixe comentários se você encontrar algum problema.

    
por 07.02.2011 / 03:31
0

Para mim, parece uma das duas coisas:

  • você precisa reiniciar o servidor da web depois de instalar a nova versão do Mercurial. Quando você usa mod_wsgi , o Apache manterá uma cópia do script em execução na memória, para que possa atender rapidamente a novas solicitações. Então pode haver um Mercurial 1.6 rodando na memória ainda. Reiniciar o Apache deve ajudar.

  • você instalou várias versões do Mercurial na máquina. Tente pesquisar por commands.py e veja se você encontra mais de uma versão. Em seguida, remova a versão antiga e reinstale-a como sugere Redmumba.

por 25.12.2011 / 00:34