安装特定版本的软件包(postgresql)以及 gentoo 上的最新版本

安装特定版本的软件包(postgresql)以及 gentoo 上的最新版本

我升级了我们的 gentoo 服务器,但在消息中迷失了方向,长话短说,我在运行 pg_upgrade 到 9.2 之前删除了我的 postgresql 9.1..然后我发现 pg_upgrade 需要以前版本的二进制文件仍然存在!

如何在不删除 9.2 的情况下重新安装 postgresql 9.1?

我知道我可以用 /etc/portage/package.mask

例如。

>dev-db/postgresql-server-9.1.9
<dev-db/postgresql-server-9.1.9

但我担心这样做会代替安装的postgresql最终比以前更加糟糕。

答案1

dev-db/postgresql-server投币口-ed 在主要版本和次要版本上,因此重新安装9.1不应该强制删除9.2(理论上,SLOT包的两个可用版本的依赖关系可能会发生冲突,并且可能会阻止您这样做):

$ eix -c postgresql-base --or postgresql-server
[I] dev-db/postgresql-base (9.1.8(9.1)@04/13/2013 9.2.3-r1(9.2)@04/13/2013): PostgreSQL libraries and clients
[I] dev-db/postgresql-server (9.1.8-r1(9.1)@04/13/2013 9.2.3-r1(9.2)@04/13/2013): PostgreSQL server
Found 2 matches.

如您所见,两个版本同时安装。

另外,为了帮助处理未开槽的包裹,您可以使用快包打包当前安装的版本。大致的工作流程如下:

  • quickpkg v2
  • 卸载 v2
  • 安装 v1
  • 做你自己的事情()
  • 使用先前生成的二进制包从 v1 更新到 v2(参见portages-k/-K开关)

quickpkg有一个开关可以包含包的配置文件(--include-config),您可能也想使用它(参见man quickpkg)。

在执行大量升级(tm)您总是可以选择quickpkg那些您认为以后可能会因为某种原因引起麻烦的最重要的软件包(例如 MySQL、PostgreSQL、Apache 等),然后您可以在必要时快速切换回早期版本。

这确实不是意味着您不必备份您的数据(和配置文件,即使包含在您的二进制包中)!

答案2

仅作为参考,根据 Adrian 的回答,我大胆地做了一个

emerge /dev-db/postgresql-server:9.1

请注意,我使用的是:9.1而不是:9.1.9(最新版本),这导致了

there are no ebuilds to satisfy "dev-db/postgresql-server:9.1.9"

一开始让我很困惑。

现在他们幸福地生活在一起:

$ equery l postgresql-server
* Searching for postgresql-server ...
[IP-] [  ] dev-db/postgresql-server-9.1.9:9.1
[IP-] [  ] dev-db/postgresql-server-9.2.4:9.2

相关内容