Làm cách nào để xác định kích thước của gói trong khi sử dụng apt trước khi tải xuống?


29

Khi sử dụng apt-get install <package_name>và có các phụ thuộc cần được tải xuống, thiết bị đầu cuối xuất ra tên của các gói bổ sung và tổng kích thước và yêu cầu xác nhận trước khi tải xuống.

Nhưng, khi các phụ thuộc được thỏa mãn và không có gì ngoài gói được đặt tên cần được tải xuống, không có đầu ra kích thước và không có xác nhận.

Khi sử dụng Synaptic, tôi có thể thấy tổng kích thước mà các gói mới sẽ sử dụng sau khi cài đặt nhưng không có cách nào để xem kích thước cần tải xuống, ngoại trừ chuyển từ gói sang gói và sử dụng các thuộc tính để xem kích thước được nén.

Tôi muốn biết liệu có cách nào để xem kích thước của gói trong thiết bị đầu cuối và Synaptic trước khi tải xuống và cài đặt nó không?

Câu trả lời:


27

Trong thiết bị đầu cuối, cho một gói duy nhất:

apt-cache --no-all-versions show $package | grep '^Size: '

cho nhiều hơn một gói:

apt-cache --no-all-versions show $packages | 
    awk '$1 == "Package:" { p = $2 }
         $1 == "Size:"    { printf("%10d %s\n", $2, p) }'

Tôi không có ý tưởng về Synaptic.


ĐƠN VỊ này là gì?
tatsu

Tôi đoán đó Sizelà byte và Installed-Sizelà KiB nhưng tôi không biết nếu điều này được xác định ở bất cứ đâu. Ví dụ: các phiên bản Firefox:apt-cache show firefox | grep -E "Package:|Version:|Size:"
Mikko Rantalainen

CLI con người dự định là ngày nay apt. Ví dụ:apt show firefox | grep Size
Mikko Rantalainen

Đã tìm thấy tài liệu: Ý apt-cache showchí sẽ phát ra giá trị thực được chỉ định trong tệp debian/controltài liệu Installed-Sizecó thể tìm thấy ở đây: debian.org/doc/debian-policy/ trộm
Mikko Rantalainen

11

apt-cache show <package>hoặc aptitude show <package>sẽ hiển thị thêm thông tin về một gói, bao gồm kích thước của nó.

Chỉ dành cho kích thước gói, bạn có thể sử dụng:

apt-cache show <package> | grep Installed-Size

hoặc là

aptitude show <package> | grep 'Uncompressed Size'

Đối với .debcác gói bạn có thể sử dụng:

dpkg-deb -I <package>.deb | grep Installed-Size

1
Nó sẽ hiển thị kích thước của các phụ thuộc quá?
Tachyons

@Tachyons Câu hỏi là: " Có cách nào tôi có thể nhận được kích thước gói không? ". Nếu bạn bị xen vào kích thước phụ thuộc, bạn có thể sử dụng nút Hỏi Câu hỏi để hỏi một câu hỏi khác.
Radu Rădeanu

1
Nhưng bao gồm kích thước của dep có thể làm cho câu trả lời của bạn hiệu quả. chỉ đề nghị bạn của tôi, :)
rdʒɑ

1
@Jaidpkg-deb -I <package>.deb | grep Installed-Size
Radu Rădeanu

3
Đối với tôi nó trả về 68 ... MB? GB? Thìa?
puk

5

Bạn có thể sử dụng chế độ "chạy khô", chỉ giả vờ tải xuống và cài đặt các gói

$ aptitude install -sy xlockmore
The following NEW packages will be installed:
  xlockmore 
0 packages upgraded, 1 newly installed, 0 to remove and 27 not upgraded.
Need to get 194 kB of archives. After unpacking 373 kB will be used.
Would download/install/remove packages.

Đã thử nhưng tôi không thấy kích thước. Dòng: Cần lấy x lưu trữ. Sau khi giải nén x sẽ được sử dụng. không hiển thị.

1
Xin lỗi, đây không phải là apt-get (tôi có một bí danh shell cho điều đó). Cập nhật. Giải pháp này có lợi thế là hiển thị những gì bạn thực sự cần tải xuống (không tính các phụ thuộc đã được cài đặt).
Adam Byrtek

5

Điều này cũng đúng nhưng kích thước được hiển thị theo byte. Và điều này cho thấy kích thước ở định dạng tốt hơn nhưng nếu gói có kích thước rất nhỏ (giả sử <1MB) thì mặc dù vậy, echo 'n'nó sẽ cài đặt gói (Vì trong trường hợp đó, apt không nhắc).

Vì vậy, bạn sử dụng --no-downloadvới --assume-nonhư sau:

sudo apt-get --no-download --assume-no install <package_name> | grep 'Need to get'

Ở đây --no-downloadlập luận không tải gói và --assume-nolà giả sử không có ( n) trong trường hợp có bất kỳ dấu nhắc nào.

Thí dụ:

$ sudo apt-get --no-download --assume-no install ttf-devanagari-fonts 2>/dev/null | grep 'Need to get'
Need to get 938 kB of archives.

Câu trả lời này là tuyệt vời vì nó cũng bao gồm các phụ thuộc. Để hiển thị bộ nhớ 'thực' sẽ được sử dụng hết, grep cho 'không gian đĩa bổ sung'
Panki

0

Bạn có thể thử lệnh dưới đây để xem kích thước của lưu trữ cần được tải xuống cho một gói cụ thể.

echo 'n' | sudo apt-get install package | awk '/^Need to get/ {print $4,$5}'

Câu trả lời @enzotib là tốt nhưng nó cho thấy kích thước của tài liệu lưu trữ cần được tải xuống ở một số định dạng khác không phải trong mb's. Nhưng lệnh này sẽ hiển thị kích thước tính bằng Mb.

Thí dụ:

$ apt-cache --no-all-versions show chromium-browser | grep '^Size: '
Size: 41493718

$ echo 'n' | sudo apt-get install chromium-browser | awk '/^Need to get/ {print $4,$5}'
44.4 MB

echo 'n' | sudo apt-get install <package>vẫn cài đặt gói sao nếu nó có kích thước rất nhỏ
Pandya
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.