シェルスクリプトでapt-get Upgradeまたはapt Upgradeを実行して「ダイアログ」を呼び出すと、入力が中断されます。

シェルスクリプトでapt-get Upgradeまたはapt Upgradeを実行して「ダイアログ」を呼び出すと、入力が中断されます。

rootとしてログインし、コマンドラインから直接「apt update」を実行すると、一部のパッケージのアップグレードはダイアログボックスを表示します(青い背景に白いテキスト、赤いブロックはTabキーを使用して選択したオプションを強調表示します) - Tabを使用するキーを押して選択すると、適切なオプションが入力され、プロセスが続行されます。

aptアップグレードコマンドを実行可能なBourneシェルスクリプト(apt-file update、aptアップグレード前のaptアップデートなどの他のコマンドと一緒に)に入れると、aptアップグレードプロセスはダイアログボックスを呼び出してユーザー入力を受け取ります(設定の以前の修正バージョン、設定を新しいバージョンに置き換えるなど)キーボード入力は無視されます。文字は端末にエコーされますが、会話プロセスには表示されません。

あなたができる唯一のことは、別のX端末に行き、aptプロセスを終了し、ロックファイルを削除し、dpkg --configure -aを実行し、apt-get -fアップグレードを実行することです。

ダイアログボックスが呼び出されると、stdinリダイレクトモードおよび/またはttyモードがrawモードに変わり、問題が発生したと考えられます。

それでは、aptがダイアログボックスを呼び出すときに入力が失われないように、いくつかの必要な設定を使用してシェルスクリプトでaptを実行できますか?

この問題は Debian、Ubuntu、Linux Mint でよく発生します。

ベストアンサー1

私のシェルスクリプトのすべてのエラー。

私がやっていることは、echo Y | apt upgrade明らかにダイアログボックスを呼び出すときにリダイレクトの問題を引き起こすことです。

apt upgrade -y私はいつもまたはする必要がありますwajig upgrade -y

初めて試したときに構文apt -y upgradeエラーについて文句を言いました。だから私は私が実装したという事実さえ忘れた恐ろしいハッキング方法を使用しました。

そのような問題が発生しないように、他の人に注意を払うようにしてください。

おすすめ記事