在Dreamhost上安装和编译Python、Django、Virtualenv、Mercurial、Git、LessCSS等的脚本

6 投票
2 回答
1012 浏览
提问于 2025-04-15 23:11

故事

在清理了我在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 / 等等的环境,甚至不需要注销再登录。

我觉得这可能对其他人也有用,但我认为还有一些缺失的地方,我不太确定该怎么做,最好的做法是什么,或者这是否根本没有意义。

  • 检查错误并中断
  • 检查软件包的小版本更新并给出警告
  • 检查已知的依赖项
  • 使用参数只安装某些软件包,而不是注释掉代码行
  • 以易于更新的方式组织代码
  • 可选地让安装和编译过程静默进行,并将错误记录到文件中
  • 确保.bashrc的修改是安全的,以防止破坏ssh登录,避免需要通过FTP重新登录来修复

编辑: 暗含的问题是:有没有人比我更害羞,能提供关于上述要点的价值的建议,或者指出他们认为这个方法存在的任何问题?(见我对Ry4an评论的回答)

要点

我不是UNIX、Bash或编译器的专家,这个脚本是通过反复试验逐步构建的。它在某种程度上朝着apt-get的方向发展(好吧,1%...),但由于Dreamhost和其他公司显然不能在共享服务器上提供root访问权限,这对我来说看起来是一个非常有用的解决方案;特别是如果有一些社区的合作参与其中。

2 个回答

1

老实说,我会给所有的组件起个名字前缀,然后把它们打包安装到 /opt 这个地方,这样就不会影响到其他东西了。这样做只需要花点时间下载和安装就可以了。

2

有一种方法可以简化这个过程,就是让它和以下工具之一一起工作:capistrano/fabric、puppet/chef、jhbuild,或者buildout+minitage(还有很多cmmi任务)。在这些工具中,有一些地方可以提取出共同的代码,尤其是用比bash更高级的语言来做。不过,你可能会遇到一些启动问题,所以也许保持现状就好。

如果你想了解一下用户空间的包管理工具,可以看看autopackage(启动得很好),nix快速入门),还有stow(简单但有助于隔离)。

撰写回答