Bash

如何在 bash 腳本中為來自 apt-get 的人使用 zypper?

  • July 19, 2019

我有幾個關於在 bash 腳本中從 apt-get 遷移到 zypper 的問題。

這相當於什麼?

sudo apt-get install curl --assume-yes

(其中 curl 可以是任何包)

我找到了Zypper 備忘單 - openSUSE。非常好!但我會很欣賞這裡的經驗之聲——在我想自動同意所有提示而不跳過需要響應的內容的腳本中使用 zypper 的正確方法是什麼?

由於我缺乏經驗,我很想使用:

sudo zypper --non-interactive --no-gpg-checks --quiet install --auto-agree-with-licenses curl

但這真的等同於--assume-yes嗎?

這些等價物呢?

sudo apt-get autoremove -y
sudo apt-get autoclean -y

表明沒有…

有 gdebi-core 的替代品嗎?或者 zypper 的“強大的可滿足性求解器”不需要 gdebi?我將 gdebi 用於需要在舊版本上安裝軟體包並且我已經有一個 .deb 文件(但不是所有依賴項)的情況。

通常,當以非互動方式執行 zypper 時,您應該--non-interactive在快捷方式中使用模式:-n

zypper -n install curl

對於來自apt-get install -y curl. 一些 zypper 子命令還支持特定於命令的-y/--no-confirm選項作為 / 的別名-n--non-interactive但並非所有子命令都支持。由於該install命令確實實現了這一點,因此該命令等效於上述命令:

zypper install -y curl

請注意-ymust 出現在 之後 install,而 global-n選項出現子命令之前(zypper install -n意味著不同的東西;請閱讀手冊頁)。

$$ Edit $$以下部分不再準確,但保留以供歷史參考。目前的 zypper 支持--gpg-auto-import-keys自動導入和信任與新儲存庫關聯的 gpg 密鑰的選項。


根據文件,沒有互動模式就無法接受 GPG 密鑰:

只能在互動模式下信任或導入新密鑰

即使有--no-gpgp-checksGPG 密鑰也會被拒絕。

腳本的解決方法是使用管道和echo

zypper addrepo http://repo.example.org my_name | echo 'a'

引用自:https://unix.stackexchange.com/questions/82016