RPM Linuxに何かをインストールするときにdnf
最も簡単な呼び出しでメッセージが表示される場合、デフォルトの答えは「N」(いいえ)で、ユーザーは「Y」(または「y」)を押してからEnterキーを押してソフトウェアパッケージをインストールする必要があります。インストールを中止するには、Enterキーを押すだけです。
Debian ベースのシステムで同じことを行う場合、apt
デフォルトは「Y」(yes) です。誤ってEnterキーを2回押すと、システムに重大な結果が生じる可能性があります(特にapt
パッケージが試みたいパッケージと競合する場合)。 installを実行すると、パッケージは同じプロセスで削除されます。))
apt
だから私の質問は:プロンプトもデフォルトで「N」に設定できますか?
システムがデプロイされている間、これはエイリアスコマンドラインオプションではなく構成でなければなりません。
答え1
刺す源泉:
if (YnPrompt(_("Do you want to continue?")) == false)
さまざまな場所の依存関係関数YnPrompt()
そのために:
// YnPrompt - Yes No Prompt. /*{{{*/ // --------------------------------------------------------------------- /* Returns true on a Yes.*/ bool YnPrompt(char const * const Question, bool const Default, bool const ShowGlobalErrors, std::ostream &c1o, std::ostream &c2o) { ...
bool YnPrompt(char const * const Question, bool const Default) { return YnPrompt(Question, Default, true, c1out, c2out); }
// prompting APT_PUBLIC bool YnPrompt(char const *const Question, bool Default = true); bool YnPrompt(char const * const Question, bool const Default, bool const ShowGlobalErrors, std::ostream &c1o, std::ostream &c2o);
[Y/n]
ヒントが有効になっている場合は、さまざまな言語または一般的ではない言語(存在する言語、以下の例を参照)でディスプレイを翻訳/ローカライズするセクションがあります。[y/N]
if (Default == true) // TRANSLATOR: Yes/No question help-text: defaulting to Y[es] // e.g. "Do you want to continue? [Y/n] " // The user has to answer with an input matching the // YESEXPR/NOEXPR defined in your l10n. c2o << " " << _("[Y/n]") << " " << std::flush; else // TRANSLATOR: Yes/No question help-text: defaulting to N[o] // e.g. "Should this file be removed? [y/N] " // The user has to answer with an input matching the // YESEXPR/NOEXPR defined in your l10n. c2o << " " << _("[y/N]") << " " << std::flush;
それからその部分答えがない場合は、プロンプトの入力を検索します。APT構成で強制。
Default
したがって、ヒントは、関数を呼び出すときに使用するパラメータ値によって異なります。
[Y/n]
このパラメータはデフォルトのプロンプト/回答から離れて数箇所でのみ提供されYes
、毎回定数として直接提供されるため、APT設定に依存しません。例は以下にあります。源泉のためapt-mark
:
if (YnPrompt(_("Do you want to continue?"), false) == false)
そして間違った次のようにヒントを要求します[y/N]
。
# apt-mark minimize-manual
The following packages will be marked as automatically installed:
[...]
Do you want to continue? [y/N]
#
したがって、これらのプロンプトが発生しないようにAPT構成があります。APT::Get::Assume-Yes
またはAPT::Get::Assume-No
Yes
プロンプトNo
を隠し直接/から/に変更し、デフォルトのプロンプト/応答を/から/に変更することはできません。APT::Mark::Simulate
[Y/n]
Yes
[y/N]
No
[y/N]
No
[Y/n]
Yes
結論:この機能は現在利用できません。これは、渡されたパラメータの評価方法を変更するために調べることができる1つまたは2つの新しい専用APT設定パラメータ(「どのように」および「作業」に似ている)を作成することによってAPT::Get::Assume-Yes
達成できます。あるいは、クエリ時にそのコマンドが渡す内容を変更するために、特定のAPTコマンド(たとえば)に関連する他のAPT設定パラメータがありますが、現在は存在しません。APT::Get::Assume-No
YnPrompt()
Default
apt-mark
YnPrompt()