Solaris 软件包升级

标签 solaris packaging

我在思考 Solaris 11 如何打包时遇到了很多麻烦。我知道有一个 yum 类型的打包方法,但我希望有一个 rpm -irpm -U 方法允许要交付然后安装或升级的包。

现在我已经找到了如何制作一个包,即pkgmkpkgtrans。鉴于此,我可以创建一个可以像这样安装的“foo_1.0.pkg”文件:

pkgadd -d foo_1.0.pkg

但是我不知道如何用“foo_2.0.pkg”升级这个包:

root@hostname # pkgadd -d foo_2.0.pkg   

The following packages are available:
  1  foo     foo
             (x86) private_build

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: all

Processing package instance <foo> from </root/foo_2.0.pkg>

foo(x86) private_build

Current administration requires that a unique instance of the <foo>
package be created.  However, the maximum number of instances of the
package which may be supported at one time on the same system has
already been met.

No changes were made to the system.

我做错了什么?看来我应该使用 pkg update ,但这似乎暗示我需要在 repo 中发布我的 pkg。

最佳答案

首先,您使用的不是 Solaris 11 封装 (IPS),而是旧版 SVR4 封装。

对于后者,您无法升级自定义包。唯一的方法就是简单地删除旧包并安装较新的包,这就是 rpm -U 正在做的事情。

pkgrm foo
pkgadd -d foo_2.0.pkg foo

关于Solaris 软件包升级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22050795/

相关文章:

linux - 为什么这里的 Solaris 汇编器生成的机器码与 GNU 汇编器不同?

java - 在 jar 里找到 jar

c - 害怕 solaris 和 linux 下的结构差异

solaris - UNIX 域套接字上出现 ECONNREFUSED 的原因是什么?

java - 如何在Netbeans中将maven项目的源代码打包到jar中?

R -- 不是由 Sweave 制作的小插图可能吗?

python - Error loading python27.dll 错误 for pyinstaller

java - 从 Windows 为 Java 创建 native OSX 可执行文件

solaris - 打开solaris代码与solaris代码

c++ - 如何在不依赖 'core' 文件的情况下使用 libumem 查找堆损坏?