我有我需要的每个包的目录。 不要真的想要通过几十个文件并为它们手动调用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 ,则需要按照应该安装的顺序列出它们。