Tạo ra các bản cập nhật apt-get Nhận được hiển thị đầu ra chính xác dưới dạng `apt update`


8

Tôi đang học giao diện CLI của Công cụ đóng gói nâng cao. Từ đầu ra apt(8)khi thiết bị xuất chuẩn của nó không phải là thiết bị đầu cuối, nó không phù hợp với "tập lệnh mong đợi giao diện lập trình ổn định", vì vậy tôi đang xem xét apt-get(8).

Một điểm khác biệt giữa apt updateapt-get updatelà cái sau thiếu dòng cuối cùng sau khi tất cả bộ đệm đã được cập nhật:

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

Tôi muốn biết làm thế nào tôi có thể hiển thị dòng chính xác này apt-get(8).


Theo như tôi biết, apt(Công cụ đóng gói nâng cao) và apt-getlà những thứ khác nhau. Chúng được thiết kế để chạy khác với những gì tôi hiểu. Nếu ai đó cho bạn những gì bạn muốn, có lẽ hãy tạo thói quen sử dụng lệnh đó để thay thế.
Brenden McFarling

Câu trả lời:


9

man apt-get trình diễn:

   -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.

Vì vậy, nếu bạn chỉ cần làm:

apt-get upgrade --dry-run

nó sẽ xuất ra:

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

Vâng, tôi đã đi qua man 8 apt-getvà tìm thấy tùy chọn đó, nhưng đầu ra khác với apt.
iBug

Khác nhau như thế nào? Tôi chỉ kiểm tra trên hệ thống của tôi và nó giống hệt nhau. Tôi nghĩ rằng nó giống hệt nhau bởi vì aptnó thực sự là một trình bao bọc lập trình xung quanh apt-getvà đó là lý do tại sao cảnh báo tồn tại.
tu-Tái lập Monica-dor duh

aptcho thấy 8 packages can be upgraded. Run 'apt list --upgradable' to see them., trong khi câu trả lời của bạn hiển thị4 to upgrade, 0 to newly install, 0 to remove and 0 not to upgrade.
iBug 25/03/19

1
Vâng, đó là bởi vì bạn có 8 để nâng cấp ở nơi tôi có 4. Hoặc bạn đang đề cập đến văn bản khác?
tu-Tái lập Monica-dor duh

4
Vâng, đó chính xác là những gì cảnh báo về. aptsẽ không đảm bảo cho bạn văn bản đó, và họ thậm chí có thể không đảm bảo cho bạn số đó. apt-gettuy nhiên có một yêu cầu đầu ra nghiêm ngặt bởi vì nó được sử dụng bởi các phần mềm khác (như UI và daemon) để xử lý nó theo nhiều cách khác nhau. Vì vậy, bạn có thể thay đổi mã của mình để chấp nhận apt-getđầu ra hoặc bạn có thể | sed 's/to upgrade/packages can be upgraded/g', ví dụ (và có nguy cơ phá mã sau này).
tu-Tái lập Monica-dor duh

4

Đoán bạn cần xử lý số lượng cập nhật có sẵn, đây là một gợi ý:

# 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

Không cần sudo
Đầu ra dễ làm việc với

Lựa chọn khác:

> /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)

Đây có phải là điều chính xác được sử dụng để tạo motdkhi đăng nhập SSH?
iBug

vâng, nó trông giống như cùng một đầu ra, nhưng tôi không biết motd
cmak.fr

2

Từ man 8 apt:

... cho phép một số tùy chọn ...

Sau đó, tôi đã đi qua /usr/share/doc/apt/examples/configure-index.gz(sử dụng zcat(1)để hiển thị nội dung văn bản) và nhận thấy tùy chọn này:

apt::cmd::show-update-stats

Vì vậy, tôi đã thực hiện lệnh sau đó đã làm chính xác những gì tôi muốn:

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

Đã thử nghiệm để làm việc trên Xenial và Bionic.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.