6

故事

在清理了我的 Dreamhost 共享服务器的主文件夹后,我决定重新开始并编译/重新安装 Python。我发现的所有教程和片段似乎都过于简单化,假设(或忽略)Python 正确编译所有模块所需的一堆依赖项。所以,从http://andrew.io/weblog/2010/02/installing-python-2-6-virtualenv-and-virtualenvwrapper-on-dreamhost/(迄今为止我找到的最好的指南)开始,我决定写一个一劳永逸的 Bash 脚本来自动化这个痛苦的过程,包括我计划使用的一堆其他东西。

剧本

我在http://bitbucket.org/tmslnz/python-dreamhost-batch/src/上托管脚本

待办事项

到目前为止,它运行良好,并且在大约 900 秒内完成了它需要做的所有事情,在流程结束时为我提供了一个功能齐全的 Python / Mercurial / etc...设置,甚至无需注销并重新登录。

我虽然这可能对其他人也有用,但是我认为它缺少一些东西,我不太确定如何去做,最好的方法是什么,或者如果这不起作用任何意义。

  • 检查错误并中断
  • 检查软件包的次要版本并给出警告
  • 检查已知依赖项
  • 使用参数只安装一些包而不是注释掉行
  • 以易于更新的方式组织代码
  • 可选择使安装程序和编译静默,并将错误记录到文件中
  • 防故障 .bashrc 修改以防止破坏 ssh 登录并且必须通过 FTP 重新登录来修复它

编辑:隐含的问题是:比我更害羞的任何人都可以就上述观点的价值提供一般性建议或强调他们在这种方法中看到的任何问题吗?(请参阅下面我对Ry4an评论的回答)

要点

我不是 UNIX 或 Bash 或编译器专家,这是通过反复试验和错误反复构建的。它正在以某种方式走向 apt-get(嗯,它的 1% ......),但由于 Dreamhost 和其他人显然无法在共享服务器上提供 root 访问权限,这在我看来是一个潜在的非常有用的解决方法;特别是涉及一些社区工作。

4

2 回答 2

2

简化它的一种方法是使其与以下之一一起工作:capistrano/fabric、puppet/chef、jhbuild 或 buildout+minitage(以及许多 cmmi 任务)。有一些机会可以考虑通用代码,尤其是比 bash 更高级的代码。然而,你会遇到引导问题,所以也许不要管它。

如果您想查看用户态包管理器,可以使用 autopackage(很好地引导)、nix快速启动)和stow(简单但有助于隔离)。

于 2010-06-13T19:43:12.487 回答
1

老实说,我只会为所有部件构建带有名称前缀的包,然后将它们安装在下面/opt,这样它们就不会碍事。这样,它只需要下载时间和一些安装时间。

于 2010-05-26T23:29:01.600 回答