将我的 Debian 服务器升级到 Wheezy 只是为了安装 Mono

将我的 Debian 服务器升级到 Wheezy 只是为了安装 Mono

我希望能够使用mod-mono-server4该方法在 Mono 上运行 .NET 4.0 应用程序。

我目前正在运行一个带有 squeeze 的 debian 服务器,其 mono 版本如下:

$ mono --version
Mono JIT compiler version 2.6.7 (Debian 2.6.7-5)

不包括mod-mono-server4

根据http://mono-project.com/DistroPackages/Debian这是我能拥有的最新版本的 mono,因此看起来我需要使用 Wheezy 上的“测试”版本来获取版本 2.10.8.1。所以我的问题是,如何升级到测试版本,这是否不建议?我的服务器目前运行着几个网站,无论如何都不是测试服务器。

我假设我需要添加一些新的或修改当前的存储库,/etc/apt/sources.list但这会影响我的服务器上安装的其他东西吗?

答案1

您可以在 /etc/apt/preferences 中像这样设置固定:

Package: *
 Pin: release a=stable
 Pin-Priority: 700

Package: *
 Pin: release o=Debian,a=testing
 Pin-Priority: 300

Package: *
 Pin: release o=Debian
 Pin-Priority: -1

之后,您可以将测试 repo 添加到 /etc/apt/sources.list 和 aptitude 更新。

包固定允许您安装选定的包及其依赖项,从而使系统的其余部分保持稳定。

用于aptitude -t testing install mono设置包的测试版本。

混合不同的存储库时应该小心,因为您可能会得到破坏的软件包组合或最终导致系统混乱。

了解更多信息

答案2

简而言之,不要。

更长的版本:如果您将 Debian 版本设置为安装包,dpkg 也会尝试从新版本安装该包的所有依赖项。然后,它还会尝试安装其他依赖项,其中一半会与您现有包所需的依赖项发生冲突。

例如,如果您正在安装的软件包没有库依赖项并且几乎是原子的(例如一个小型的 Web 应用程序),那么您可能可以摆脱这种情况,但基本上,对于任何更复杂的东西,您最终都会陷入依赖地狱。

有一件事你尝试 squeeze-backports。这是一个比 squeeze 附带的版本更小的流行软件包的存储库。由于它们是针对 squeeze 附带的库进行编译的,因此您不会遇到依赖性问题。

看:http://backports-master.debian.org/关于如何配置 apt 来使用它,但对于维护人员是否为任何给定的包构建反向移植版本,这有点像彩票。

答案3

另一件值得尝试的事情是 apt-get 所需包的源代码并根据库的 squeeze 版本进行编译。

您可能会遇到一堆编译错误,需要处理它们。

结果将是一个反向移植的包。

如果您熟悉如何创建 Debian 软件包,那么这并不难。

手动的是一个良好的开端。

答案4

为 wheezy 添加 deb-src(仅限 deb-src!)行并使用“apt-get -b source”有时可以将软件包重新编译到较旧的发行版中。您可能必须以相同的方式安装依赖项。

相关内容