Tại sao trung tâm phần mềm không cho phép tải xuống nhiều?


29

Tôi đã tự hỏi tại sao trung tâm phần mềm không tải xuống tất cả các ứng dụng được yêu cầu và cài đặt từng cái một khi chúng hoàn tất để tải xuống. Hoặc thay vào đó tại sao trung tâm phần mềm không tải xuống ứng dụng trong khi ứng dụng kia đang cài đặt


có lẽ chỉ để tiết kiệm băng thông ...
drnessie

1
AFAIK sudo apt-get installcó thể cài đặt bao nhiêu gói tùy thích. Bạn cần biết tên gói.
sagarchalise

@drnessie không phải vậy! nếu bạn cài đặt cả hai cùng một lúc với apt-get, bạn sẽ tải chúng xuống cùng một lúc và sau đó cài đặt chúng cùng một lúc.
Alvar

@ Alvar Ok. Tôi đã làm điều đó trong Linux Mint. Nhưng việc thử tương tự trong Ubuntu không hoạt động. Làm thế nào để làm gì?
MycrofD

@MycrofD Và bạn đang cố gắng làm gì?
Alvar

Câu trả lời:


29

Đó là một câu hỏi hay. Đó là bởi vì nó dựa trên cùng các công cụ gói mà apt-get và những người khác sử dụng. Chúng được thiết kế theo cách mong đợi bạn cung cấp tất cả các gói sẽ được cài đặt, và phần còn lại là tự động. Điều này rất tốt trong hầu hết các trường hợp, nhưng đối với Trung tâm phần mềm, nó gây ra một số vấn đề. Trước tiên, bạn cần chọn các gói bạn muốn cài đặt và sau đó nhấp vào nút để thực sự tải xuống và cài đặt chúng, hoặc bạn phải xếp hàng các ứng dụng, sau đó tải xuống và cài đặt từng cái một. Điều này cung cấp trải nghiệm người dùng tốt hơn nhiều nếu bạn đang cài đặt một ứng dụng hơn là phải sử dụng các nhấp chuột bổ sung đó, nhưng cũng gây khó chịu khi bạn "mua sắm".

Có thể khắc phục điều này, vì vậy tôi hy vọng rằng trong tương lai, điều này sẽ được khắc phục, nhưng điều đó có nghĩa là tái tạo hoặc viết lại các công cụ hiện có, vì vậy tôi không nghĩ rằng nó sẽ có mức độ ưu tiên rất cao.

Hãy để tôi giải thích:

Một gói có thể phụ thuộc vào các gói khác. Nếu các gói này không có sẵn, thì gói không thể được cài đặt. Vì vậy, các công cụ như apt-get trước tiên sẽ tải xuống tất cả các gói bạn yêu cầu và tất cả các gói mà chúng phụ thuộc, v.v., sau đó cài đặt tất cả các gói. Vì vậy, thông thường bạn sẽ cung cấp tất cả các gói bạn muốn trong một lần và trước tiên chúng sẽ được tải xuống và sau đó được cài đặt.

Khi bạn chọn cài đặt một ứng dụng trong trung tâm phần mềm, bạn thường sẽ muốn nó bắt đầu tải xuống và cài đặt ngay lập tức. Nhưng để đảm bảo rằng mọi thứ đều đúng thứ tự, chỉ có thể thực hiện một cài đặt bất kỳ lúc nào. Đó là lý do tại sao khi bạn cài đặt một ứng dụng, bạn phải đợi cho đến khi ứng dụng đó được tải xuống và cài đặt hoàn toàn trước khi quá trình tải xuống và cài đặt tiếp theo có thể bắt đầu.

Điều này có thể được khắc phục bằng cách không sử dụng apt-get để cài đặt các gói, mà thay vào đó tải xuống các gói theo cách thủ công và sau đó sử dụng dpkg để cài đặt chúng một khi chúng đã sẵn sàng. Bạn vẫn không thể cài đặt hai gói cùng một lúc, nhưng bạn sẽ có thể bắt đầu tải xuống các gói mới trong khi các cài đặt đã bắt đầu trước đó đang hoàn tất. Trong một số trường hợp, điều đó sẽ tiết kiệm khá nhiều thời gian, vì vậy đó là một ý tưởng tốt. Nhưng trong hầu hết các trường hợp, nó sẽ không thực sự quan trọng vì vậy nỗ lực tập trung tốt hơn ở nơi khác.


Trên thực tế, apt-get có thể tải xuống các gói mà không cần cài đặt chúng, mặc dù tôi không chắc chắn 100% hoạt động với cơ sở dữ liệu bị khóa ...
JanC

tải xuống đồng thời và có lẽ cài đặt hoạt động trong Linux Mint. Nó không có trong Ubuntu.
MycrofD

2
@MycrofD: Tôi không thực sự biết ý kiến ​​của nhận xét đó là gì. Chắc chắn bạn có thể tải xuống nhiều gói cùng một lúc với Ubuntu. Bạn không thể làm điều đó với apt-get và các công cụ dựa trên nó. Đó rõ ràng là bất kể bạn đang nói về distro nào.
Jo-Erlend Schinstad

10

bạn chỉ có thể cài đặt một gói cùng lúc sudo apt-get install, nhưng bạn có thể cài đặt một số gói với một lệnh. Như thế này:

  • sudo apt-get install ubuntu-desktop lubuntu-desktop

Điều này sẽ cài đặt cả ubuntu-desktoplubuntu-desktopvà bất kỳ phụ thuộc nào họ yêu cầu, theo đúng trình tự.

Ngoài ra khi bạn cập nhật hệ thống của mình sudo apt-get upgrade, trước tiên bạn tải xuống tất cả phần mềm và sau đó cài đặt một gói tại thời điểm đó.

Lý do
Tại sao bạn không thể cài đặt nhiều gói cùng một lúc là chỉ một phiên bản có thể sử dụng các apt-getđặc quyền cùng một lúc. Điều này là do các apt-getkhóa trên software sourcesvà chặn bất kỳ lệnh nào khác sử dụng chúng.

Một ví dụ
Giả sử bạn bằng cách nào đó bắt đầu 2 apt-get riêng biệt như @Rinzwind nói, về lý thuyết bạn có thể chỉnh sửa danh sách nguồn cùng lúc khi bạn sử dụng nó để tìm và cài đặt phần mềm mới. Điều này có thể dẫn đến một chương trình mà bạn đã cài đặt sẽ chỉnh sửa danh sách nguồn và thêm một kho lưu trữ không an toàn cùng lúc với khi bạn đang nâng cấp hệ thống của mình. Đây có thể là một vấn đề bảo mật.

Một ví dụ khác
Ngoài ra, nếu bạn chỉnh sửa danh sách nguồn ở 2 lệnh riêng biệt thì khi bạn lưu, bạn sẽ thay thế phiên bản mới nhất, đây sẽ là phiên bản lưu cuối cùng. Điều đó có nghĩa là lệnh ở giữa sẽ không có hiệu lực, vì bạn sẽ lưu trên một phiên bản cũ.


Windows hoạt động tương tự bằng trình cài đặt "chính thức" (MSI)

Ngay cả trong Windows, nhiều phần mềm có thể được cài đặt đồng thời ... có một lợi thế trong việc này hoặc tại sao điều này lại cần thiết trong linux / ub Ubuntu, v.v ...

Các gói sử dụng trình cài đặt Windows chính thức (MSI) S RE HOÀN LẠI để chạy nhiều hơn một phiên bản cùng một lúc. Đó là bởi vì cơ sở dữ liệu trình cài đặt MSI tương tự như sources.listcác tệp thông tin dpkg, v.v. - bạn không muốn nhiều hơn một trình cài đặt sửa đổi / khóa chúng cùng một lúc.

Nhưng rất nhiều gói Windows sử dụng các trình cài đặt của bên thứ ba như Cài đặt, NSIS, v.v. chúng sẽ chạy cùng nhau vì chúng không cần truy cập / sửa đổi cơ sở dữ liệu MSI. Tương tự như vậy, trong Linux / Ubuntu, không ai của bạn dừng chạy một apt-get, một tar -xzfvà một perl / bash cài đặt kịch bản tất cả cùng một lúc :)


1
Nếu tôi không sai, nhiều ứng dụng có thể chạy bằng sudocùng một lúc, nhưng khi nói đến gói quản lý, chỉ có một ứng dụng như vậy có thể cài đặt hoặc gói loại bỏ tại một thời điểm nhất định, kể từ khi chạy aptđược một khóa trên sources.listvà do đó nếu có ứng dụng quản lý gói khác được thử chạy, nó sẽ không bị khóa trên tệp đó và do đó sẽ không chạy.
Kushal

@Kush đó là apt-get chỉ có một người có thể sử dụng, xin lỗi, đã lâu rồi tôi mới gặp lỗi đó.
Alvar

@Rinzwind đây là ý của bạn? :)
Alvar

2
@Alvar: được chỉnh sửa để bao gồm hành vi tương tự của Windows ở phía dưới: không muốn mọi người hiểu sai rằng Windows bằng cách nào đó "vượt trội";)
ish

1
@ Alvar ... Thanx rất nhiều. !! Điều đó rõ ràng những điều cơ bản của tôi ..;)
Nirmik

7

Đầu tiên, hãy biết rằng câu trả lời này là từ những gì tôi đã lượm lặt được từ những trải nghiệm của mình với dpkgapt. Tôi đã không nhìn vào mã trung tâm phần mềm thực tế để xác định điều này.

Đó là một giới hạn của thiết kế của phần mềm cơ bản.

Một phần của dpkghệ thống mà Ubuntu sử dụng cho các gói bao gồm một tính năng "khóa" /var/lib/dpkg/locktệp để ngăn không cho nhiều người dpkg( apt-getvà Trung tâm phần mềm Ubuntu ở phía trước) ghi đè lên chính nó và những điều xấu, xấu khác.

Điều gì xảy ra khi bạn cài đặt phần mềm? Điều gì xảy ra là nó bắt đầu sudo apt-get install chromium-browser(để sử dụng Chromium làm ví dụ).

Và khi điều đó xảy ra, một khóa sẽ xuất hiện. Một khi bạn thêm nhiều gói được cài đặt, điều xảy ra tiếp theo là nó sẽ đợi cho đến khi gói đầu tiên được thực hiện trước khi bắt đầu aptlệnh tiếp theo .


4

Một số hành động, như làm mới menu, lập chỉ mục phông chữ và cấu hình lại các thư viện chỉ cần xảy ra một lần nếu tất cả các gói được cài đặt cùng một lúc. Một lợi thế thứ hai hy vọng không nên xảy ra thường xuyên, nhưng nếu bạn muốn cài đặt các gói loại trừ nhau thì bạn biết trước khi tải xuống tất cả chúng.

Một lợi thế cuối cùng chủ yếu là quan trọng khi bạn cài đặt hoặc nâng cấp nhiều gói cùng một lúc: nếu câu hỏi phải được trả lời, tất cả chúng sẽ đến sau mỗi lần trong quá trình cài đặt. Vì vậy, bạn có thể tiếp tục làm việc thay vì bị lỗi cứ sau 5 phút bởi một câu hỏi khác.


Bạn đã có một vài điểm thú vị ở đó. :)
Jo-Erlend Schinstad

2

Lý do hai trường hợp apt-get không thể hoạt động đồng thời là vì ứng dụng đang đọc / ghi một số tệp quan trọng cho hoạt động của hệ thống. Đọc hoặc ghi một tệp bởi một hoạt động apt-get, trong khi một hoạt động khác đang thực hiện các hoạt động tương tự trên nó sẽ dẫn đến các vấn đề về cấu hình xấu và / hoặc làm hỏng các tệp. Vì vậy, khi một hoạt động apt-get xảy ra, nó "khóa" các tệp mà nó cần để một hoạt động khác không thể được thực thi đồng thời, hay còn gọi là cờ cho biết các hoạt động khác mà các tệp hiện đang sử dụng.

Tuy nhiên, có thể tải xuống đồng thời các tệp cần thiết của apt (hoặc đúng hơn là tải xuống từ một số nguồn) với lệnh apt-fast

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


0

Cách đơn giản để cài đặt một số tệp trong một lần, hãy làm theo các bước sau

  1. sao chép tất cả thư mục cài đặt, ví dụ: / home / user / apps
  2. Mở terminal và Type:

    CD / nhà / người dùng / ứng dụng

  3. và sau đó gõ lại

    sudo dpkg -i * .deb

chờ đợi cho đến khi cài đặt kết thúc.


1
Mà vẫn cài đặt các tập tin .deb một-by-one . Không phải những gì OP yêu cầu - anh ấy muốn cài đặt nhiều tệp .deb cùng một lúc.
ish

-1

bạn có thể tải xuống gói trong khi gói kia đang cài đặt, ví dụ như trong terminal1

sudo apt-get install vlc

sau đó cũng tải xuống gói khác trong terminal2 khác

sudo apt-get download openssh-server

để xem các tùy chọn khác có sẵn với apt-get hãy tham khảo loại đơn giản của người đàn ông của nó

apt-get <press tab on your keyboard>

Điều này không trả lời câu hỏi.
guntbert

@guntbert Tôi đã trả lời phần thứ hai của câu hỏi của anh ấy, anh ấy nói "Hoặc thay vào đó tại sao trung tâm phần mềm không tải xuống ứng dụng trong khi ứng dụng kia đang cài đặt", tôi đoán rằng anh ấy đã khẳng định rằng không thể tải xuống gói khác trong khi cài đặt cái khác là sai.
marengz 6/03/2015
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.