web-dev-qa-db-ja.com

apt-getから来た人のbashスクリプトでzypperを使用する方法は?

Bashスクリプトでのapt-getからzypperへの移行についていくつか質問があります。

これに相当するものは何ですか?

Sudo apt-get install curl --assume-yes

(curlはどのパッケージでもかまいません)

Zypper Cheat Sheet-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の代替品はありますか?あるいは、gypbiの「強力な充足可能性ソルバー」では、gdebiは必要ありませんか?古いバージョンにパッケージをインストールする必要があり、.debファイルを既に持っている(ただし、すべての依存関係ではない)場合は、gdebiを使用します。

12
MountainX

通常、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

-y後にinstallでなければならず、グローバル-nオプションはbeforeサブコマンド(zypper install -nは別のものを意味します。そのためのmanページをお読みください)。

[編集]以下のセクションは正確ではなくなりましたが、履歴参照のために残されています。現在のzypperは、新しいリポジトリに関連付けられたgpgキーを自動的にインポートして信頼する--gpg-auto-import-keysオプションをサポートしています。


ドキュメントによる インタラクティブモードなしでGPGキーを受け入れる方法はありません:

新しいキーは、対話モードでのみ信頼またはインポートできます

--no-gpgp-checksを使用しても、GPGキーは拒否されます。

スクリプトの回避策は、パイプとechoを使用することです:

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

--non-interactiveオプションがあります。 manページから:

Switches  to  non-interactive  mode. 
In this mode zypper doesn't ask user to type answers to various prompts, but uses default answers automatically. 
The  behaviour of this option is somewhat different than that of options like '--yes', since zypper can answer different answers to different questions. 
The answers  also  depend on other options like '--no-gpg-checks'.

Apt-getのautoremoveに実際の対応はありません。最も近いのは、removeコマンドの--clean-depsオプションです。これは、依存関係をすぐに(ただし、後でではなく)クリーンアップします。

8
mat

それはサンプルです

zypper --non-interactive --quiet addrepo --refresh -p 90 http://packman.inode.at/suse/openSUSE_Leap_15.0/ 'packman'
zypper --gpg-auto-import-keys refresh
zypper --non-interactive dist-upgrade --allow-vendor-change --from packman
zypper --non-interactive install vlc vlc-codecs

もちろん、--auto-agree-with-licensesですが、その前後で違いがあることを忘れないでくださいinstall

3
Marcelo Atie

これは私にとってはうまくいきました(SLES12SP3で確認):

zypper --non-interactive --quiet ar -C http://myrepo myrepo
zypper --gpg-auto-import-keys ref

注意 -C/--no-check ために zypper ar

これでパッケージをインストールできます:

zypper in -y --auto-agree-with-licenses vim
2
amaslenn