使用 pkgadd 安装多个软件包

使用 pkgadd 安装多个软件包

我有一个包含我需要的每个软件包的目录。我真的不想浏览几十个文件并手动为它们调用 pkgadd。

有没有办法使这个过程自动化或者调用 pkgadd 让它安装目录中的所有内容?

谢谢。

答案1

Solaris 软件包可以存储为单个文件,也可以存储为文件目录树。如果软件包以目录树格式存储,则 -d 选项支持安装多个软件包。您可以使用以下命令pkgtrans解压软件包文件:

pkgtrans FOObar.pkg /var/tmp/pkgs

这将创建一个目录/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

也可能有效。

答案2

这应该可以让您入门 - 如果您真的要使用它,您需要美化它并扩展它。目前它无法优雅地处理文件名中的控制字符空格。如果这是在 Solaris 上,您可能需要调整 sh 的位置。

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

答案3

pkgadd -d /path/to/directory all应该可以满足您的要求。但是,如果某些软件包依赖于其他软件包,则all您需要按照安装顺序列出它们。

相关内容