Kami melihat Sebagian besar perangkat lunak Windows dikemas dalam satu file yang dapat dieksekusi. Ketika saya mengklik dua kali file Pengaturan, itu mengatur semua file, binari dan perpustakaan dengannya.
Saya mengerti ketergantungan Ubuntu atau paket linux yang lebih umum. Tetapi saya bertanya-tanya, Mengapa ini ada. Apakah tidak mungkin membuat satu file dengan semua dependensi? Apa masalah dengan metode ini?
Silakan coba berikan alasannya secara rinci.
Itu tidak sepenuhnya benar. Perangkat lunak Ubuntu biasanya datang dalam satu file .deb. Menjadi sangat sederhana (dan tidak akurat), file .deb adalah file .exe koresponden untuk windows. Semua program, termasuk yang di windows menggunakan dependensi ke file lain di sistem operasi (perpustakaan). Proses instalasi kurang lebih eksplisit di OS yang berbeda. Ketika Anda menggunakan pusat perangkat lunak di Ubuntu untuk mengunduh program, Anda hanya mengunduh dependensi yang tidak diinstal di sistem Anda dan file program yang sebenarnya. Itu mencegah sistem dari kelebihan dengan file duplikat dan fungsi duplikat yang akan berakhir dalam konflik.
Percaya atau tidak, satu-satunya perbedaan antara menginstal program di windows atau Ubuntu adalah jumlah informasi yang mereka berikan kepada pengguna. Windows berpikir bahwa para penggunanya bodoh dan tidak ingin mereka tahu apa yang sedang diinstal ketika menjalankan file exe. Di linux Anda mendapatkan informasi itu .. bagi sebagian pengguna terlalu banyak detail, tetapi yang lain (paling) sangat menghargai itu.
harap itu masuk akal.
sumber
.deb
adalah.msi
.Di Ubuntu, sebagian besar perangkat lunak datang dalam satu file. Ini adalah
*.deb
file paket debian yang diunduh, dibuka dan diinstal dari manajer paket Anda.Mengapa Ubuntu tidak menginstal perangkat lunak dari executable yang mengekstrak sendiri seperti kebanyakan perangkat lunak Windows lakukan?
Karena self extracting
*.exe
files adalah proposisi yang sangat berbahaya untuk diterima.Perbedaan paling kritis antara executable yang mengekstrak diri dan sistem pengemasan, seperti yang debian / Ubuntu, adalah:
Lebih detail:
Keamanan
Di dunia windows Anda harus mempercayai satu
*.exe
file itu. Bagaimana seseorang bisa benar-benar yakin itu bisa dipercaya? Bagaimana Anda bisa tahu bahwa itu menginstal sesuatu? Bagaimana Anda bisa yakin itu tidak melakukan hal-hal lain di belakang Anda?Di Ubuntu, semua paket ditandatangani secara digital, jadi dengan menggunakan file paket terpisah - manajer paket (baik itu muon, sinaptik, aptitude, atau bahkan apt langsung) - Anda mendapatkan konten diverifikasi sebelum dibongkar, apalagi diinstal. Tentu saja ini mengasumsikan bahwa Anda mempercayai repositori. Saya lebih suka mempercayai repositori Ubuntu (satu otoritas) daripada ratusan sumber berbeda yang sering tidak dikenal untuk diunduh.
Kontrol Granular
Dengan sebuah
*.exe
file, Anda pada dasarnya dapat melakukan satu hal: menjalankannya. Di Ubuntu Anda dapat memeriksa isi paket, deskripsi, konfigurasi, file individual, perubahan terbaru, perbaikan bug, dll dari kenyamanan manajer paket Anda, sebelum memutuskan apakah akan menginstal atau tidak.Ketika Anda menginstal dari suatu
*.exe
file, Anda juga harus memercayai kaitnya 'copot' (dan tidak semua*.exe
file dijamin memilikinya). Di Ubuntu, semua file milik paket standar yang diinstal oleh manajer paket, selalu dapat dihapus karena itu adalah fungsi dari manajer paket, bukan paket itu sendiri. Pengelola paket adalah aplikasi yang terpisah dan tepercaya, yang menyediakan penginstal dan pencopot pemasangan, paket tidak dapat mengambil kaitan pencopot pemasangan dari Anda. Tentu saja, paket jahat dapat menyelundupkan barang melalui tindakan pasca-instal, tapi itu sebabnya kami memiliki sistem repositori resmi dan orang yang sama yang kami percaya untuk memeliharanya.Transparansi
Lebih jauh. Di Ubuntu saya benar-benar dapat mempercayai sistem saya, karena saya dapat memverifikasi perangkat lunak pada banyak tingkatan. Level tertinggi adalah dapat melihat kode sumber. paket biner memiliki paket sumber yang sesuai. Saya benar-benar dapat melihat sumbernya (Contoh: ' apt-get source bash ' akan memberi Anda sumber lengkap ke bash shell). Dalam dunia file * .exe, biasanya hanya ada binari, dan siapa yang tahu apa yang sebenarnya mereka lakukan di balik layar?
Yang mengatakan, selalu ada pengecualian untuk aturan, tetapi bagi saya keamanan dan kepercayaan berarti saya tidak dapat menerima mengeksekusi binari dari ratusan sumber yang berbeda yang sulit diverifikasi sebagai cara standar untuk menginstal komponen pada sistem saya.
sumber
Selain apa yang telah dikatakan oleh orang lain, terkadang satu perangkat lunak dipecah menjadi beberapa paket karena tidak semua fitur relevan untuk semua pengguna. Misalnya, jika dokumentasi suatu program banyak, biasanya akan disediakan oleh paket terpisah. Ini memungkinkan pengguna yang tidak tertarik dengan fitur opsional ini untuk menghemat ruang disk dan bandwidth / waktu untuk mengunduh.
sumber
Mari kita coba berbagi pemahaman saya tentang dependensi (Ya, saya menyadari manfaat Ubuntu atau cara Linux menangani perangkat lunak yang lebih umum. Saya hanya mencoba mengumpulkan semua pendapat dan alasan yang baik dengan cara yang sentral, sehingga saya dapat menunjukkan beberapa teman saya) .
Perangkat Lunak Windows sebagian besar dikemas dalam satu file. Apakah ini menyiratkan bahwa mereka tidak memiliki ketergantungan?
Tidak, Hampir semua perangkat lunak memiliki ketergantungan pada beberapa perangkat lunak lainnya. (Kecuali jika perangkat lunaknya sangat rendah dan dapat berbicara dengan perangkat keras secara langsung, seperti Sistem Operasi itu sendiri) . Perangkat lunak Microsoft tidak bebas dari ketergantungan. Jadi, pertanyaan penting adalah: bagaimana mereka menangani ini?
Jawab: Mereka menangani ini dengan cara tradisional mereka sendiri. Dengan asumsi sebagian besar pengguna mereka bodoh, mereka hanya menempatkan semua ketergantungan pada file tunggal, sehingga Perangkat Lunak berukuran lebih besar (1 diajukan).
Sebagai contoh, Lihat Game yang dirilis untuk Microsoft. Hampir setiap game menyertakan pengaturan DirectX, meskipun pengguna mungkin sudah memperbarui versi mereka.
Ini adalah sesuatu yang saya temukan di Google tentang Mengapa DirectX disertakan dengan setiap game.
klik di sini untuk artikel lengkap. Jelas mereka tidak melakukan penanganan ketergantungan dengan sangat baik.
Sebagian besar waktu, terlepas dari dependensi yang sudah ada, mereka menyediakannya untuk mendapatkan kesederhanaan (untuk pengguna mereka) . Juga lihat berapa banyak tema perangkat lunak yang menyertakan komponen .NET runtime.
Contoh lain dari pengalaman saya: Setelah saya mengunduh dan menginstal perangkat lunak MS. Menjadi puas dengan prosesnya, saya mengklik ikon untuk membuka perangkat lunak, Hanya kemudian itu memberitahu saya bahwa "Saya perlu Java untuk menjalankan". Situasi seperti itu tidak pernah terjadi di dunia Linux melalui manajemen paketnya. (kecuali Anda mencoba mengunduh file deb dari situs repositori dan menginstalnya dengan mengklik ganda, dengan cara MS) .
Bagaimana Linux menangani masalah ketergantungan ini?
Nah, Linux atau Ubuntu tidak menyembunyikan fakta bahwa, Anda harus menginstal dependensi untuk menggunakan perangkat lunak (tidak seperti cara Microsoft). Tetapi ketika Anda menginstal komponen, perangkat lunak lain yang bergantung pada komponen yang sama menggunakan depencies diinstal diinstal sebelumnya (tidak seperti perangkat lunak MS termasuk semua hal).
sumber