有时,当从Internet下载软件时,我发现有一个.deb软件包可用于我的Debian / Ubuntu和一个待编译的tarball。一开始,我只是为了易于安装而使用该软件包,甚至都不敢尝试编译。即使是声音,也让我有些害怕。但是,如今,当我可以选择时,有时会陷入困境:与.deb软件包相比,从源代码进行编译是否有不受欢迎的优势?我希望在这里找到答案,谢谢。
有时,当从Internet下载软件时,我发现有一个.deb软件包可用于我的Debian / Ubuntu和一个待编译的tarball。一开始,我只是为了易于安装而使用该软件包,甚至都不敢尝试编译。即使是声音,也让我有些害怕。但是,如今,当我可以选择时,有时会陷入困境:与.deb软件包相比,从源代码进行编译是否有不受欢迎的优势?我希望在这里找到答案,谢谢。
Answers:
从源代码进行编译的好处是,您可以使用标准标志Ubuntu软件包中可能缺少/禁用的某些标志/选项来编译软件包。同样,它使安装同一程序的多个版本变得容易。另外,您可以选择一个确切版本的软件包,该软件包可能已经从Ubuntu存储库中删除或不存在(例如:/ opt /目录中有多个Python 2.4.x版本,因为我需要它运行一些旧版本)软件)。
从源代码进行编译的缺点是,除非先构建.deb然后再安装它,否则正常的“ ./configure; make; sudo make install”过程会使Ubuntu的软件包管理器完全不了解所做的更改,因此您'不会获得任何手动编译软件的更新;如果您不小心将软件包安装在单独的位置,则软件包管理器可能会在以后覆盖/破坏您的软件包。
简而言之:始终考虑首先从标准Ubuntu存储库安装,接下来考虑安装.deb。仅当您确切知道为什么需要这样做时,才从源代码进行编译。
conda
会自动创建虚拟环境并为其安装不同的Python安装,创建和维护每个项目的版本。但是正如您所说的,virtualenv本身不会这样做。