Como incluir localmente o pacote Python em todo o sistema?

2

Por exemplo: eu construo numpy com as bibliotecas Intel MKL e ele está disponível no shell Python, mas se eu quiser instalar algum pacote do repositório que dependa de numpy , minha compilação não será considerada.

Qual seria a maneira mais fácil de incluir meu pacote de compilação Python no Ubuntu, para que os pacotes do repositório possam encontrá-lo, de preferência sem construir de novo?

    
por zetah 29.04.2012 / 07:15

1 resposta

2

Use checkinstall para criar um arquivo deb e instalá-lo.

O Checkinstall substituirá a parte 'make install' da compilação padrão. Em vez de apenas copiar os arquivos para seus diretórios de destino, ele irá construir e instalar um arquivo deb.

Se você não puder usar o checkinstall, poderá criar um pacote fictício usando equivs. Observe que isso pode criar problemas ao atualizar ou desinstalar e é recomendado apenas para usuários experientes. Ele tem uma tendência conhecida de crescer fora de controle, então use-o com cuidado.

Instale os equivs:

sudo apt-get install equivs

Crie o arquivo de controle:

equivs-control python-numpy

Isso criará um arquivo de controle de modelo chamado python-numpy (o nome não importa) edite-o em python-numpy para que fique assim:

### Commented entries have reasonable defaults.
### Uncomment to edit them.
# Source: <source package name; defaults to package name>
Section: misc
Priority: optional
# Homepage: <enter URL here; no default>
Standards-Version: 3.9.2

Package: python-numpy
Version: 9.9
# Maintainer: Your Name <[email protected]>
# Pre-Depends: <comma-separated list of packages>
# Depends: <comma-separated list of packages>
# Recommends: <comma-separated list of packages>
# Suggests: <comma-separated list of packages>
# Provides: <comma-separated list of packages>
# Replaces: <comma-separated list of packages>
# Architecture: all
# Copyright: <copyright file; defaults to GPL2>
# Changelog: <changelog file; defaults to a generic changelog>
# Readme: <README.Debian file; defaults to a generic one>
# Extra-Files: <comma-separated list of additional files for the doc directory>
# Files: <pair of space-separated paths; First is file to include, second is destination>
#  <more pairs, if there's more than one file to include. Notice the starting space>
Description: <short description; defaults to some wise words> 
 long description and info
 .
 second paragraph

Quanto mais dados você der a ele, melhor será o deb. Eu modifiquei apenas 2 campos:

  • Pacote: o nome do pacote que você deseja criar. Para uma solução suja use python-pynum
  • Versão: Use um número alto o suficiente para manter o apt-get atualizado.

Uma solução melhor (mas não testada por mim) poderia ser criar um nome de pacote diferente, algo link python-pynum-dummy, e usar na linha Provides colocar python-numpy. Isso deve ser mais limpo.

Por fim, edite o deb.

equivs-build python-numpy 

E instale-o.

    
por Javier Rivera 30.04.2012 / 08:44