如何同时安装包模式(例如“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
如果您担心sudo
5 分钟后会超时,并且不希望用户必须输入两次密码,您可以这样做
sudo sh -c 'zypper install -t pattern "devel_C_C++" "devel_java" && zypper install java-1_6_0-openjdk-devel mercurial'
更新
因为听起来您希望这一切都是对 的一次调用zypper install
,所以还有一些想法:
- 运行
zypper search
或zypper list
两次,解析包名称,合并输出,然后zipper install
使用完整的包列表运行一次 - 运行
zypper install --dry-run
以打印输出,然后要求用户确认,zypper install
如果用户回答“是”,则在不使用试运行选项的情况下运行 zypper install --download-only
使用自定义包目录运行两次,然后运行zypper install <that directory>/*.rpm
(请参阅mktemp -d
和packagesdir
中的选项zypp.conf