使用 distutils 安装到 chroot 环境

发布于 2024-10-12 23:18:52 字数 589 浏览 6 评论 0原文

我维护一个 chroot 的 Linux 映像,并且有一个软件包想要安装到该 chroot 的映像中。

这两个软件包最终都会安装到两个位置;我不知道发生了什么以及如何解决它。

我的 setup.py:

import os
from distutils.core import setup

setup(name='ServerLibrary',
    version='1.1',
    description='Server Framework',
    author='Michael Brown',
    scripts = [ 'foo.py' ],
    packages = [ 'ServerLibrary' ],
)

os.chroot('/srv/nfs/chrooted-nfs-client/')
setup(name='ClientLibrary',
    version='1.1',
    description='Client Framework',
    author='Michael Brown',
    packages = [ 'ClientLibrary' ],
)

完成我想做的事情的最佳方法是什么?

I maintain a chrooted Linux image and I have a package that I'd like to install into that chrooted image.

Both packages end up getting installed into both locations; I can't figure out what is going on and how to fix it.

My setup.py:

import os
from distutils.core import setup

setup(name='ServerLibrary',
    version='1.1',
    description='Server Framework',
    author='Michael Brown',
    scripts = [ 'foo.py' ],
    packages = [ 'ServerLibrary' ],
)

os.chroot('/srv/nfs/chrooted-nfs-client/')
setup(name='ClientLibrary',
    version='1.1',
    description='Client Framework',
    author='Michael Brown',
    packages = [ 'ClientLibrary' ],
)

What's the best way to accomplish what I'm trying to do?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

凑诗 2024-10-19 23:18:52

我发现我需要为文件集指定不同的构建目录。 distutils 假设每次都需要安装“build”中的所有内容。

希望我能省去其他人弄清楚如何做到这一点的麻烦。这是我修复的脚本的第二部分:

os.chroot('/srv/nfs/chrooted-nfs-client/')
setup(name='ClientLibrary',
    version='1.1',
    description='Client Framework',
    author='Michael Brown',
    packages = [ 'ClientLibrary' ],
    options = {
        'build': { 'build_base': 'build-chroot' }
    }
)

I figured out that I needed to specify a different build directory for set of files. distutils was assuming that everything inside 'build' needed to get installed each time.

Hopefully I'll save someone else the trouble of figuring out how to do this. Here's my fixed 2nd part of the script:

os.chroot('/srv/nfs/chrooted-nfs-client/')
setup(name='ClientLibrary',
    version='1.1',
    description='Client Framework',
    author='Michael Brown',
    packages = [ 'ClientLibrary' ],
    options = {
        'build': { 'build_base': 'build-chroot' }
    }
)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文