如何同时安装模式和包?

如何同时安装模式和包?

如何同时安装包模式(例如“C/C++开发工具”)和包(例如“mercurial”)?目前,需要两个命令;例如,我编写的安装说明sketch-frontend是,

sudo zypper install -t pattern "devel_C_C++" "devel_java"
sudo zypper install java-1_6_0-openjdk-devel mercurial

[关联]。

(动机)。确实,一个只需要两个命令,但在互联网连接较慢(或处理器较慢)的机器上,没有第二个命令自动继续是很烦人的。另外,用户需要提示进行包解析,因此仅添加--non-interactive标志不是一个选项。

谢谢!

答案1

编辑:附加<resolveabletype>:到可解析项可以让您在一个命令中匹配不同的类型。

java-1_6_0-openjdk-devel Mercurial 中的 zypper +pattern:devel_C_C++ +pattern:devel_java


创建一键安装将让您一次性完成包解析,但我不确定是否可以从其中调用一种模式。http://en.opensuse.org/openSUSE:One_Click_Install_ISV#Create_a_web_install_link然后你可以用 oci 调用它/sbin/OCICLI /path/to/foobar.ymp

答案2

最简单的解决方案:

sudo zypper install -t pattern "devel_C_C++" "devel_java" && sudo zypper install java-1_6_0-openjdk-devel mercurial

如果您担心sudo5 分钟后会超时,并且不希望用户必须输入两次密码,您可以这样做

sudo sh -c 'zypper install -t pattern "devel_C_C++" "devel_java" && zypper install java-1_6_0-openjdk-devel mercurial'

更新

因为听起来您希望这一切都是对 的一次调用zypper install,所以还有一些想法:

  1. 运行zypper searchzypper list两次,解析包名称,合并输出,然后zipper install使用完整的包列表运行一次
  2. 运行zypper install --dry-run以打印输出,然后要求用户确认,zypper install如果用户回答“是”,则在不使用试运行选项的情况下运行
  3. zypper install --download-only使用自定义包目录运行两次,然后运行zypper install <that directory>/*.rpm(请参阅mktemp -dpackagesdir中的选项zypp.conf

相关内容