0

我正在尝试通过 SUSE Micro OS 中的 zypper 包管理器安装一个包。

我正在尝试借助 bash/shell 脚本自动安装软件包。

$ zypper install libopenssl-devel
Loading repository data...
Reading installed packages...
Resolving package dependencies...

Problem: nothing provides libopenssl0_9_8 = 0.9.8h needed by libopenssl-devel-0.9.8h-30.11.x86_64
 Solution 1: do not install libopenssl-devel-0.9.8h-30.11.x86_64
 Solution 2: break libopenssl-devel-0.9.8h-30.11.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or cancel [1/2/c] (c):

作为该过程的一部分,我想预先选择解决方案 2,也就是说,我需要一种在脚本本身中选择首选解决方案的方法。

我尝试了一些选项,但没有奏效。以下所有选项都选择选项 c,这是默认行为。

zypper install libopenssl-devel <<< echo "2"
echo "2" | zypper install libopenssl-devel
zypper -n install --force libopenssl-devel

我不能使用 rpm 包管理器。

4

1 回答 1

0

yes命令应该这样做。还可以在这里查看其他方法=> https://stackoverflow.com/a/53465375/14320738

$ yes 2 | zypper install libopenssl-devel

编辑

创建expect脚本:

[root@10 folder]# cat expctscript
#!/usr/bin/expect -f
spawn bash -c "yum install perl"
expect "Is this ok"
send "N\r"
interact

使其成为可执行文件以避免权限被拒绝错误。

[root@10 folder]# chmod +x expctscript 

expctscript

[root@10 folder]# ./expctscript

输出

[root@10 folder]# ./expctscript
spawn bash -c yum install perl
Last metadata expiration check: 1:40:25 ago on Wed 07 Jul 2021 11:05:58 AM +03.
Dependencies resolved.
================================================================================
 Package                      Arch   Version                    Repository
                                                                           Size
================================================================================
Installing:
 perl                         x86_64 4:5.26.3-419.el8           AppStream  73 k
...
...
...
...
...
...
Transaction Summary
================================================================================
Install  113 Packages
Upgrade    3 Packages

Total download size: 18 M
Is this ok [y/N]: N
Operation aborted.
[root@10 folder]#

注意:我无法libopenssl-devel在我的 centOS 上测试安装,因为它是一个 Suse 软件包。所以相应地修改expctscript内容。

于 2021-07-01T13:45:35.453 回答