คำสั่งเดียวที่จะอัพเดททุกอย่างใน Ubuntu?


15

ฉันรู้ว่ามีสามคำสั่งเพื่ออัปเดตแล้วอัพเกรดทั้งระบบเหล่านี้คือ:

  • sudo apt-get update # เรียกรายการของการปรับปรุงที่มี
  • sudo apt-get upgrade # อัพเกรดแพ็คเกจปัจจุบันอย่างเคร่งครัด
  • sudo apt-get dist-upgrade # การติดตั้งการปรับปรุง (ใหม่)

มีคำสั่งอัปเกรดพิเศษที่รวมคำสั่งเหล่านี้ทั้งหมดเป็นคำสั่งเดียวหรือไม่


1
ไม่คุณสามารถทำได้มากที่สุดsudo apt-get update && sudo apt-get dist-upgrade
heemayl

มันยังคงเป็นหนึ่งบรรทัดคำสั่ง! ;-)
Fabby

สำหรับผู้ที่จะสะดุดกับคำถามนี้สักครู่นี่คือหนึ่งที่เกี่ยวข้องเพื่อทำงานupdateและupgradeเป็นหนึ่ง liners askubuntu.com/a/1086022/295286
Sergiy Kolodyazhnyy

คำตอบ:


23

มี 3 ตัวเลือกที่ดีคือ:

  1. คุณสามารถสร้างสคริปต์ได้ดังนี้:

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

    เรียกสิ่งที่ชอบupdate.shและวางไว้ใน/usr/local/binนั้นทำให้สคริปต์ที่ปฏิบัติการได้โดยการเรียกใช้:

    sudo chmod +x /usr/local/bin/update.sh
  2. อีกวิธีหนึ่งก็คือสร้างนามแฝงทุบตี (ใน~/.bashrc) หรือที่ใดก็ตามที่คุณเก็บชื่อแทน:

    alias update='sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade'
  3. วิธีสุดท้ายคือการรวมสตริง 3 คำสั่งเข้าด้วยกันบน commandline:

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

ตัวเลือกเล็กน้อย ...

อ้างอิง:


6
เมื่อคุณใช้งานdist-upgradeจะไม่มีประโยชน์ในการทำอะไรupgradeเลย ..
heemayl

3
@ heemayl: ในทางทฤษฎีใช่ ในทางปฏิบัติมีกรณีที่มุมซึ่งโดยตรงdist-upgradeอาจล้มเหลว แต่จะupgradeตามมาด้วยdist-upgradeจะไม่ นี่เป็นส่วนใหญ่เนื่องจากข้อผิดพลาดการอ้างอิงแพคเกจหรือแพคเกจผสมจากการเผยแพร่ / การกระจาย / PPAs ที่แตกต่างกัน หากมีเพียงใช้แพ็คเกจจากที่เก็บอย่างเป็นทางการของ Canonical สำหรับรุ่นหนึ่งเท่านั้น (ค่าเริ่มต้น) ข้อผิดพลาดดังกล่าวควรจะหายากและแก้ไขได้อย่างรวดเร็ว
David Foerster

2
นอกจากนี้ยังมีตัวแปรที่สร้างความประทับใจให้กับเพื่อนของ # 3:for x in update {,dist-}upgrade; do sudo apt $x; done
Eli Barzilay

1
ในขั้นตอนที่ 1 "set -e" ทำอะไร
karjedavpalaa

8

เราสามารถมีคำสั่งหนึ่งซับ (ไม่จำเป็นต้องสคริปต์เพียงแค่คัดลอกวาง)

sudo apt update -y && sudo apt full-upgrade -y && sudo apt autoremove -y && sudo apt clean -y && sudo apt autoclean -y
  • update - อัปเดตรายการแพ็คเกจ แต่ไม่ต้องติดตั้ง
  • upgrade - ติดตั้งแพ็คเกจเวอร์ชันใหม่หากมีเวอร์ชั่นใหม่
  • full-upgrade - ทำหน้าที่อัปเกรด แต่จะลบแพ็คเกจที่ติดตั้งอยู่ในปัจจุบันหากจำเป็นต้องอัปเกรดระบบโดยรวม
  • autoremove, autocleanและclean- แพคเกจเก่าทำความสะอาดที่ไม่จำเป็นใด ๆ เพิ่มเติม
  • ตัวเลือก-yไม่ได้ขออนุญาตในทุกขั้นตอน

7

หากคุณรู้สึกรำคาญกับการพิมพ์มากเกินไปคุณสามารถกำหนด "นามแฝง" ด้วยตัวเอง สามารถทำได้เช่นโดยการเพิ่มบรรทัดที่ส่วนท้ายของคุณ$HOME/.profileเช่นนี้:

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

(แน่นอนคุณสามารถแทนที่ "sau" อย่างอื่น - สำหรับฉันนั่นเป็นคำย่อของ Sudo Apt-get Update) หลังจากบันทึกไฟล์แล้วให้เปิดเชลล์ใหม่ (หรือ "source" the .profile อีกครั้งที่ทำงาน. $HOME/.profileอยู่ตอนนี้คุณสามารถพิมพ์ "sau" เพื่อทำงานให้เสร็จสมบูรณ์ได้ผลดีมากสำหรับฉันด้วยเครื่องหลายเครื่อง


ฮึ่ม ฉันเดาว่าฉันแค่ขอให้บางคนบอกให้ฉันใช้นามแฝง: P
polandeer

ใช่ แต่นั่นเป็นวิธีเดียวที่จะทำได้ด้วย "คำสั่งเดียว" และคำถามของคุณไม่ได้ยกเว้นสิ่งนี้;)
Izzy

เขี้ยวลากดิน อย่างไรก็ตามเหตุผลเดียวที่ฉันถามคือเพราะฉันต้องการเข้าใจที่ดีขึ้นไม่ใช่เพราะฉันขี้เกียจเกินกว่าจะเขียนsudo aptitude update && sudo aptitude upgradeเหตุผลที่ฉันถามคือเพราะคุณสามารถทำได้ด้วย pacman ( sudo pacman -Syu --noconfirm)
polandeer

หากคุณต้องทำบ่อยๆและหลาย ๆ เครื่องคุณก็ดีใจที่คุณมีนามแฝงได้ อย่างไรก็ตาม: apt-get updateมีพารามิเตอร์-uตามหน้า man ที่แสดงการอัพเดตที่พร้อมใช้งาน อย่าลองว่ามันจะขอให้พวกมันใช้ไหม (ไม่มี Ubuntu / Debian อยู่ใกล้ฉันเพื่อตรวจสอบตอนนี้)
Izzy


2
sudo apt install unattended-upgrades

นี่คือสายที่ดีที่สุดเลย โซลูชันอื่น ๆ ทั้งหมดที่คุณต้องพิมพ์หนึ่งบรรทัดซ้ำแล้วซ้ำอีกทุกวัน นี่เป็นทางออกเดียวที่แท้จริง ดูเอกสาร apt อย่างเป็นทางการจาก Ubuntu!

ด้วยการแก้ไข.confไฟล์ของแพ็คเกจนี้/etcคุณสามารถกำหนดความถี่ของupdate, install, clean, autoremove...

หรืออย่างง่ายดายและอีเมลรวมถึงการแจ้งเตือนว่ามีการอัปเดตพร้อมกับรายการชื่อแพ็คเกจ

มีการสร้างไฟล์บันทึกเล็ก ๆ ที่ดีกับการเปลี่ยนแปลงแต่ละครั้งและฉันคิดว่าสคริปต์เล็ก ๆ น้อย ๆ สามารถเขียนเป็นส่วนขยายของ gui เพื่อแสดงในการแจ้งเตือนบนเดสก์ท็อปด้วย (นอกหัวข้อฮ่า ๆ )

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.