0

我目前正在编写 Web 应用程序的服务器端,这是我人生中的第一次。我正在使用 nodeJS,并计划使用 MongoDB 作为我的数据库。在 MongoDB 网站上,他们的教程通过下载 mongoDB 文件并将其提取到本地文件夹中,但我已经通过 aptitude 安装了所有内容。

以这种方式将数据库文件保存在本地文件夹中而不是使用包管理器有什么好处?我觉得将来有新的 MongoDB 版本时通过包管理器更新代码会更容易,但我真的不确定。

有人能够列出使用一种方法与另一种方法相比的一些优点或缺点吗?如果我打算在未来使用猫鼬,那么使用一种方法与另一种方法会有所不同吗?

最好的,谢谢,
萨米

4

2 回答 2

1

这是我的看法,包管理器更好。

包管理器优点

  • 与操作系统的其余部分一致
  • 提供清点已安装软件包的能力
  • 提供适当的自动卸载功能
  • 内置了更多的健壮性(如果出现问题,不会在文件系统上留下 1/2 的 tar 文件)
  • 专门创建比普通的旧 tar 文件更好
  • 促进其他 mongodb/ubuntu 用户的一致性
  • 具有可用于更好升级的智能(保留配置文件、交互式差异等)

包管理器缺点

  • 不太灵活/可定制(但实际上这是变相的好东西)

请注意,为了解决@Gates 关于在第 1 天安装服务器 1 并获得 mongodb 版本 1,然后在第 2 天构建服务器 2 并获得 mongodb 版本 2 的观点,这是很好的默认行为。如果要确保版本匹配,可以像这样安装特定版本。

apt-get install mongodb-10gen=1.8.2

有关详细信息,请参阅此博客

于 2011-08-11T16:09:40.437 回答
1

有人能够列出使用一种方法与另一种方法相比的一些优点或缺点吗?

包管理器优点:

  • 跨多台机器复制安装过程很容易
  • 它通常带有一个配置文件和“服务”设置(取决于你的包)

包管理器缺点:

  • 目前命名不一致
  • 可能无法获得您需要的错误修复版本

我觉得将来有新的 MongoDB 版本时通过包管理器更新代码会更容易,但我真的不确定。

这里的问题是 10gen 的软件包名称非常粗略。目前的包名是 mongodb-10gen几个月mongodb-stable。1.6 到 1.8 版本有重大变化,1.8 到 2.0(或 1.10 或其他……)可能也是如此。

您会注意到包中没有版本号。所以有一天你可以添加一台服务器,发现它运行的是 1.10 而不是 1.8。(可能会破坏代码)

由于 MongoDB 是一个年轻的产品,最好只保留“当前开发”构建的副本,以便您可以将正确的版本部署到所有服务器。整个wget / tar过程并没有那么沉重。

于 2011-08-11T04:38:36.017 回答