使用pkgadd安装多个软件包

我有我需要的每个包的目录。 不要真的想要通过几十个文件并为它们手动调用pkgadd。

有没有办法使这个过程自动化,或者调用pkgadd来安装目录中的所有东西?

谢谢。

Solaris软件包可以存储为单个文件,也可以存储为文件的目录树。 -d选项支持安装多个包,如果它们存储在目录树格式。 您可以使用pkgtrans来解压缩包文件:

 pkgtrans FOObar.pkg /var/tmp/pkgs 

这将创build一个目录/var/tmp/pkgs/FOObar ,其中包含组成该软件包的文件和子目录。 您可以将所有软件包解压到同一个地方,然后运行:

 pkgadd -d /var/tmp/pkgs all 

一次安装全部。

我没有尝试过,但pkgadd -s选项声称将软件包解压缩到/var/spool/pkg ,而没有-d的pkgadd在该目录中查找软件包。 所以序列:

 pkgadd -s file1.pkg pkgadd -s file2.pkg ... pkgadd all 

可能也会工作。

这应该让你开始 – 如果你真的要使用它,你会想要把它扩展。 现在它不会适当地处理文件名中控制字符的空格。 如果这是在Solaris上,你可能不得不调整sh的位置。

 #!/bin/sh dir=/path/to/dir/with/pkgs pkgs=`ls $dir` for i in $pkgs do pkgadd $i done 

pkgadd -d /path/to/directory all应该做你想要的。 但是,如果某些软件包依赖于其他软件包,而不是all ,则需要按照应该安装的顺序列出它们。