ฉันสงสัยว่าทำไมศูนย์ซอฟต์แวร์ไม่ดาวน์โหลดแอพที่ร้องขอทั้งหมดและติดตั้งทีละตัวเมื่อดาวน์โหลดเสร็จ หรือทำไมศูนย์ซอฟต์แวร์ไม่ดาวน์โหลดแอพขณะที่อีกอันกำลังติดตั้ง
sudo apt-get install
สามารถติดตั้งแพ็คเกจได้มากเท่าที่คุณต้องการ คุณต้องรู้ชื่อแพ็คเกจ
ฉันสงสัยว่าทำไมศูนย์ซอฟต์แวร์ไม่ดาวน์โหลดแอพที่ร้องขอทั้งหมดและติดตั้งทีละตัวเมื่อดาวน์โหลดเสร็จ หรือทำไมศูนย์ซอฟต์แวร์ไม่ดาวน์โหลดแอพขณะที่อีกอันกำลังติดตั้ง
sudo apt-get install
สามารถติดตั้งแพ็คเกจได้มากเท่าที่คุณต้องการ คุณต้องรู้ชื่อแพ็คเกจ
คำตอบ:
นั่นเป็นคำถามที่ดี มันเป็นเพราะมันขึ้นอยู่กับเครื่องมือแพคเกจเดียวกันที่ฉลาดและอื่น ๆ ใช้ สิ่งเหล่านี้ได้รับการออกแบบในแบบที่คาดหวังให้คุณจัดเตรียมแพ็คเกจทั้งหมดที่จะติดตั้งแล้วส่วนที่เหลือเป็นแบบอัตโนมัติ นี่เป็นสิ่งที่ดีมากในกรณีส่วนใหญ่ แต่สำหรับ Software Center จะทำให้เกิดปัญหาบางอย่าง คุณจะต้องเลือกแพ็คเกจที่คุณต้องการติดตั้งก่อนจากนั้นคลิกปุ่มเพื่อดาวน์โหลดและติดตั้งจริง ๆ หรือคุณต้องเข้าคิวแอพพลิเคชั่นแล้วดาวน์โหลดและติดตั้งทีละตัว สิ่งนี้มอบประสบการณ์การใช้งานที่ดียิ่งขึ้นหากคุณติดตั้งแอปพลิเคชั่นเดียวมากกว่าที่จะต้องใช้การคลิกพิเศษเหล่านั้น แต่ก็น่ารำคาญเมื่อคุณ "ช็อปปิ้ง"
เป็นไปได้ที่จะแก้ไขปัญหานี้ดังนั้นฉันคาดว่าในอนาคตจะแก้ไขได้ แต่มันหมายถึงการสร้างหรือเขียนเครื่องมือที่มีอยู่ใหม่ดังนั้นฉันจึงไม่คิดว่ามันจะมีลำดับความสำคัญสูงมาก
ให้ฉันทำอย่างละเอียด:
แพ็คเกจอาจขึ้นอยู่กับแพ็คเกจอื่น หากไม่มีแพ็คเกจเหล่านี้แสดงว่าไม่สามารถติดตั้งแพ็คเกจได้ ดังนั้นเครื่องมือเช่น apt-get จะดาวน์โหลดแพ็คเกจทั้งหมดที่คุณร้องขอและแพ็คเกจทั้งหมดที่พวกเขาพึ่งพาเป็นต้นจากนั้นติดตั้งทั้งหมด ดังนั้นโดยปกติแล้วคุณจะให้แพคเกจทั้งหมดที่คุณต้องการในครั้งเดียวและพวกเขาจะดาวน์โหลดและติดตั้งก่อน
เมื่อคุณเลือกที่จะติดตั้งแอปพลิเคชั่นในศูนย์ซอฟต์แวร์โดยปกติคุณจะต้องการให้มันเริ่มดาวน์โหลดและติดตั้งทันที แต่เพื่อให้แน่ใจว่าทุกอย่างเป็นไปตามลำดับสามารถทำการติดตั้งได้เพียงครั้งเดียวในแต่ละครั้ง นั่นเป็นสาเหตุที่เมื่อคุณติดตั้งแอปพลิเคชันคุณต้องรอจนกว่าแอปพลิเคชันนั้นจะดาวน์โหลดและติดตั้งอย่างสมบูรณ์ก่อนที่การดาวน์โหลดและการติดตั้งครั้งต่อไปจะเริ่มขึ้น
สิ่งนี้สามารถแก้ไขได้โดยไม่ใช้ apt-get เพื่อติดตั้งแพ็คเกจ แต่แทนที่จะดาวน์โหลดแพ็คเกจด้วยตนเองแล้วใช้ dpkg เพื่อติดตั้งเมื่อพร้อมแล้ว คุณยังคงไม่สามารถติดตั้งสองแพ็คเกจพร้อมกัน แต่คุณจะสามารถเริ่มดาวน์โหลดแพ็คเกจใหม่ได้ในขณะที่การติดตั้งที่เริ่มต้นก่อนหน้านี้กำลังจะสิ้นสุดลง ในบางกรณีมันอาจช่วยประหยัดเวลาได้บ้างดังนั้นจึงเป็นความคิดที่ดี แต่ในกรณีส่วนใหญ่มันไม่สำคัญเลยดังนั้นความพยายามจึงมุ่งเน้นไปที่อื่นดีกว่า
คุณสามารถติดตั้งได้ครั้งละหนึ่งแพ็คเกจsudo apt-get install
เท่านั้น แต่คุณสามารถติดตั้งได้หลายแพ็คเกจด้วยคำสั่งเดียว อย่างนี้:
sudo apt-get install ubuntu-desktop lubuntu-desktop
สิ่งนี้จะติดตั้งทั้งubuntu-desktop
และlubuntu-desktop
และสิ่งที่พวกเขาต้องการในลำดับที่ถูกต้อง
นอกจากนี้เมื่อคุณอัปเดตระบบด้วยsudo apt-get upgrade
คุณจะต้องดาวน์โหลดซอฟต์แวร์ทั้งหมดก่อนแล้วจึงติดตั้งหนึ่งแพ็คเกจในเวลานั้น
เหตุผลที่
คุณไม่สามารถติดตั้งหลายแพ็คเกจพร้อมกันได้นั่นคือมีเพียงอินสแตนซ์เดียวเท่านั้นที่สามารถใช้apt-get
สิทธิ์ในเวลาเดียวกันได้ นี่เป็นเพราะapt-get
ล็อคในsoftware sources
และบล็อกคำสั่งอื่น ๆ จากการใช้พวกเขา
ตัวอย่าง
สมมติว่าคุณเริ่มต้นด้วย apt-get 2 ตัวแยกจากกันเป็น @Rinzwind พูดแล้วคุณสามารถแก้ไขรายการแหล่งที่มาในเวลาเดียวกันในขณะที่คุณใช้มันเพื่อค้นหาและติดตั้งซอฟต์แวร์ใหม่ สิ่งนี้อาจนำไปสู่โปรแกรมที่คุณติดตั้งแก้ไขรายการแหล่งที่มาและเพิ่มที่เก็บที่ไม่ปลอดภัยในเวลาเดียวกันขณะที่คุณกำลังอัพเกรดระบบของคุณ นี่อาจเป็นปัญหาด้านความปลอดภัย
อีกตัวอย่างหนึ่งเช่น
ถ้าคุณแก้ไขรายการแหล่งที่ 2 คำสั่งแยกต่างหากจากนั้นเมื่อคุณบันทึกคุณจะแทนที่รุ่นใหม่ล่าสุดซึ่งจะเป็นหนึ่งที่มันบันทึกล่าสุด ซึ่งหมายความว่าคำสั่งที่อยู่ตรงกลางจะไม่มีผลกระทบใด ๆ เนื่องจากคุณจะบันทึกทับเวอร์ชันเก่า
Windows ทำงานในลักษณะเดียวกันโดยใช้ตัวติดตั้ง "เป็นทางการ" (MSI)
แม้แต่ใน Windows ก็สามารถติดตั้งซอฟต์แวร์หลายตัวพร้อมกันได้ ... มีข้อได้เปรียบในเรื่องนี้หรือเพราะเหตุใดจึงมีความจำเป็นใน linux / ubuntu และอื่น ๆ ...
แพคเกจที่ใช้ตัวติดตั้ง Windows อย่างเป็นทางการ (MSI) จะปฏิเสธเพื่อเรียกใช้มากกว่าหนึ่งอินสแตนซ์ในแต่ละครั้ง นั่นเป็นเพราะฐานข้อมูลตัวติดตั้ง MSI นั้นคล้ายกับsources.list
ไฟล์ dpkg info เป็นต้น - คุณไม่ต้องการให้มีการแก้ไข / ล็อคมากกว่าหนึ่งตัวติดตั้งในแต่ละครั้ง
แต่แพ็คเกจ Windows จำนวนมากใช้โปรแกรมติดตั้งของบุคคลที่สามเช่น Installshield, NSIS เป็นต้นซึ่งจะทำงานร่วมกันเนื่องจากไม่จำเป็นต้องเข้าถึง / แก้ไขฐานข้อมูล MSI ในทำนองเดียวกันใน Linux / Ubuntu ไม่มีใครหยุดยั้งคุณไม่ให้รันapt-get
a tar -xzf
และสคริปต์ติดตั้ง perl / bash ในเวลาเดียวกัน :)
sudo
ในเวลาเดียวกัน แต่เมื่อมันมาถึงการจัดแพคเกจการจัดการเพียงหนึ่งแอปดังกล่าวสามารถติดตั้งหรือแพคเกจลบในเวลาที่กำหนดเนื่องจากการทำงานapt
ที่ได้รับล็อคบนsources.list
และด้วยเหตุนี้ถ้ามี แอปพลิเคชันการจัดการแพคเกจอื่นพยายามเรียกใช้มันจะไม่ได้รับการล็อคไฟล์นั้นและจะไม่ทำงาน
ครั้งแรกที่ปล่อยให้มันรู้ว่าคำตอบนี้มาจากสิ่งที่ผมเคยรวบรวมได้จากประสบการณ์ของฉันกับและdpkg
apt
ฉันไม่ได้ดูรหัสศูนย์ซอฟต์แวร์จริงเพื่อพิจารณาสิ่งนี้
มันเป็นข้อ จำกัด ของการออกแบบซอฟต์แวร์พื้นฐาน
ส่วนหนึ่งของdpkg
ระบบที่ Ubuntu ใช้สำหรับแพ็คเกจรวมถึงคุณสมบัติที่ "ล็อก" /var/lib/dpkg/lock
ไฟล์เพื่อป้องกันหลาย ๆdpkg
( apt-get
และ Ubuntu Software Center เป็นส่วนหน้า) จากการเขียนทับตัวเองและสิ่งเลวร้ายอื่น ๆ
จะเกิดอะไรขึ้นเมื่อคุณติดตั้งซอฟต์แวร์ มันเกิดอะไรขึ้นsudo apt-get install chromium-browser
( เริ่มใช้ Chromium เป็นตัวอย่าง)
และเมื่อสิ่งนั้นเกิดขึ้นล็อคจะเริ่มทำงานเมื่อคุณเพิ่มแพ็คเกจที่จะติดตั้งมากกว่าหนึ่งแพคสิ่งที่เกิดขึ้นต่อไปคือแพ็กเกจรอจนกว่าแพ็กแรกจะเสร็จสิ้นก่อนที่จะเริ่มapt
คำสั่งถัดไป
การกระทำบางอย่างเช่นการรีเฟรชเมนูการทำดัชนีแบบอักษรและการกำหนดค่าไลบรารีใหม่จะต้องเกิดขึ้นเพียงครั้งเดียวหากติดตั้งแพคเกจทั้งหมดพร้อมกัน ข้อได้เปรียบที่สองหวังว่าไม่ควรเกิดขึ้นบ่อยครั้ง แต่ถ้าคุณต้องการติดตั้งแพคเกจที่แยกคนอื่นคุณรู้ก่อนที่จะดาวน์โหลดทั้งหมด
ข้อได้เปรียบที่ผ่านมาส่วนใหญ่มีความสำคัญเมื่อคุณติดตั้งหรืออัพเกรดแพคเกจจำนวนมากพร้อมกัน: หากต้องตอบคำถามพวกเขาจะมาหากันในระหว่างการติดตั้ง ดังนั้นคุณสามารถทำงานต่อไปแทนที่จะถูกบั๊กทุก 5 นาทีด้วยคำถามอื่น
เหตุผลที่อินสแตนซ์ของ apt-get ไม่สามารถทำงานพร้อมกันสองอินสแตนซ์ได้เนื่องจากแอ็พพลิเคชันกำลังอ่าน / เขียนไฟล์หลายไฟล์ที่สำคัญสำหรับการทำงานของระบบ การอ่านหรือเขียนไฟล์โดยการใช้งาน apt-get ในขณะที่อีกอันกำลังทำการดำเนินการเดียวกันมันจะนำไปสู่ปัญหาการกำหนดค่าที่ไม่ดีและ / หรือความเสียหายของไฟล์ ดังนั้นเมื่อมีการดำเนินการ apt-get มันจะ "ล็อก" ไฟล์ที่ต้องการเพื่อให้การดำเนินการอื่นไม่สามารถดำเนินการได้พร้อมกันหรือที่รู้จักกันมันจะเพิ่มค่าสถานะที่บอกการดำเนินการอื่น ๆ ว่าไฟล์นั้นถูกใช้งานอยู่ในปัจจุบัน
อย่างไรก็ตามการดาวน์โหลดไฟล์ที่จำเป็นโดย apt (หรือดาวน์โหลดจากแหล่งข้อมูลจำนวนมาก) พร้อมกันนั้นเป็นไปได้ด้วยคำสั่ง apt-fast
วิธีง่ายๆในการติดตั้งหลายไฟล์ในครั้งเดียวให้ทำตามขั้นตอนเหล่านี้
เปิด terminal และประเภท:
CD / home / user / apps
จากนั้นพิมพ์อีกครั้ง
sudo dpkg -i * .deb
รอจนกระทั่งการติดตั้งเสร็จสิ้น
คุณจะได้รับการดาวน์โหลดแพ็คเกจในขณะที่อีกอันกำลังทำการติดตั้งเช่นใน terminal1
sudo apt-get install vlc
จากนั้นดาวน์โหลดแพ็คเกจอื่นในเทอร์มินัลอื่น 2
sudo apt-get download openssh-server
เพื่อดูตัวเลือกอื่น ๆ ที่ใช้ได้กับ apt-get อ้างถึงประเภทง่าย ๆ ของ man
apt-get <press tab on your keyboard>