「apt-get update」に正確な出力を「apt update」として表示させる


8

Advanced Packaging ToolのCLIインターフェースを学習しています。apt(8)stdoutがターミナルではない場合の出力からは、「安定したプログラミングインターフェイスを期待するスクリプト」には適さないので、を調べていapt-get(8)ます。

違いの1つapt updateとは、apt-get updateすべてのキャッシュが更新された後に、後者は最後の行が欠落しているということです。

8 packages can be upgraded. Run 'apt list --upgradable' to see them.

この正確な行をで表示する方法を知りたいですapt-get(8)


私の知る限り、apt(Advanced Packaging Tool)とapt-getは別物です。彼らは私が理解したものとは異なる動作をするように設計されています。あなたがあなたが望むものをあなたに与えたら、おそらく代わりにそのコマンドを使う習慣を作ってください。
ブレンデンマクファーリン

回答:


9

man apt-get ショー:

   -s, --simulate, --just-print, --dry-run, --recon, --no-act
       No action; perform a simulation of events that would occur based on
       the current system state but do not actually change the system.
       Locking will be disabled (Debug::NoLocking) so the system state
       could change while apt-get is running. Simulations can also be
       executed by non-root users which might not have read access to all
       apt configuration distorting the simulation. A notice expressing
       this warning is also shown by default for non-root users
       (APT::Get::Show-User-Simulation-Note). Configuration Item:
       APT::Get::Simulate.

だからあなたがやるなら:

apt-get upgrade --dry-run

それは出力します:

...
4 to upgrade, 0 to newly install, 0 to remove and 0 not to upgrade.
...

ええ、私は調べてman 8 apt-getそのオプションを見つけましたが、出力はとは異なりましたapt
iBug

どう違う?私は自分のシステムをチェックしたところ、まったく同じです。私はそれが理由は同じだと思ったapt本当に周りのプログラムのラッパーでapt-get、それは警告が存在する理由です。
tu-Reinstate Monica-dor duh

aptが表示され8 packages can be upgraded. Run 'apt list --upgradable' to see them.、回答が表示されます4 to upgrade, 0 to newly install, 0 to remove and 0 not to upgrade.
iBug

1
はい、それはあなたが私が4を持っているところにアップグレードするために8を持っているからです。
tu-Reinstate Monica-dor duh

4
はい、まさにそれが警告です。 aptはそのテキストを保証するものではなく、その数を保証するものではない場合もあります。 apt-getただし、さまざまな方法で処理するために他のソフトウェア(UIやデーモンなど)によって使用されるため、厳密な出力要件があります。したがって、コードを変更してapt-getの出力を受け入れるか| sed 's/to upgrade/packages can be upgraded/g'、たとえばを変更することができます(後でコードが破損する危険があります)。
tu-Reinstate Monica-dor duh

4

利用可能な更新の数を処理する必要があると思います、ここに提案があります:

# With no option, returns two numbers, no CR nor LF
/usr/lib/update-notifier/apt-check

# With --human-readable, returns numbers, locale LANG text & CR/LF
/usr/lib/update-notifier/apt-check  --human-readable

須藤する必要
出力が持つ仕事に簡単ではありません

より多くのオプション:

> /usr/lib/update-notifier/apt-check  --help
Usage: apt-check [options]

Options:
  -h, --help            show this help message and exit
  -p, --package-names   Show the packages that are going to be
                        installed/upgraded
  --human-readable      Show human readable output on stdout
  --security-updates-unattended
                        Return the time in days when security updates are
                        installed unattended (0 means disabled)

これは、motdSSHログインで生成するために使用されるものとまったく同じですか?
iBug

はい、同じ出力のように見えますが、motdの方法はわかりません
cmak.fr

2

からman 8 apt

...いくつかのオプションを有効にします...

次に、/usr/share/doc/apt/examples/configure-index.gzzcat(1)テキストコンテンツを表示するために使用して)調べたところ、このオプションに気づきました。

apt::cmd::show-update-stats

それで、私は次のコマンドを実行して、私が望んでいたことを正確に実行しました。

# apt-get -o apt::cmd::show-update-stats=true update

XenialとBionicで動作することがテストされています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.