romant Asked: 2009-10-14 16:30:59 +0800 CST2009-10-14 16:30:59 +0800 CST 2009-10-14 16:30:59 +0800 CST 使用 pkgadd 安装多个软件包 772 我有一个包含我需要的每个包的目录。真的不想检查几十个文件并为它们手动调用 pkgadd。 有没有办法自动化这个过程或调用 pkgadd 让它安装目录中的所有内容? 谢谢你。 solaris 3 个回答 Voted Best Answer Kenster 2009-10-15T09:44:15+08:002009-10-15T09:44:15+08:00 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 可能也会起作用。 Josh Budde 2009-10-14T18:16:41+08:002009-10-14T18:16:41+08:00 这应该可以帮助您入门 - 如果您真的要使用它,您会想要美化它并扩展它。现在它不会优雅地处理文件名中的控制字符空格。如果这是在 Solaris 上,您可能必须调整 sh 的位置。 #!/bin/sh dir=/path/to/dir/with/pkgs pkgs=`ls $dir` for i in $pkgs do pkgadd $i done TRS-80 2009-10-14T19:14:28+08:002009-10-14T19:14:28+08:00 pkgadd -d /path/to/directory all应该做你想做的。但是,如果某些软件包依赖于其他软件包,则all您需要按照它们应该安装的顺序列出它们。
Solaris 软件包可以存储为单个文件,也可以存储为文件目录树。-d 选项支持安装多个以目录树格式存储的包。您可以使用
pkgtrans
解压缩包文件:这将创建一个目录
/var/tmp/pkgs/FOObar
,其中包含组成包的文件和子目录。你可以将所有的包解压到同一个地方,然后运行:一次安装所有这些。
我还没有尝试过,但是 pkgadd
-s
选项声称将包解压到/var/spool/pkg
,并且不带 -d 的 pkgadd 会在该目录中查找包。所以顺序:可能也会起作用。
这应该可以帮助您入门 - 如果您真的要使用它,您会想要美化它并扩展它。现在它不会优雅地处理文件名中的控制字符空格。如果这是在 Solaris 上,您可能必须调整 sh 的位置。
pkgadd -d /path/to/directory all
应该做你想做的。但是,如果某些软件包依赖于其他软件包,则all
您需要按照它们应该安装的顺序列出它们。