apt-get upgrade 和 update 会破坏带有依赖项的旧 Rails 应用程序吗?

apt-get upgrade 和 update 会破坏带有依赖项的旧 Rails 应用程序吗?

我在我的服务器上运行着一个 Rails 2.3.8 应用程序,以及其他依赖的 gem,它们通常需要旧版本而不是支持 Rails 3 的新版本。

我没有在我的 VPS 上运行过apt-get updateapt-get upgrade我担心运行其中任何一个都可能会将我的 Rails 和其他 gem 升级到最新版本,从而破坏我的应用程序。

我只是想更新我的 Ubuntu 系统,例如安全更新等,而不触碰任何应用程序。

那么,我应该跑什么?

谢谢。

答案1

如果您在安装安全更新(使用 可以正确完成apt-get upgrade)后系统出现任何问题,那么一般来说,这是升级包中的一个错误。

当然,这是假设您没有做奇怪的事情,例如混合发行版本或使用第三方存储库——在这种情况下,一切都将不复存在,您完全靠自己。所以不要这样做。

答案2

如果您想确保您的 gem 不会在服务器更新/升级期间升级,您可以将特定的 gem 版本添加到您的 environment.rb 文件中。

举个例子,除了声明 gem 名称之外,你还可以添加版本号:

config.gem 'delayed_job', :version => '~>2.0.4'

上面这行代码将确保安装 delayed_job gem,但只安装 2.0.4 的特定版本。

我注意到您说您不想碰应用程序。我认为如果不先手动添加 gem 版本号(如我上面所述),您无法实现服务器范围的更新。

添加版本号后,您应该能够运行“apt-get update”和“apt-get upgrade”,而不必担心应用程序会崩溃。据我所知,当您更新/升级服务器时将要安装最新版本的 RoR,但它不会删除版本 2.3.8。

相关内容