Mengapa pusat perangkat lunak tidak mengizinkan banyak unduhan?

29

Saya bertanya-tanya mengapa pusat perangkat lunak tidak mengunduh semua aplikasi yang diminta dan menginstal satu per satu saat mereka selesai mengunduh. Atau sebaliknya mengapa pusat perangkat lunak tidak mengunduh aplikasi saat yang lain menginstal

Kehidupan Yesus ii
sumber
mungkin hanya untuk menghemat bandwidth ...
drnessie
1
AFAIK sudo apt-get installdapat menginstal paket sebanyak yang Anda inginkan. Anda harus tahu nama paketnya.
sagarchalise
@ Radnessie tidak itu tidak! jika Anda menginstal keduanya sekaligus dengan apt-get, Anda akan mengunduhnya sekaligus dan menginstalnya satu per satu.
Alvar
@ Alvar Ok. Saya telah melakukannya di Linux Mint. Tetapi mencoba hal yang sama di Ubuntu tidak berhasil. Bagaimana melakukan?
MycrofD
@MycrofD Dan apa yang Anda coba?
Alvar

Jawaban:

29

Itu pertanyaan yang bagus. Itu karena didasarkan pada alat paket yang sama yang digunakan oleh apt-get dan yang lainnya. Ini dirancang dengan cara yang mengharapkan Anda untuk menyediakan semua paket yang akan diinstal, dan sisanya otomatis. Ini sangat baik dalam banyak kasus, tetapi untuk Pusat Perangkat Lunak, ini menyebabkan beberapa masalah. Anda harus terlebih dahulu memilih paket yang ingin Anda instal dan kemudian klik tombol untuk benar-benar mengunduh dan menginstalnya, atau Anda harus mengantri aplikasi dan kemudian mengunduh dan menginstal satu per satu. Ini memberikan pengalaman pengguna yang jauh lebih baik jika Anda menginstal satu aplikasi daripada harus menggunakan klik tambahan itu, tetapi juga mengganggu ketika Anda "berbelanja".

Adalah mungkin untuk memperbaikinya, jadi saya berharap bahwa di masa depan, ini akan diperbaiki, tetapi itu berarti membuat ulang atau menulis ulang alat yang ada, jadi saya tidak berpikir itu akan memiliki prioritas yang sangat tinggi.

Biarkan saya uraikan:

Paket mungkin tergantung pada paket lain. Jika paket ini tidak tersedia, maka paket tidak dapat diinstal. Jadi alat seperti apt-get pertama-tama akan mengunduh semua paket yang Anda minta dan semua paket yang mereka andalkan, dll, lalu menginstal semuanya. Jadi Anda biasanya akan menyediakan semua paket yang Anda inginkan dalam sekali jalan, dan mereka akan diunduh terlebih dahulu dan kemudian diinstal.

Ketika Anda memilih untuk menginstal aplikasi di pusat perangkat lunak, Anda biasanya ingin aplikasi itu segera mulai diunduh dan diinstal. Tetapi untuk memastikan semuanya beres, hanya satu instalasi yang dapat dilakukan pada satu waktu. Itu sebabnya ketika Anda menginstal aplikasi, Anda harus menunggu hingga aplikasi itu sepenuhnya diunduh dan diinstal sebelum unduhan dan instalasi berikutnya dapat dimulai.

Ini bisa diperbaiki dengan tidak menggunakan apt-get untuk menginstal paket, tetapi mengunduh paket secara manual dan kemudian menggunakan dpkg untuk menginstalnya setelah mereka siap. Anda masih tidak dapat menginstal dua paket secara bersamaan, tetapi Anda akan dapat mulai mengunduh paket baru saat instalasi yang dimulai sebelumnya selesai. Dalam beberapa kasus, itu akan menghemat waktu, jadi itu ide yang bagus. Tetapi dalam kebanyakan kasus, itu tidak terlalu penting sehingga upaya lebih terfokus di tempat lain.

Jo-Erlend Schinstad
sumber
Sebenarnya, apt-get dapat mengunduh paket tanpa menginstalnya, meskipun saya tidak 100% yakin itu bekerja dengan basis data yang terkunci ...
JanC
pengunduhan secara simultan dan mungkin penginstalan berfungsi di Linux Mint. Itu tidak di Ubuntu.
MycrofD
2
@MycrofD: Saya tidak benar-benar tahu apa maksud komentar itu. Tentu Anda dapat mengunduh banyak paket sekaligus dengan Ubuntu. Anda tidak bisa melakukan itu dengan apt-get dan alat yang didasarkan padanya. Itu jelas terlepas dari distro mana yang sedang Anda bicarakan.
Jo-Erlend Schinstad
10

Anda hanya dapat menginstal satu paket pada saat itu sudo apt-get install, tetapi Anda dapat menginstal beberapa paket dengan satu perintah. Seperti ini:

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

Ini akan menginstal dependensi baik ubuntu-desktopdan lubuntu-desktopdan apa pun yang mereka butuhkan, dalam urutan yang benar.

Juga ketika Anda memperbarui sistem Anda dengan sudo apt-get upgrade, Anda terlebih dahulu mengunduh semua perangkat lunak dan kemudian menginstal satu paket pada saat itu.

Alasan
mengapa Anda tidak dapat menginstal beberapa paket sekaligus adalah karena hanya satu instance yang dapat menggunakan apt-gethak istimewa pada saat yang sama. Ini karena apt-getkunci pada software sourcesdan memblokir perintah lain untuk menggunakannya.

Contoh
Katakanlah Anda entah bagaimana mulai 2 apt-get terpisah seperti yang dikatakan @Rinzwind, maka secara teori Anda setidaknya dapat mengedit daftar sumber pada saat yang sama saat Anda menggunakannya untuk menemukan dan menginstal perangkat lunak baru. Ini dapat menyebabkan program yang Anda instal mengedit daftar sumber dan menambahkan repositori yang tidak aman secara bersamaan ketika Anda meningkatkan sistem Anda. Ini bisa menjadi masalah keamanan.

Contoh lain
Juga jika Anda mengedit daftar sumber pada 2 perintah terpisah maka ketika Anda menyimpan Anda akan mengganti versi terbaru, yang akan menjadi yang terakhir disimpan. Yang berarti bahwa perintah di tengah tidak akan berpengaruh, karena Anda akan menyimpan lebih dari versi lama.


Windows berperilaku serupa dengan menggunakan penginstal "resmi" (MSI)

Bahkan di Windows, beberapa perangkat lunak dapat diinstal secara bersamaan ... apakah ada keuntungan dalam hal ini atau mengapa ini merupakan keharusan di linux / ubuntu, dll ...

Paket yang menggunakan penginstal Windows resmi (MSI) AKAN MENOLAK untuk menjalankan lebih dari satu instance sekaligus. Itu karena basis data penginstal MSI mirip dengan sources.list, file info dpkg, dll. - Anda tidak ingin lebih dari satu penginstal memodifikasi / menguncinya sekaligus.

Tetapi banyak paket Windows menggunakan installer pihak ketiga seperti Installshield, NSIS, dll. Yang akan berjalan berdampingan karena mereka tidak perlu mengakses / memodifikasi database MSI. Demikian pula, di Linux / Ubuntu, tidak ada yang menghentikan Anda dari menjalankan skrip instal apt-get, a, tar -xzfdan perl / bash semuanya secara bersamaan :)

Alvar
sumber
1
Jika saya tidak salah, banyak aplikasi dapat dijalankan menggunakan sudopada saat yang sama, tetapi ketika datang ke paket manajemen, hanya satu aplikasi tersebut dapat menginstal atau paket remove pada waktu tertentu, karena menjalankan aptmendapat kunci pada sources.listdan karenanya jika ada aplikasi pengelola paket lainnya dicoba untuk dijalankan, tidak akan mendapatkan kunci pada file itu dan karenanya tidak akan berjalan.
Kushal
@ Kush itu apt-get hanya satu yang bisa digunakan, maaf, sudah lama sejak saya mendapat kesalahan itu.
Alvar
@Rinzwind apakah ini yang Anda maksud? :)
Alvar
2
@ Alvar: diedit untuk memasukkan perilaku Windows serupa di bagian bawah: tidak ingin orang mendapatkan informasi yang salah bahwa Windows entah bagaimana "unggul";)
ish
1
@ Alvar ... Terima kasih banyak. !! Itu membersihkan dasar-dasar saya ..;)
Nirmik
7

Pertama, beri tahu bahwa jawaban ini berasal dari apa yang saya dapatkan dari pengalaman saya dengan dpkgdan apt. Saya belum melihat kode pusat perangkat lunak yang sebenarnya untuk menentukan ini.

Ini adalah batas dari desain perangkat lunak yang mendasarinya.

Bagian dari dpkgsistem yang digunakan Ubuntu untuk paket termasuk fitur yang "mengunci" /var/lib/dpkg/lockfile untuk mencegah banyak dpkg( apt-getdan Pusat Perangkat Lunak Ubuntu adalah ujung depan) dari menimpa dirinya sendiri dan hal-hal jahat dan jahat lainnya.

Apa yang terjadi ketika Anda menginstal perangkat lunak? Apa yang terjadi adalah itu dimulai sudo apt-get install chromium-browser(untuk menggunakan Chromium sebagai contoh).

Dan ketika itu terjadi, sebuah kunci masuk. Setelah Anda menambahkan lebih dari satu paket untuk diinstal, apa yang terjadi selanjutnya adalah menunggu sampai yang pertama dilakukan sebelum memulai aptperintah berikutnya .

jrg
sumber
4

Beberapa tindakan, seperti me-refresh menu, mengindeks font dan mengkonfigurasi ulang pustaka hanya perlu dilakukan sekali jika semua paket diinstal pada waktu yang sama. Keuntungan kedua semoga tidak sering terjadi, tetapi jika Anda ingin menginstal paket yang mengecualikan satu sama lain, Anda tahu itu sebelum mengunduh semuanya.

Keuntungan terakhir sebagian besar penting ketika Anda menginstal atau meningkatkan banyak paket sekaligus: jika pertanyaan harus dijawab, mereka semua akan mencari satu sama lain selama kemajuan instalasi. Jadi, Anda dapat terus bekerja alih-alih disadap setiap 5 menit dengan pertanyaan berbeda.

johanvdw
sumber
Anda punya beberapa poin menarik di sana. :)
Jo-Erlend Schinstad
2

Alasan dua instance apt-get tidak dapat beroperasi secara bersamaan adalah karena aplikasi membaca / menulis beberapa file penting untuk operasi sistem. Membaca atau menulis file dengan operasi apt-get, sementara yang lain melakukan operasi yang sama di atasnya akan menyebabkan masalah konfigurasi yang buruk dan / atau kerusakan file. Jadi ketika operasi apt-get terjadi, itu "mengunci" file yang dibutuhkan sehingga operasi lain tidak dapat dijalankan secara bersamaan, alias menimbulkan bendera yang memberi tahu operasi lain bahwa file saat ini sedang digunakan.

Namun, unduhan simultan dari file yang dibutuhkan oleh apt (atau lebih tepatnya unduhan dari sejumlah sumber) dimungkinkan dengan perintah apt-fast

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

Messie
sumber
0

cara mudah untuk menginstal beberapa file dalam satu waktu, ikuti langkah-langkah ini

  1. salin semua folder instalasi, misalnya: / home / user / apps
  2. Terminal terbuka dan Ketik:

    CD / rumah / pengguna / aplikasi

  3. lalu ketik lagi

    sudo dpkg -i * .deb

tunggu hingga instalasi selesai.

hardianto
sumber
1
Itu masih menginstal file deb satu-per-satu . Bukan apa yang diminta OP - ia ingin menginstal banyak file deb secara bersamaan.
ish
-1

Anda dapat mengunduh paket sementara yang lain menginstal mis. di terminal1

sudo apt-get install vlc

kemudian unduh juga paket lain di terminal2 lain

sudo apt-get download openssh-server

untuk melihat opsi lain yang tersedia dengan apt-get merujuk ke tipe man sederhana

apt-get <press tab on your keyboard>
marengz
sumber
Ini tidak menjawab pertanyaan.
guntbert
@ Guntbert saya menjawab bagian kedua dari pertanyaannya, dia mengatakan "Atau alih-alih mengapa pusat perangkat lunak tidak mengunduh aplikasi saat yang lain menginstal", saya pikir dia menegaskan bahwa tidak mungkin untuk mengunduh paket lain ketika menginstal yang lain salah.
marengz