当前位置: 首页 > 知识库问答 >
问题:

编译程序使其独立于系统而存在

钦耀
2023-03-14

我想以一种最大限度地将Python与系统和系统提供的库和程序分离的方式安装Python。它应该在自己的目录中编译,并且只需要访问系统提供的它需要编译的东西。(这与Julia(参见源代码下载和编译部分)从源代码编译的方式相似。)然而,我不确定一般如何做到这一点。运行./confiure将创建一个Makefile,该Makefile是为使用系统提供的库而定制的,我在手写Makefile方面没有足够的经验;尤其是对于具有广泛依赖关系的程序,并且考虑到我将需要对一系列编程语言这样做。你能给我一些好的建议吗?如何以比手动编写Makefile更有效的方式做到这一点?

(我目前正在运行Arch Linux,但我希望这是一个更一般的问题,即解决方案应该是通用的。)

共有1个答案

祁坚壁
2023-03-14

在过去的几周里,我一直在研究不同的选择,我想出了两个我觉得满意的可能解决方案。

    (1) LXC
    (2) Docker

两者都提供了类似的解决方案,因此我将在这里集中讨论LXC

一个LXC容器允许我为基本上任何我想要的程序设置一个独立的环境。我认为解释什么是LXC以及它是如何在这里工作的是没有用的,因为StackExchange网站上已经有很多问题和答案在做这件事。因此,我把一堆链接到StackExchange问题,并给出了关于LXC的好答案。我希望人们会发现这很有用:

简单而笼统地介绍什么LXC是:用简单的英语解释什么是LXC以及它有什么用[关闭]

另一个一般介绍:什么是LXC和如何开始?

类似的问题:轻量级隔离的linux环境

详细解释并总结DockerLXC之间的差异:Docker向LXC工具(用户空间LXC工具)添加了什么?

解释Docker/LXC和成熟的VM之间的区别:Docker与普通虚拟机有何不同?

一个很好的关于LXC的一般介绍:Arch Wiki-Linux容器。

 类似资料:
  • 问题内容: 使用Java计时器,然后切换到ScheduledExecutorService,但我的问题未解决。由于系统时间更改之前安排的任务(通过ntpd)不会按指定的延迟执行。没有日志,什么也没有发生:(。 在64位Linux上的目标中使用jre 1.6.0_26 64位。 更新: ScheduledExecutorService在Windows上运行正常。问题仅存在于运行64位JVM的基于64

  • 发现问题! 假如按照上一讲的制作方法,设定了对话框的话,实际执行游戏时,会是下面的效果: 人物姓名占用了原本对话的第一行位置,并且把对话挤到第二行了。这当然可以通过调整对话框的文字显示范围来修改,但是只做这样的修改的话,名字和对话永远是对齐的,并且距离也是固定的。有没有什么办法作出“姓名和对话分开”的效果呢?答案当然是肯定的,只不过需要一点努力~ 将姓名与对话显示分离 这个修改没有图形界面,不过也

  • 问题内容: Linux中有没有可用的软件可以编译包含多核或分布式系统上并行大量文件的源代码。像gcc或xserver这样的库在单核/双机上花费大量时间进行编译,并且在大多数情况下,当您需要大量重新编译时,它们令人沮丧。有什么技术可以并行编译这些源代码? 问题答案: 在分布式内存系统上,可以使用distcc将编译作业分配给其他计算机。这需要一些设置,但是如果碰巧有一些额外的机器,它确实可以加快构建速

  • 配置选项 要做到最大限度的定制每一个软件包,获取完整的配置选项是必须的。当然,要想更加详细、全面的了解如何自定义安装,还需要查看 README INSTALL FAQ 之类的文档,甚至是软件包的官方手册。需要注意的是,有不少软件包的配置选项分布在多个 configure 脚本中,还有少数并不是通过 configure 脚本进行配置的,查看完整的配置信息就变成一件很吃力的事情了。因此唯一的建议就是:

  • 现在假设我们想要使用 Spark API 写一个独立的应用程序。我们将通过使用 Scala(用 SBT),Java(用 Maven) 和 Python 写一个简单的应用程序来学习。 我们用 Scala 创建一个非常简单的 Spark 应用程序。如此简单,事实上它的名字叫 SimpleApp.scala: /* SimpleApp.scala */ import org.apache.spark.S