บรรทัดคำสั่งเทียบเท่าสำหรับตัวจัดการการอัพเดท (Software Updater) คืออะไร?


25

เมื่อฉันทำ

sudo apt-get update
sudo apt-get upgrade

บางครั้ง Ubuntu GUI Update Manager จะยังมีบางรายการเหลืออยู่ เช่น "เคอร์เนล Linuux ทั่วไป"

ฉันรู้ว่ายังมีsudo apt-get dist-upgradeแต่ที่สัมผัสสิ่งอื่น ๆ

คำถามของฉันคืออะไรตัวเลือกบรรทัดคำสั่งอื่นที่ฉันสามารถใช้ที่ต้องการอัปเดตส่วนที่เหลือของรายการที่แสดงในตัวจัดการการอัปเดต GUI (แต่ไม่ได้สัมผัสอย่างอื่นเพิ่มเติม) กล่าวอีกนัยหนึ่งฉันกำลังมองหาบรรทัดคำสั่งที่เทียบเท่า

แก้ไข: คำถามนี้หมายถึงผู้จัดการการปรับปรุงซึ่งเทียบเท่ากับการอัพเดตซอฟแวร์ในรุ่นใหม่ (เช่น 16.04) เช่น@Eliah Kagan ชี้ให้เห็น


แพ็คเกจตัวจัดการการอัปเดตของ Ubuntu เป็นโอเพ่นซอร์สดังนั้นคุณอาจหาดูได้จากซอร์สโค้ดเพื่อหาคำตอบของคุณ ฉันดูอย่างรวดเร็ว แต่ฉันไม่ได้สังเกตเห็นสิ่งผิดปกติเกี่ยวกับวิธีการอัปเกรด

มันไม่ชัดเจนกับผมหลังจากการวิจัยบางอย่างที่มีความเทียบเท่าโดยตรง แต่มีคำตอบมาก enlightening อธิบายความแตกต่างระหว่าง apt-get และความถนัด ฉันเดาว่า Update Manager คล้ายกับ apt-get ซึ่งมีกฎที่พิเศษกว่าเล็กน้อยที่ใช้สำหรับการอัปเดตยกเว้นว่าapt-get updateruleset จะอนุญาตให้ติดตั้งแพคเกจใหม่ในบางกรณีเช่นการปรับปรุงเคอร์เนล หวังว่าใครบางคนมีความรู้มากขึ้น
cha5on

3
apt-get dist-upgradeผมค่อนข้างมั่นใจว่าคำตอบคือ คุณหมายถึงอะไร "สัมผัสกับสิ่งอื่น"
Flimm

คำตอบ:


22

ดังที่Flimm แสดงความคิดเห็นคำตอบคือจริงๆsudo apt-get dist-upgrade( หลังจากใช้งานsudo apt-get updateเครื่องมือการจัดการแพ็คเกจ GUI ใดที่เทียบเท่าโดยอัตโนมัติ) นั่นคือสิ่งที่ใกล้เคียงที่สุดในการใช้งาน Software Updater (เรียกว่า Update Manager ในรุ่นที่เก่ากว่า)

การรันapt-get upgradeจะอัปเกรดแพ็คเกจที่สามารถอัพเกรดได้:

  • โดยไม่ต้องติดตั้งแพ็คเกจใด ๆ ที่ยังไม่ได้ติดตั้งในบางเวอร์ชั่นและ
  • โดยไม่ลบแพ็คเกจใด ๆ

Update Manager สามารถทำสิ่งทั้งสองนี้ได้ดังนั้นจึงapt-get dist-upgradeค่อนข้างใกล้เคียง

  • การรันsudo apt-get dist-upgradeจะไม่อัปเกรดระบบ Ubuntu ของคุณเป็นรุ่นใหม่กว่า ในความเป็นจริงไม่เหมือนกับ Debian apt-get dist-upgradeไม่ใช่วิธีที่ได้รับการสนับสนุนในการอัปเกรดเป็นรุ่นใหม่ ใน Debian (และใน Ubuntu บางครั้งอาจล้มเหลวและไม่ได้รับการสนับสนุน) การเปลี่ยนที่เก็บข้อมูลทั้งหมดที่แสดงรายการใน/etc/apt/sources.listที่เก็บสำหรับรุ่นถัดไปและการเรียกใช้sudo apt-get dist-upgradeจะพยายามอัปเกรดเป็นรุ่นถัดไป

เพราะapt-get dist-upgradeสามารถเอาแพคเกจ (และติดตั้งแพคเกจใหม่ที่คุณอาจไม่ต้องการ) yก็มักจะดีที่สุดที่จะมองผ่านรายละเอียดของสิ่งที่มันตั้งใจที่จะทำก่อนที่จะกด

ดังนั้นในขณะที่ทำงานsudo apt-get -y upgradeเป็นปกติที่เหมาะสมที่ธงควรจะไม่ค่อยนำมาใช้กับ-ydist-upgrade

เหตุผลที่คุณไม่ได้รับรุ่น kernel ใหม่ด้วยsudo apt-get upgradeเป็นเพราะพวกเขาแต่ละคนมีให้โดยแยกต่างหาก, แพคเกจชื่อแตกต่างกัน (เวอร์ชั่นเคอร์เนลเป็นส่วนหนึ่งของชื่อ) นี่คือการอำนวยความสะดวกในการรักษาเคอร์เนลเก่าที่ติดตั้งไว้ข้างๆเคอร์เนลที่ใหม่กว่า (และสามารถเลือกระหว่างพวกเขาในเมนู GRUB)

การเสนออัตโนมัติของแพคเกจเคอร์เนลใหม่สำหรับการติดตั้งทำได้โดยติดตั้งmetapackage (เช่นlinux-image-generic) เมื่อเคอร์เนลใหม่ออกมาสำหรับการเปิดตัว Ubuntu ของคุณ metapackage เคอร์เนลของคุณจะได้รับการอัพเกรดและรุ่นอัพเกรดสำหรับ metapackage นั้นจะแสดงรายการเคอร์เนลใหม่เป็นการอ้างอิง (โดยไม่ป้องกันเคอร์เนลเก่าจากการติดตั้งต่อไป)

หากคุณไม่ต้องการใช้แล้วคุณสามารถเสมอด้วยตนเองอัพเกรดแพคเกจแต่ละที่มีการระบุว่าเป็นกลับมาจัดขึ้นเมื่อคุณวิ่งsudo apt-get dist-upgrade sudo apt-get upgradeการทำเช่นนี้ "ติดตั้ง" พวกเขาsudo apt-get install packagename


1
"ตัวจัดการการอัปเดตสามารถทำสิ่งเหล่านี้ได้ทั้งสองอย่างดังนั้นการอัพเกรด apt-get dist จะค่อนข้างใกล้เคียง" - ไม่ชัดเจนในบริบท
แมตต์

7

หากคุณต้องการเปิดหน้าต่างอัปเดตซอฟต์แวร์จากบรรทัดคำสั่ง (ซึ่งเป็นสิ่งที่ฉันรวบรวมคุณได้รับส่วนใหญ่เป็นเพราะนั่นคือเหตุผลที่ฉันค้นหาสิ่งนี้และลงเอยด้วยที่นี่เป็นเป้าหมายของฉัน) เพื่อให้รากของคุณเอง เข้าถึงหน้าต่าง GUI (ฉันมีปัญหาสิทธิ์พยายามทำสิ่งนี้จาก remoting ใน)

sudo update-manager

หากฉันเข้าใจคำถามอย่างถูกต้องคำตอบโดย @questionreality เป็นคำถามที่ถูกต้องอย่างน้อยที่สุดมันก็ใช้ได้กับฉัน มีเพียงสิ่งเดียวเท่านั้นที่จะดำเนินการอัปเดตต่อไปได้โดยไม่ต้องแจ้งหน้าต่าง ฉันหมายถึงการดำเนินการบรรทัดคำสั่งอย่างหมดจด?
nightcod3r

1

ฉันเพิ่งพบคำตอบนี้ แต่ทำแหล่งที่หายไปดังนั้นฉันจึงไม่สามารถเครดิตได้

คำสั่งด้านล่างจะติดตั้งแพคเกจที่มีเคอร์เนลเป็นการอ้างอิงและจะปรับปรุงเคอร์เนลของคุณเลือกหนึ่งที่เหมาะสมที่จะทำกับ

การติดตั้ง 14.4 ของฉันได้รับการอัพเกรดเป็น 14.10 ยกเว้นเคอร์เนล ในกรณีของฉันเคอร์เนลอัพเดทจาก 3.13.x เป็น 3.16.x แม้ว่าอาจเป็นไปได้ว่าเวอร์ชัน 3.13.0.x อาจมีการอัปเดต เห็นได้ชัดว่า 3.13 ไม่ใช่เคอร์เนล LTS

sudo apt-get install linux-image-generic

1
ถ้าคนที่โหวตในเชิงลบกับคำตอบนี้มีมารยาทพื้นฐานที่จะพูดว่า "ทำไม" จะช่วยให้ผู้เรียน Linux อย่างฉันรู้ว่าทำไมมันผิด
Clain Dsilva

0

อาจเป็นสถานที่ที่ผิด แต่ฉันเชื่อว่าคุณต้องการที่จะทำ:

apt-get -f install

สิ่งนี้จะทำความสะอาดการอ้างอิงที่โดดเด่น


1
ขอบคุณ ที่ดูเหมือนจะไม่เป็นแม้ว่า ฉันทำการapt-get -f installอัปเดตและอัปเกรดอีกครั้งจากนั้นไปที่ gui ของผู้จัดการและตรวจสอบรายการต่างๆ

0

aptยูทิลิตีบรรทัดคำสั่งไม่ได้ให้ความสะดวกสบายในระดับเดียวกันกับเทียบเท่า gui ของพวกเขา (เช่นsoftware updater) ในขณะที่ a apt-get dist-upgradeจะดูแลการอัปเกรดจำนวนมากกล่าวคือการดาวน์โหลดและติดตั้งแพ็คเกจใหม่มันจะไม่ตรวจจับการมีอยู่ของ Ubuntu รุ่นใหม่ (หรือเดเบียน) ซึ่งยูทิลิตี้ Ubuntu Ubuntu จะทำ ส่วนที่ขาดหายไปคือการแก้ไข/etc/apt/sources.list(หรือไฟล์ที่เกี่ยวข้องใน/etc/apt/sources.list.d/- แต่คุณอาจไม่มีสิ่งเหล่านี้) เพื่อบอกaptว่ามีรีลีสใหม่และที่เก็บอยู่ที่ไหน

ยกตัวอย่างเช่นหาdist-upgradeจากUtopicจะสดใสคุณสามารถเปิด/etc/apt/sources.listและทำในการค้นหาและแทนที่ของutopicไปvividแล้วเรียกใช้dist-upgradeคำสั่ง CLI เส้นทางที่ปลอดภัยกว่านั้นอาจเป็นการทำซ้ำบรรทัดในไฟล์นั้นและทำการค้นหาและแทนที่เฉพาะในบรรทัดที่ซ้ำกันเหล่านี้เท่านั้น

สำหรับข้อมูลเพิ่มเติมฉันแนะนำให้ปรึกษา man page sources.listซึ่งอธิบายรูปแบบไฟล์และวิธีแก้ไข

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