ทำไมศูนย์ซอฟต์แวร์ไม่อนุญาตให้ดาวน์โหลดหลายครั้ง


29

ฉันสงสัยว่าทำไมศูนย์ซอฟต์แวร์ไม่ดาวน์โหลดแอพที่ร้องขอทั้งหมดและติดตั้งทีละตัวเมื่อดาวน์โหลดเสร็จ หรือทำไมศูนย์ซอฟต์แวร์ไม่ดาวน์โหลดแอพขณะที่อีกอันกำลังติดตั้ง


อาจเพียงเพื่อประหยัดแบนด์วิดธ์ ...
drnessie

1
AFAIK sudo apt-get installสามารถติดตั้งแพ็คเกจได้มากเท่าที่คุณต้องการ คุณต้องรู้ชื่อแพ็คเกจ
sagarchalise

@drnessie ไม่มันไม่ได้! หากคุณติดตั้งทั้งสองพร้อมกันด้วย apt-get คุณจะดาวน์โหลดในเวลาเดียวกันและติดตั้งทีละตัวในเวลาเดียวกัน
Alvar

@Alvar Ok ฉันได้ทำสิ่งนั้นใน Linux Mint แล้ว แต่การลองเหมือนกันใน Ubuntu ไม่ทำงาน วิธีการทำ?
MycrofD

@MycrofD คุณพยายามทำอะไร
Alvar

คำตอบ:


29

นั่นเป็นคำถามที่ดี มันเป็นเพราะมันขึ้นอยู่กับเครื่องมือแพคเกจเดียวกันที่ฉลาดและอื่น ๆ ใช้ สิ่งเหล่านี้ได้รับการออกแบบในแบบที่คาดหวังให้คุณจัดเตรียมแพ็คเกจทั้งหมดที่จะติดตั้งแล้วส่วนที่เหลือเป็นแบบอัตโนมัติ นี่เป็นสิ่งที่ดีมากในกรณีส่วนใหญ่ แต่สำหรับ Software Center จะทำให้เกิดปัญหาบางอย่าง คุณจะต้องเลือกแพ็คเกจที่คุณต้องการติดตั้งก่อนจากนั้นคลิกปุ่มเพื่อดาวน์โหลดและติดตั้งจริง ๆ หรือคุณต้องเข้าคิวแอพพลิเคชั่นแล้วดาวน์โหลดและติดตั้งทีละตัว สิ่งนี้มอบประสบการณ์การใช้งานที่ดียิ่งขึ้นหากคุณติดตั้งแอปพลิเคชั่นเดียวมากกว่าที่จะต้องใช้การคลิกพิเศษเหล่านั้น แต่ก็น่ารำคาญเมื่อคุณ "ช็อปปิ้ง"

เป็นไปได้ที่จะแก้ไขปัญหานี้ดังนั้นฉันคาดว่าในอนาคตจะแก้ไขได้ แต่มันหมายถึงการสร้างหรือเขียนเครื่องมือที่มีอยู่ใหม่ดังนั้นฉันจึงไม่คิดว่ามันจะมีลำดับความสำคัญสูงมาก

ให้ฉันทำอย่างละเอียด:

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

เมื่อคุณเลือกที่จะติดตั้งแอปพลิเคชั่นในศูนย์ซอฟต์แวร์โดยปกติคุณจะต้องการให้มันเริ่มดาวน์โหลดและติดตั้งทันที แต่เพื่อให้แน่ใจว่าทุกอย่างเป็นไปตามลำดับสามารถทำการติดตั้งได้เพียงครั้งเดียวในแต่ละครั้ง นั่นเป็นสาเหตุที่เมื่อคุณติดตั้งแอปพลิเคชันคุณต้องรอจนกว่าแอปพลิเคชันนั้นจะดาวน์โหลดและติดตั้งอย่างสมบูรณ์ก่อนที่การดาวน์โหลดและการติดตั้งครั้งต่อไปจะเริ่มขึ้น

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


ที่จริงแล้วแพกเกจ apt-get สามารถดาวน์โหลดได้โดยไม่ต้องติดตั้งแม้ว่าฉันจะไม่แน่ใจ 100% ว่ามันจะทำงานกับฐานข้อมูลที่ถูกล็อค ...
JanC

การดาวน์โหลดพร้อมกันและอาจจะติดตั้งใน Linux Mint มันไม่ได้อยู่ใน Ubuntu
MycrofD

2
@MycrofD: ฉันไม่รู้จริง ๆ ว่าความคิดเห็นนั้นควรจะเป็นอย่างไร แน่นอนคุณสามารถดาวน์โหลดหลายแพ็คเกจพร้อมกันด้วย Ubuntu คุณไม่สามารถทำได้ด้วยการรับและเครื่องมือที่ใช้มัน เห็นได้ชัดว่าไม่ว่าคุณจะพูดถึงเรื่อง distro ใด
Jo-Erlend Schinstad

10

คุณสามารถติดตั้งได้ครั้งละหนึ่งแพ็คเกจ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-geta tar -xzfและสคริปต์ติดตั้ง perl / bash ในเวลาเดียวกัน :)


1
ถ้าผมไม่ผิดหลาย ๆ โปรแกรมสามารถทำงานโดยใช้sudoในเวลาเดียวกัน แต่เมื่อมันมาถึงการจัดแพคเกจการจัดการเพียงหนึ่งแอปดังกล่าวสามารถติดตั้งหรือแพคเกจลบในเวลาที่กำหนดเนื่องจากการทำงานaptที่ได้รับล็อคบนsources.listและด้วยเหตุนี้ถ้ามี แอปพลิเคชันการจัดการแพคเกจอื่นพยายามเรียกใช้มันจะไม่ได้รับการล็อคไฟล์นั้นและจะไม่ทำงาน
Kushal

@ เทือกเขามันเหมาะ - รับเพียงหนึ่งสามารถใช้ขอโทษเป็นเวลานานเนื่องจากฉันพบข้อผิดพลาด
Alvar

@Rinzwind นี่คือสิ่งที่คุณหมายถึงอะไร? :)
Alvar

2
@Alvar: แก้ไขเพื่อรวมพฤติกรรม Windows ที่คล้ายกันที่ด้านล่าง: ไม่ต้องการคนที่จะเข้าใจผิดว่า Windows เป็นอย่างใด "ดีกว่า";)
ish

1
@Alvar ... ขอบคุณมาก !! นั่นเป็นการลบข้อมูลเบื้องต้นของฉัน .. ;)
Nirmik

7

ครั้งแรกที่ปล่อยให้มันรู้ว่าคำตอบนี้มาจากสิ่งที่ผมเคยรวบรวมได้จากประสบการณ์ของฉันกับและdpkg aptฉันไม่ได้ดูรหัสศูนย์ซอฟต์แวร์จริงเพื่อพิจารณาสิ่งนี้

มันเป็นข้อ จำกัด ของการออกแบบซอฟต์แวร์พื้นฐาน

ส่วนหนึ่งของdpkgระบบที่ Ubuntu ใช้สำหรับแพ็คเกจรวมถึงคุณสมบัติที่ "ล็อก" /var/lib/dpkg/lockไฟล์เพื่อป้องกันหลาย ๆdpkg( apt-getและ Ubuntu Software Center เป็นส่วนหน้า) จากการเขียนทับตัวเองและสิ่งเลวร้ายอื่น ๆ

จะเกิดอะไรขึ้นเมื่อคุณติดตั้งซอฟต์แวร์ มันเกิดอะไรขึ้นsudo apt-get install chromium-browser( เริ่มใช้ Chromium เป็นตัวอย่าง)

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


4

การกระทำบางอย่างเช่นการรีเฟรชเมนูการทำดัชนีแบบอักษรและการกำหนดค่าไลบรารีใหม่จะต้องเกิดขึ้นเพียงครั้งเดียวหากติดตั้งแพคเกจทั้งหมดพร้อมกัน ข้อได้เปรียบที่สองหวังว่าไม่ควรเกิดขึ้นบ่อยครั้ง แต่ถ้าคุณต้องการติดตั้งแพคเกจที่แยกคนอื่นคุณรู้ก่อนที่จะดาวน์โหลดทั้งหมด

ข้อได้เปรียบที่ผ่านมาส่วนใหญ่มีความสำคัญเมื่อคุณติดตั้งหรืออัพเกรดแพคเกจจำนวนมากพร้อมกัน: หากต้องตอบคำถามพวกเขาจะมาหากันในระหว่างการติดตั้ง ดังนั้นคุณสามารถทำงานต่อไปแทนที่จะถูกบั๊กทุก 5 นาทีด้วยคำถามอื่น


คุณมีจุดที่น่าสนใจไม่กี่ที่นั่น :)
Jo-Erlend Schinstad

2

เหตุผลที่อินสแตนซ์ของ apt-get ไม่สามารถทำงานพร้อมกันสองอินสแตนซ์ได้เนื่องจากแอ็พพลิเคชันกำลังอ่าน / เขียนไฟล์หลายไฟล์ที่สำคัญสำหรับการทำงานของระบบ การอ่านหรือเขียนไฟล์โดยการใช้งาน apt-get ในขณะที่อีกอันกำลังทำการดำเนินการเดียวกันมันจะนำไปสู่ปัญหาการกำหนดค่าที่ไม่ดีและ / หรือความเสียหายของไฟล์ ดังนั้นเมื่อมีการดำเนินการ apt-get มันจะ "ล็อก" ไฟล์ที่ต้องการเพื่อให้การดำเนินการอื่นไม่สามารถดำเนินการได้พร้อมกันหรือที่รู้จักกันมันจะเพิ่มค่าสถานะที่บอกการดำเนินการอื่น ๆ ว่าไฟล์นั้นถูกใช้งานอยู่ในปัจจุบัน

อย่างไรก็ตามการดาวน์โหลดไฟล์ที่จำเป็นโดย apt (หรือดาวน์โหลดจากแหล่งข้อมูลจำนวนมาก) พร้อมกันนั้นเป็นไปได้ด้วยคำสั่ง apt-fast

https://github.com/ilikenwf/apt-fast


0

วิธีง่ายๆในการติดตั้งหลายไฟล์ในครั้งเดียวให้ทำตามขั้นตอนเหล่านี้

  1. คัดลอกโฟลเดอร์การติดตั้งทั้งหมดตัวอย่างเช่น: / home / user / apps
  2. เปิด terminal และประเภท:

    CD / home / user / apps

  3. จากนั้นพิมพ์อีกครั้ง

    sudo dpkg -i * .deb

รอจนกระทั่งการติดตั้งเสร็จสิ้น


1
ที่ยังคงติดตั้ง .deb ไฟล์หนึ่งโดยหนึ่ง ไม่ใช่สิ่งที่ OP ถาม - เขาต้องการไฟล์. deb หลายไฟล์พร้อมกัน
ish

-1

คุณจะได้รับการดาวน์โหลดแพ็คเกจในขณะที่อีกอันกำลังทำการติดตั้งเช่นใน terminal1

sudo apt-get install vlc

จากนั้นดาวน์โหลดแพ็คเกจอื่นในเทอร์มินัลอื่น 2

sudo apt-get download openssh-server

เพื่อดูตัวเลือกอื่น ๆ ที่ใช้ได้กับ apt-get อ้างถึงประเภทง่าย ๆ ของ man

apt-get <press tab on your keyboard>

สิ่งนี้ไม่ตอบคำถาม
guntbert

@guntbert ฉันกำลังตอบคำถามในส่วนที่สองของเขาเขากล่าวว่า "หรือเพราะเหตุใดศูนย์ซอฟต์แวร์ไม่ดาวน์โหลดแอปขณะที่อีกเครื่องกำลังติดตั้ง" ฉันคิดว่าเขายืนยันว่ามันเป็นไปไม่ได้ที่จะดาวน์โหลดแพ็คเกจอื่นขณะติดตั้ง อีกอันหนึ่งที่ผิด
marengz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.