我需要使用 zypper 自动安装软件包,这需要选择解决方案。如何在非交互模式下完成此操作?
# zypper in /tmp/repos-sles15-sp2-current.x86_64.rpm
Loading repository data...
Reading installed packages...
Resolving package dependencies...
Problem: nothing provides sles-release = 15.2 needed by repos-sles15-sp2-x86_64-20210609-1.x86_64
Solution 1: do not install repos-sles15-sp2-x86_64-20210609-1.x86_64
Solution 2: break repos-sles15-sp2-x86_64-20210609-1.x86_64 by ignoring some of its dependencies
Choose from above solutions by number or cancel [1/2/c/d/?] (c): c
我需要选择选项 #2。我尝试过:
- echo 2 | zypper 在 /tmp/repos-sles15-sp2-current.x86_64.rpm
- 是 2 | zypper 在 /tmp/repos-sles15-sp2-current.x86_64.rpm
- zypper 在 /tmp/repos-sles15-sp2-current.x86_64.rpm --force -y
有谁知道有助于选择选项#2 的技巧吗?
答案1
似乎您正在安装的软件包不适合您操作系统的版本。您找不到适合您的版本的 repos*rpm 软件包吗?
不推荐,但你可以使用
rpm -i --nodeps /tmp/repos-sles15-sp2-current.x86_64.rpm
但这忽略了全部依赖项,以及已经安装的依赖项。
答案2
怎么样--best-effort
,当我同时更新它们两个时,如果一个依赖项使另一个依赖项过时,这个选项可以帮我解决。