atualiza o Python para 2.7.2

2

Eu tenho um sistema embarcado rodando em Python 2.6.5 e eu quero atualizar para 2.7.2 (eu tenho um sistema em execução com um kernel diferente que executa 2.7.2 ). Eu copiei o binário, mas depois ele me disse: python: can't load library 'libpython2.7.so.1.0' quando eu tentei lançá-lo - bem, eu peguei e copiei isso também e agora eu recebo:

# python
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Segmentation fault

Como posso fazer com que este sistema seja atualizado para Python 2.7.2 , mantendo o antigo kernel original - eu só quero atualizar o Python, não toda a imagem - possível?

    
por cerr 11.01.2014 / 23:16

1 resposta

5

Se os sistemas são semelhantes, como você indicou nos seus comentários, então é bem possível fazer isso. O que você provavelmente perderá será /usr/lib/python2.7 ou /usr/local/lib/python2.7 , e os arquivos abaixo disso - se você copiou o executável python2.7 de /usr/bin , então provavelmente o primeiro, se copiado de /usr/local/bin provavelmente o último.

Você pode especificar opções de configuração ao compilar o Python no Linux para muitas partes ( --bindir para executável, --mandir man pages, etc.), mas provavelmente você não especificou nenhuma e só fez ./configure antes de executar% código%. Se a sua execução make você pode ver qual é o valor padrão para ./configure --help , o resto é relativo a isso, mas outros arquivos também estarão lá.

Para descobrir tudo , você pode tocar em todos os fontes, compilar e instalar e --prefix (começando com o diretório padrão para a opção find configure ), qualquer coisa instalada últimos X minutos.

Você também pode recompilar para especificar um diretório não utilizado, especificando --prefix to --prefix , assim não haverá outros arquivos além daqueles que você precisa copiar:

 cd Python-2.7.2
 make clean  # might fail ignore
 ./configure --prefix=/opt/py272
 make
 sudo make install

Depois disso, você pode colocar tudo sob configure (assumindo que não havia nada lá antes de iniciar a compilação) e copiá-lo para o sistema de destino e extrair as coisas para /opt/py272 .

No sistema de destino, você também pode vincular /opt/py272 a /usr/bin/python27 para poder usar a linha /opt/py272/bin/python sobre seus scripts específicos do 2.7.2.

Em tudo isso, você precisa saber que não está livre para mover arquivos do local especificado no momento da configuração, pois alguns caminhos são compilados nos executáveis / bibliotecas, mas você pode criar um link para o executável de um lugar sensível (algum diretório no seu #! /usr/bin/env python27 ).

    
por 12.01.2014 / 07:55