Một lệnh duy nhất để cập nhật mọi thứ trong Ubuntu?


15

Tôi biết rằng có ba lệnh để cập nhật và sau đó nâng cấp toàn bộ hệ thống, đó là:

  • sudo apt-get update # Tìm nạp danh sách các bản cập nhật có sẵn
  • sudo apt-get nâng cấp # Nâng cấp nghiêm ngặt các gói hiện tại
  • sudo apt-get dist-Nâng cấp # Cài đặt bản cập nhật (cái mới)

Có một lệnh siêu nâng cấp kết hợp tất cả các lệnh này thành một?


1
Không, bạn có thể làm nhiều nhấtsudo apt-get update && sudo apt-get dist-upgrade
heemayl

Nó vẫn là một dòng lệnh! ;-)
Fabby

Đối với những người sẽ vấp phải câu hỏi này một ngày nào đó, đây là một câu hỏi liên quan để chạy updateupgradevới tư cách là một người yêu cầu Ubuntu.com/a/1086022/295286
Sergiy Kolodyazhnyy

Câu trả lời:


23

Có 3 sự lựa chọn hợp lý:

  1. Bạn có thể tạo một kịch bản giống như sau:

    #!/bin/bash
    set -e
    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get dist-upgrade

    Gọi nó là một cái gì đó giống như update.shvà đặt nó vào /usr/local/binvà sau đó làm cho tập lệnh có thể thực thi được bằng cách chạy:

    sudo chmod +x /usr/local/bin/update.sh
  2. Một phương pháp khác là tạo bí danh bash (in ~/.bashrc) hoặc bất cứ nơi nào bạn thường lưu trữ bí danh của mình:

    alias update='sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade'
  3. Phương pháp cuối cùng sẽ đơn giản là xâu chuỗi 3 lệnh lại với nhau trên dòng lệnh:

    sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

Một vài lựa chọn ...

Tài liệu tham khảo:


6
Khi bạn đang sử dụng dist-upgrade, không có điểm nào để làm upgradetrước ..
heemayl

3
@heemayl: Về lý thuyết thì có. Trong thực tế có những trường hợp góc mà một trực tiếp dist-upgradecó thể thất bại nhưng upgradetiếp theo dist-upgradesẽ không. Điều này phần lớn là do lỗi định nghĩa phụ thuộc gói hoặc các gói trộn từ các bản phát hành / phân phối / PPA khác nhau. Nếu người ta chỉ sử dụng các gói từ kho chính thức của Canonical cho chính xác một bản phát hành (mặc định), thì các lỗi đó sẽ cực kỳ hiếm và được khắc phục nhanh chóng.
David Foerster

2
Ngoài ra còn có biến thể bạn bè ấn tượng của # 3:for x in update {,dist-}upgrade; do sudo apt $x; done
Eli Barzilay

1
Ở bước 1, "set -e" làm gì?
karjedavpalaa

7

Nếu bạn thấy khó chịu vì gõ quá nhiều, bạn có thể tự xác định một "bí danh". Điều này có thể được thực hiện, ví dụ bằng cách thêm một dòng vào cuối của bạn $HOME/.profilenhư thế này:

alias sau='sudo aptitude update && sudo aptitude upgrade'

(tất nhiên bạn có thể thay thế "sau" bằng một thứ khác - đối với tôi đó là từ viết tắt của Sudo Apt-get Update). Sau khi lưu tệp, hãy mở một vỏ mới (hoặc "nguồn" .profile một lần nữa chạy . $HOME/.profile. Bây giờ bạn luôn có thể chỉ cần gõ "sau" để thực hiện công việc hoàn chỉnh. Hoạt động tuyệt vời với tôi với nhiều máy.


Hừm. Tôi đoán tôi chỉ đang nhờ ai đó bảo tôi bí danh: P
cảnh sát

Vâng, nhưng đó là cách duy nhất để làm điều đó với một "lệnh duy nhất". Và câu hỏi của bạn không loại trừ điều này;)
Izzy

Khó khăn. Dù sao, lý do duy nhất tôi hỏi là vì tôi muốn hiểu apt hơn, không phải vì tôi quá lười viết sudo aptitude update && sudo aptitude upgradeLý do tôi hỏi là vì bạn có thể làm điều đó với pacman ( sudo pacman -Syu --noconfirm).
cảnh sát viên

Nếu bạn phải làm điều đó thường xuyên và trên nhiều máy, bạn rất vui vì ít nhất bạn có thể có bí danh. Tuy nhiên: apt-get updatecó một tham số -u, theo trang man hiển thị các cập nhật có sẵn. Không thử liệu sau đó có yêu cầu áp dụng chúng không (không có Ubuntu / Debian gần tôi để kiểm tra ngay bây giờ).
Izzy

7

Chúng ta có thể có lệnh one-liner (không cần script, chỉ cần sao chép-dán)

sudo apt update -y && sudo apt full-upgrade -y && sudo apt autoremove -y && sudo apt clean -y && sudo apt autoclean -y
  • update - cập nhật danh sách các gói nhưng không cài đặt
  • upgrade - cài đặt các phiên bản mới của gói nếu có sẵn phiên bản mới
  • full-upgrade - thực hiện chức năng nâng cấp nhưng sẽ loại bỏ các gói hiện đang cài đặt nếu điều này là cần thiết để nâng cấp toàn bộ hệ thống (sau đó sửa các phụ thuộc xấu)
  • autoremove, autocleanclean- gói cũ sạch mà không cần thiết nữa
  • tùy chọn -ykhông yêu cầu cho phép trên mỗi bước


2
sudo apt install unattended-upgrades

Đây là dòng tốt nhất chưa. Tất cả các giải pháp khác bạn phải gõ một dòng nhiều lần mỗi ngày. Đây thực sự là giải pháp một lệnh. Xem tài liệu apt chính thức từ Ubuntu!

Bằng cách chỉnh sửa các .conftệp của gói này, /etcbạn có thể đặt tần suất update, install, clean, autoremove...

Hoặc đơn giản và gửi email bao gồm Thông báo rằng có bản cập nhật với danh sách tên gói

Một tệp nhật ký nhỏ đẹp được tạo với mỗi thay đổi và tôi tưởng tượng một tập lệnh nhỏ có thể được viết dưới dạng tiện ích mở rộng gui để bật lên trong thông báo trên màn hình (ngoài chủ đề haha)

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.