例如:我numpy
使用 Intel MKL 库进行构建,并且它在 Python shell 中可用,但如果我想从依赖于的存储库中安装一些包numpy
,则不会考虑我的构建。
在 Ubuntu 中包含我的 Python 构建包的最简单方法是什么,以便存储库中的包可以找到它,最好无需再次构建?
答案1
使用检查安装构建一个 deb 文件并安装它。
Checkinstall 将取代标准编译中的“make install”部分。它不会只是将文件复制到目标目录,而是会构建并安装 deb 文件。
如果您无法使用 checkinstall,则可以使用 equivs 创建虚拟包。请注意,这可能会在更新或卸载时产生问题,因此仅建议专家用户使用。众所周知,它有失控的趋势,因此请谨慎使用。
安装 equivs:
sudo apt-get install equivs
创建控制文件:
equivs-control python-numpy
这将创建一个名为 python-numpy 的模板控制文件(名称无关紧要)编辑它 python-numpy 使其看起来像这样:
### 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
您提供的数据越多,deb 的效果就越好。我只修改了 2 个字段:
- 包:要构建的包的名称。对于肮脏的解决方案,请使用 python-pynum
- 版本:使用足够大的数字以防止 apt-get 更新它。
一个更好的(但我没有测试过的)解决方案可能是创建一个不同的包名称,链接 python-pynum-dummy,并在 Provides 行中使用 put python-numpy。这应该更干净。
最后构建 deb。
equivs-build python-numpy
并安装它。