在生产服务器上安装 Subversion 是个好主意吗?
答案1
让我们在这里定义“好主意”。顺便说一句,我在这里做了一些假设——svn 指的是客户端,而不是源代码存储库。对于生产服务器,我假设你指的是面向世界的 Web 服务器或类似的东西。
svn 本身可能不会损害生产服务器。正如 Evan Anderson 所说,它是一个用户空间进程,不会对运行它的机器造成太大的损害。
但是,让面向世界的服务器能够读取您的源代码树可能是一个非常糟糕的主意。面向全世界的机器被攻陷的可能性相当高,当这种情况发生时,您真的不希望黑客能够检查您的技术瑰宝。
只要它只能访问一组受限的数据,我就不会犹豫将 svn 客户端放在生产服务器上——生产配置文件可能是一个很好的用途,系统管理脚本可能是另一个。
总结:我不认为在生产机器上安装 svn 是一个特别好或特别坏的主意——如果它有显著的实用性,那就安装吧。然而,我认为让生产服务器访问主源代码树是一个糟糕的主意,无论是通过 svn 还是其他机制。
答案2
嗯,这要看情况。如果你指的生产服务器是指将其安装在你的生产 Web/数据库服务器上,那么可能不是。如果你指的生产服务器是指“可靠的服务器得到备份”,那么是的。
我会避免将 subversion 放在有其他生产应用程序的服务器上,尤其是当该服务器可以通过网络访问但不需要时。你最不希望发生的事情就是有人入侵并窃取(或破坏/删除)你的源代码。
答案3
嗯——如果你需要的话。这是一个用户空间进程,因此无论服务器操作系统是什么,它都不太可能从根本上影响服务器性能(即操作系统崩溃等)。一般来说,如果你需要服务器上的某些东西,你就应该安装它。如果你不需要,就不应该安装。(我知道这听起来有点傻,但你会惊讶地发现有多少服务器无缘无故地运行着 HTTP/SMTP/等服务器程序。)
决定将其安装到哪台特定的服务器计算机上取决于很多因素——容量、安全性、使用它的用户的可访问性、与可能需要相同 TCP 端口的其他软件的共存等等。
答案4
如果您的目标是使用它来跟踪系统配置文件的变化,这是一个好主意,但有更好的工具可以做到这一点。
例如etckeeper。此工具确实要求您在某处有一个服务器可以访问的存储库。