คำตอบ:
ไม่พวกเขาไม่เหมือนกัน apt-get upgrade
ไม่จัดการการเปลี่ยนแปลงการอ้างอิงระหว่างเวอร์ชันดังนั้นหากแพ็กเกจมีการเปลี่ยนแปลงที่อ้างอิงได้จะไม่ได้รับการอัปเกรด (จะเป็น "ระงับกลับ") ดูคำตอบที่ยาวสำหรับรายละเอียดเพิ่มเติม
การใช้ Software Updater และการใช้sudo apt-get update ; sudo apt-get dist-upgrade
(หมายเหตุdist-
) จะเกือบจะเทียบเท่ายกเว้นจะมี GUI และอีกตัวหนึ่งเป็นคอนโซลแอปพลิเคชันและยังมีความแตกต่างของข้อมูลเล็กน้อยอีกเล็กน้อย
จากman apt-get
,
apt-get upgrade
:
upgrade
upgrade is used to install the newest versions of all packages
currently installed on the system from the sources enumerated in
/etc/apt/sources.list. Packages currently installed with new
versions available are retrieved and upgraded; under no
circumstances are currently installed packages removed, or packages
not already installed retrieved and installed. New versions of
currently installed packages that cannot be upgraded without
changing the install status of another package will be left at
their current version. An update must be performed first so that
apt-get knows that new versions of packages are available.
(เน้นโดยฉัน)
ซึ่งหมายความว่าแพคเกจเวอร์ชันที่ใหม่กว่าซึ่งมีการอ้างอิงใหม่ที่ไม่ต้องการในเวอร์ชันเก่าจะไม่ได้รับการอัพเกรดด้วยวิธีนี้ (เว้นแต่ว่ามีการติดตั้งใหม่แล้ว) สิ่งเหล่านี้จะปรากฏเป็น "Held back"
apt-get dist-upgrade
:
dist-upgrade
dist-upgrade in addition to performing the function of upgrade,
also intelligently handles changing dependencies with new versions
of packages; apt-get has a "smart" conflict resolution system, and
it will attempt to upgrade the most important packages at the
expense of less important ones if necessary. The dist-upgrade
command may therefore remove some packages. The
/etc/apt/sources.list file contains a list of locations from which
to retrieve desired package files. See also apt_preferences(5) for
a mechanism for overriding the general settings for individual
packages.
(เน้นโดยฉัน)
ซึ่งหมายความว่าด้วยคำสั่งนี้แทนupgrade
แพ็กเกจที่มีการขึ้นต่อกันใหม่ (หรือลบ) สามารถอัพเกรดได้
ตัวอย่างที่ดีของความแตกต่างระหว่างสองคือเมื่อเคอร์เนล Linux ใหม่ถูกปล่อยออกมา แพคlinux-image-generic
เกจนี้บรรจุอยู่ในแพ็คเกจซึ่งขึ้นอยู่กับแพ็คเกจล่าสุดของเคอร์เนล Linux เนื่องจากการพึ่งพาของlinux-image-generic
การเปลี่ยนแปลงกับการอัพเกรดเคอร์เนลแต่ละครั้งupgrade
จะไม่อัพเกรด
apt-get upgrade
จำเป็นเท่านั้น) apt-get
ไม่สามารถทำเช่นนั้นได้? ดูเหมือนว่ามีบางสิ่งที่แตกต่างกันโดยพื้นฐานระหว่างสองสิ่งนี้
มันเกือบจะเหมือนกัน แต่ไม่แน่นอน ตัวอย่างเช่นเมื่อมีการเสนอเคอร์เนลการปรับปรุงsudo apt-get update && sudo apt-get dist-upgrade
จำเป็นต้องได้รับการปรับปรุงเหล่านั้น
sudo apt-get update && sudo apt-get upgrade
จะบอกคุณว่าแพคเกจบางอย่างถูกระงับไว้
การใช้ Software Updater ทำให้ทุกอย่างราบรื่นและคุณจะไม่เห็นสิ่งใดถูกระงับ
apt
พร้อมใช้งานแบบแบ่งใช้ (ที่กล่าวถึงโดย pabouk ) เป็นความแตกต่างที่สำคัญที่สุดระหว่างการอัพเดตด้วย Software Updater และบรรทัดคำสั่งทุกวันนี้apt
ยูทิลิตี้ - ซึ่งไม่มีอยู่เมื่อมีการโพสต์คำถามนี้ แต่น่าจะรวมอยู่ในคำถามหากมี - เป็นทางเลือกที่นิยมมากขึ้นapt-get
สำหรับการอัปเกรดแพ็คเกจ สิ่งเหล่านี้คล้ายกัน: แพคเกจเดียวกัน (หรือเรียกอีกอย่างว่าapt
) จะให้ทั้งสองอย่างและทุกสิ่งapt
สามารถทำได้apt-
สาธารณูปโภคดั้งเดิมก็สามารถทำได้เช่นกันแม้ว่าในบางกรณีคุณจะต้องผ่านตัวเลือกการกำหนดค่าพิเศษ แต่apt
ใกล้กว่าapt-get
Software Updater เช่น Software Updater มีความสามารถในการติดตั้งแพ็คเกจใหม่เมื่อแพ็คเกจใหม่ที่มีอยู่ประกาศว่าเป็นการอ้างอิงsudo apt upgrade
ดังนั้นทุกวันนี้ผู้ใช้ที่เกี่ยวข้องกับความแตกต่างนี้สามารถเรียกใช้sudo apt upgrade
แทนที่จะเป็นsudo apt-get upgrade
ถ้าพวกเขาต้องการการอ้างอิงใหม่ที่จะติดตั้งโดยอัตโนมัติ ดังนั้นคุณสมบัติของ Software Updater ในการชะลอการอัปเดตบางอย่างเล็กน้อยเพื่อตรวจสอบว่ามีความเสถียรในระดับปกติและจำกัดความเสียหายหากไม่ได้อยู่ในขณะนี้อาจเป็นความแตกต่างหลักระหว่างการใช้ Software Updater และการอัปเดตบนบรรทัดคำสั่ง
ลักษณะการทำงานของซอฟแวร์อัพเดตนี้เป็นเพราะนโยบายการปรับปรุงจะค่อย ๆ นโยบายนั้น - นำมาใช้ใน Software Updater แต่ไม่ได้อยู่ในapt-get
(หรือapt
) - เป็นข้อแตกต่างที่สำคัญระหว่างสองวิธีนับตั้งแต่มีการนำนโยบายมาใช้และpabouk ให้ความเห็นเกี่ยวกับเรื่องนี้เมื่อสองปีก่อน :
มีความแตกต่างอีกอย่างก็คือ:
apt-get
ไม่ได้ใช้PhasedUpdatesapt-get
ดังนั้นบางครั้งอัพเดตซอฟแวร์แสดงให้เห็นว่าการปรับปรุงน้อยกว่า ดูที่เหตุใดตัวอัปเดตซอฟต์แวร์บอกว่าไม่มีอัปเดตที่ใช้ได้ แต่อัปเกรด apt-get แสดงอัปเดตที่มี .
- pabouk 25 ก.พ. 58เวลา 7:34 น
สิ่งนี้อาจมีความแตกต่างที่สำคัญที่สุดเสมอในกรณีที่สามารถทำงานได้เสมอsudo apt-get dist-upgrade
เมื่อเผชิญกับความupgrade
ไม่เต็มใจของการกระทำเพื่อติดตั้งแพ็คเกจใหม่หรือถอนการติดตั้งแพ็กเกจที่มีอยู่เดิม อย่างไรก็ตามเมื่อทำการอัพเดตจากบรรทัดคำสั่งความสำคัญสัมพัทธ์ของการอัพเดตแบบแบ่งระยะจะเพิ่มขึ้นด้วยapt
:
apt-get
กับapt
คำสั่งจะดาวน์โหลดและติดตั้งการอัพเดตแม้ว่าจะมีความล่าช้าเนื่องจากนโยบายการอัพเดทแบบเป็นระยะหากมีการใช้ Software Updater แทนapt-get
ที่apt
คำสั่งของupgrade
การกระทำที่จะติดตั้งแพคเกจใหม่ที่ไม่ได้ถูกติดตั้งไว้ก่อนหน้านี้ แต่จะต้องเป็นการอ้างอิงสำหรับรุ่นแพคเกจใหม่นอกเหนือจาก (ก) เลือกใช้ส่วนต่อประสานกราฟิกและ (b) การรวมเดสก์ท็อปโดยให้การแจ้งเตือนเมื่อมีการปรับปรุงเหตุผลหลักที่หนึ่งอาจใช้ Software Updater ว่าเป็นวิธีที่ง่ายที่สุดในการเข้าร่วมในการปรับปรุงแบบแบ่งระยะ
apt-get
ไม่ได้ใช้PhasedUpdatesapt-get
ดังนั้นบางครั้งอัพเดตซอฟแวร์แสดงให้เห็นว่าการปรับปรุงน้อยกว่า ดูที่เหตุใดตัวอัปเดตซอฟต์แวร์บอกว่าไม่มีอัปเดตที่ใช้ได้ แต่อัปเกรด apt-get แสดงอัปเดตที่มี .