Saya yakin ini bukan tentang kemalasan atau hal-hal seperti itu, tetapi saya gagal memahami mengapa pengembang aplikasi yang bahkan sebagian besar menghadapi konsumen tidak membuat wizard instalasi apa pun ke mana Anda pergi-selesai-berikutnya. Aplikasi yang sama biasanya memiliki installer untuk Windows dan Mac OS jadi mengapa tidak Linux?
Apakah ada alasan teknis untuk tren ini atau itu hanya konvensi?
EDIT (23-09-2014): Pertanyaan ini tidak diminta untuk memulai perang api Windows vs Linux. Saya telah menggunakan ketiga sistem operasi utama dan terpisah dari Linux, dua lainnya (Windows dan Mac OS) keduanya memiliki installer. Saya belum menginstal Oracle tetapi apa pun yang saya butuhkan untuk menginstal, saya tidak pernah melihat installer GUI untuk Linux.
Ya, saya tahu bahwa Linux memiliki manajer paket sehingga pengembang tidak "perlu" untuk membuat installer. Tetapi masih ada sejumlah besar perangkat lunak yang ketinggalan jaman di manajer paket default, atau sama sekali tidak tersedia. Plus, karena Linux dijual sebagai alternatif untuk Windows untuk pengguna biasa (Ubuntu berusaha keras dalam domain ini), akan jauh lebih masuk akal untuk hanya memberikan pengguna apa yang mereka kenal.
Ambil contoh, mengatur tumpukan LAMP. Itu semua adalah perangkat lunak open-source dalam repositori default, tetapi dapatkah Anda mengatur semuanya dalam satu berjalan tanpa skrip? Sekarang lihat server WAMP di Windows. Anda hanya menjalankan penginstal dan menginstal beberapa perangkat lunak sedemikian rupa sehingga mereka bekerja dengan baik satu sama lain. Kemudian mengatur default dan hal-hal yang baik. Pemasang dapat melakukan itu, manajer paket tidak. Ya, Anda dapat menemukan skrip untuk online itu, tetapi di mana? Dan yang mana?
Pemasang bukanlah teknologi usang dari masa lalu. Mereka masih berguna, dan 95% pengguna sudah merasa nyaman dengan mereka.
Jawaban:
Pengembang hanya perlu menyediakan paket untuk distribusi. Setiap distribusi kemudian memiliki cara untuk menginstal paket ini. Cara ini bisa di terminal (
apt-get
) atau melalui antarmuka grafis, misalnya Pusat Perangkat Lunak Ubuntu.Yang indah adalah bahwa pengembang hanya perlu peduli membangun paket yang tepat; pembuat distribusi mengurus sisanya, dan setiap instalasi paket memiliki proses yang sama.
sumber
Karena mereka tidak perlu melakukannya. Distribusi Linux biasanya memiliki sistem manajemen paket yang berfungsi, tidak seperti Windows, di mana setiap aplikasi harus menerapkan kembali instalasi dan memperbarui berulang-ulang.
sumber
Kebanyakan sumber tertutup, non-sebagai-in-bir gratis software untuk Linux tidak datang dengan penyihir instalasi. Begitu juga beberapa perangkat lunak sumber terbuka, bir gratis, setidaknya sampai sebagian besar distribusi utama mengambilnya. Untuk perangkat lunak open source, manajer paket adalah solusi yang jelas lebih unggul.
Jadi bagaimana dengan tahap awal sebelum perangkat lunak open source dijemput oleh distribusi utama? Mengapa pengembang tidak membuat wizard penginstalan selama fase itu?
Pertama-tama, banyak pengembang open source polos tidak peduli dengan distribusi. Mereka menulis perangkat lunak untuk digunakan sendiri, dan meletakkannya di sana kalau-kalau itu berguna untuk orang lain, tetapi mereka melihat kemasan untuk distribusi sebagai masalah orang lain. Jika itu cukup disukai, seseorang akan mengambil sendiri tugas untuk memasukkannya ke dalam distribusi favorit mereka.
Para pengembang open source yang melakukan peduli tentang distribusi masih lebih baik bekerja dalam sistem manajer paket, karena di situlah pelanggan mereka. Pengguna Linux biasanya tidak mencari di web mencari perangkat lunak. Mereka mencari manajer paket mereka terlebih dahulu. Karena gagal, mereka mencari repositori "yang dikelola komunitas", seperti PPA Ubuntu atau AUR Arch. Jika Anda tidak berada di tempat-tempat itu, perangkat lunak Anda kemungkinan besar tidak akan diperhatikan, dan jika diperhatikan, kecil kemungkinannya untuk dipercaya.
Meninggalkan saluran distribusi yang ada itu seperti memutuskan iklan superbowl terlalu mahal, jadi Anda akan meng-host kejuaraan sepakbola Anda sendiri dan beriklan di sana. Mungkin lebih murah, tetapi juga kurang efektif.
Sejauh menyesuaikan konfigurasi, untuk perangkat lunak seperti server web yang secara tradisional lebih mudah ditangani dengan file konfigurasi, yang membuat konfigurasi lebih mudah untuk dibagikan, dicadangkan, dan dipulihkan.
Untuk perangkat lunak klien seperti browser web, jauh lebih baik untuk membuat wizard konfigurasi yang muncul pertama kali pengguna baru menjalankan perangkat lunak, daripada melakukannya pada saat instalasi. Alasan utamanya adalah Linux adalah sistem operasi multi-pengguna, jadi Anda tetap ingin menyesuaikannya per pengguna. Ini juga membuatnya lebih mudah untuk menjalankan kembali panduan konfigurasi nanti, untuk alasan apa pun, tanpa harus menyimpan program instalasi untuk menginstal ulang seluruh perangkat lunak. Wizard jenis ini cukup umum dalam perangkat lunak Linux.
sumber
Distribusi Linux (juga, saya rasa, karena BSD-flavored Unices) memiliki antarmuka yang ramah pengguna untuk instalasi program, melalui apa yang disebut manajer paket (atau manajemen port dalam kasus BSD): pacman untuk Arch, dpkg untuk Debian / Ubuntu , dan seterusnya.
Manajer paket ini menyediakan cara untuk menginstal program melalui file konfigurasi yang seragam. Setelah program yang Anda butuhkan dikemas sesuai dengan manajer paket distro Anda, Anda dapat menjalankan perintah instalasinya pada paket yang dipilih (dengan sesekali kustomisasi khusus pengguna, meskipun seringkali tidak ada sama sekali) dan manajer melakukan sisanya.
Manajer paket biasanya lebih ramah pengguna daripada proses penginstalan khusus program Windows, hanya untuk cara seragam program dikemas untuk instalasi. Mereka biasanya juga memungkinkan Anda untuk menanyakan database manajer paket untuk program yang Anda cari, lihat dependensinya.
Mereka juga mendukung pembaruan paket secara terpusat.
sumber
dpkg
dan APT digunakan di Debian dan Ubuntu.apt-get
,apt-cache
danaptitude
adalah pembungkus di atasdpkg
.dpkg
jarang digunakan secara langsung, satu kasus penggunaan yang dapat saya pikirkan adalah menginstal paket dari.deb
file.Saya sering bertanya pada diri sendiri, dan orang lain pertanyaan ini, dan saya ingin membahas hal yang sering saya lihat sebelum saya sampai pada mengapa Linux melihat lebih sedikit installer:
Distribusi Linux menyediakan manajer paket.
Namun, saya tidak akan mengatakan bahwa manajer paket distribusi Linux adalah pengganti untuk penginstal karena, sebagian, alasan berikut:
Manajer paket ini tidak distandarisasi dalam operasi
Pengelola paket sedikit seperti menyediakan biner Anda dan membiarkan pengguna akhir memilih penginstal. Mereka dapat memilih terminal, atau mereka dapat memilih alat dengan GUI yang lebih maju, tetapi itu tidak memberi Anda kontrol tingkat proses yang sama seperti dengan wizard instalasi "tradisional".
Contoh yang saya maksud dengan kontrol adalah dokumentasi. Anda tidak dapat memberikan instruksi kepada pengguna akhir seperti "Klik Berikutnya, dan Anda akan melihat". Anda dapat memberikan instruksi baris perintah untuk alat tertentu, tetapi kemudian Anda tidak hanya mengandalkan fakta bahwa pengguna memiliki alat itu, tetapi juga kehilangan sebagian besar manfaat wizard pemasangan (setelah semua, sebagian besar penyihir memberikan kedok -akhir untuk instruksi baris perintah sederhana dan menendang skrip).
Ini juga terkait dengan estetika. Sekarang Anda bergantung pada distribusi pengguna akhir Anda untuk memberikan antarmuka yang intuitif / sesuai. Meskipun Anda sepenuhnya menyadari fakta itu, itu tidak masuk akal bagi pengguna yang lebih biasa untuk mengeluh jika mengklik dua kali file Anda (installer dalam pandangan mereka) membuka manajer paket yang jelek, tidak melakukan apa-apa sama sekali, atau yang terburuk dari semuanya membuka terminal jendela. (Pengalaman yang saya alami dengan pengguna dan keengganan mereka terhadap "dos prompt" / "kotak hitam dan putih" / "Hal yang akan menghapus semua file mereka jika mereka melihatnya lucu" mungkin bisa mengisi buku)
Format paket tidak distandarisasi di seluruh platform.
Ada alat untuk mengkonversi antar sistem seperti
rpm
dandeb
, tetapi tidak masuk akal untuk mengharapkan pengguna akhir Anda mengonversi paket Anda jika Anda menggunakannya dalam situasi di mana panduan instalasi akan disediakan pada platform lain (mis. Klik dan selesai ). Menyediakan paket terbaru untuk format paket tambahan bisa lebih mudah jika Anda memiliki sistem build yang belum sempurna, tetapi Anda masih menambahkan biner baru yang perlu didukung.Itu juga menambahkan biner baru yang harus dipilih orang tergantung pada platform mereka (kedengarannya kecil, tapi saya yakin seseorang di sini dapat membuktikan harus menjelaskan x86 vs x64 sebelum [ya, ada cara untuk menyimpulkan platform yang tepat dari browser, tetapi kemudian Anda masuk ke prosedur yang lebih rumit, dan lebih sulit untuk didukung])
Manajer paket "lebih baik" untuk perangkat lunak open-source.
Ini tidak mengatakan bahwa Anda tidak dapat berbagi perangkat lunak sumber tertutup dengan sistem manajemen paket, itu pasti bisa dilakukan. Tetapi begitu Anda mencoba berbagi perangkat lunak sumber-dekat pada distribusi Linux, Anda akan menemui hambatan sejauh menyangkut pilihan Anda untuk memasukkan perangkat lunak ke dalam repositori umum. Hal-hal seperti PPA atau openSUSE Build Service sudah keluar, dan bahkan repositori Mitra Canonical tidak diaktifkan secara default.
Itu berarti, kecuali jika Anda menyediakan repositori Anda sendiri, Anda tidak dapat banyak fitur utama dari sistem manajemen paket, termasuk pembaruan otomatis. Menurut pendapat saya , ini adalah manfaat paling penting di sebagian besar platform yang menggunakan sistem ini (mis. IOS, Android, dan Windows Store).
Dan bahkan jika Anda menyediakan repositori (pekerjaan lain dari kesederhanaan variabel), Anda masih perlu membuat pengguna mengaturnya (yang merupakan lapisan dukungan lain, serangkaian pendekatan non-standar, dan pengalihan lain dari titik awal dari pemasang)
Sekarang, setelah mengatakan semua itu, saya masih belum membahas masalah aslinya, mengapa installer kurang umum di Linux terlepas dari faktor-faktor ini (antara lain). Pertanyaan aslinya menanyakan apakah itu teknis, atau berdasarkan pada konvensi, dan didasarkan pada keduanya.
Jika Anda melihat faktor-faktor di atas yang saya sebutkan, faktor-faktor itu juga membuat hal-hal yang lebih kompleks untuk installer "seperti-wizard". Misalnya, apakah wisaya Anda menyertakan beberapa format paket untuk diinstal? Bagaimana Anda menangani tampilan dan rasa di seluruh distribusi? Daftar goes on, dan satu hal yang yang paket yang mampu Anda adalah bahwa semua ini akan menjadi perhatian Anda ( untuk lebih baik atau buruk ) selama Anda menyediakan paket yang tepat. Dan tergantung pada sifat proyek Anda, Anda dapat mulai memanfaatkan sumber daya yang lebih "khusus" itu, seperti pengiriman aplikasi ke Pusat Perangkat Lunak Ubuntu. Ini semua berhubungan dengan teknis.
Tetapi aspek yang secara pribadi saya temukan sebagai kekuatan pendorong adalah konvensi. (Kuharap aku sudah mengubur ini cukup dalam sehingga orang-orang yang menurunkan nilai jawaban lain untuk dilupakan telah berhenti membaca ..)
Saya merasa poster itu ada benarnya, tetapi mungkin telah menyatakannya terlalu blak-blakan, dan sebenarnya tidak memberikan alasan obyektif untuk poin itu. Jika Anda memeriksa perbedaan yang saya sebutkan untuk manajer paket dan installer, saya tidak akan terkejut jika Anda menemukan sebagian besar dari mereka hampir tidak menjadi masalah (bahkan mungkin berbatasan dengan pedantic). Tetapi (maafkan apa yang saya harap dilihat sebagai penggunaan yang sah dari argumen ad hominem) kami juga pengguna di situs untuk programmer. Saya melihat distribusi Linux didorong sebagai alternatif Windows yang sangat baik untuk pengguna biasa (di antara banyak hal lainnya jelas). Tidak menyediakan prosedur klik dan yang dilakukan secara umum yang dapat digunakan oleh semua pengguna ini benar-benar bukan imo yang ideal .
Tetapi pada saat yang sama, saya juga tidak menemukan banyak hal di Linux yang ideal untuk grup itu. Tentu saja beberapa distro memiliki manajer paket berbasis GUI, tetapi itu berarti orang-orang ini harus mulai mencari cara menggunakan alat terpisah, yang tidak sepenuhnya berfokus pada instalasi program Anda (bandingkan ini dan ini dengan ini ).
Secara alami Anda dapat menggunakan GUI untuk melakukan mayoritas yang biasa dilakukan oleh pengguna biasa, terutama dengan distro tertentu (ironisnya hal-hal yang dilakukan distro tidak selalu diterima dalam komunitas open source [lihat keluhan tentang Ubuntu dan itu "berdinding" garden "]) Tapi saya tidak berpikir itu bisa disangkal bahwa konvensi Linux mendukung seseorang yang nyaman dengan CLI, atau paling tidak tidak takut mati itu adalah penampilan berarti mereka melakukan sesuatu yang sangat salah.
Saya tidak mengatakan bahwa ini adalah tujuan mereka, tetapi sebenarnya apa yang saya lihat adalah konvensi itu. Dan sistem manajemen paket di Linux tampaknya mengikuti itu. Bagaimanapun, sebagian besar "kelemahan" mereka hampir tidak ada jika pengguna akhir Anda lebih nyaman dengan konsep-konsep yang mendasarinya.
Penginstal di sebagian besar platform lain tidak benar-benar terpengaruh oleh hal itu, dan dirancang demikian, untuk mengutip komentar pada pertanyaan, "99,99% pengguna [dapat] mengklik" Lanjutkan "secara membabi buta. Masalah dengan manajemen paket membuat para pengguna untuk tombol "Lanjutkan", biarkan mereka tahu apa itu "Lanjutkan" adalah tombol (saya telah melihat pengguna tersandung oleh alat yang mengatakan tekan enter dengan teks lain), dan membiarkan mereka tahu kapan mereka telah menekan "pantai itu di mengklik tahap "Lanjutkan" tombol.
sumber
Untuk memperluas besar itu keduanya. Model distribusi Linux lebih dekat ke AppStore / Play Store daripada Windows tradisional / Mac OS X satu - dan bahkan platform tersebut bergerak ke sana dari apa yang saya dengar.
Konvensinya lebih sederhana. Sebagian besar argumen untuk AppStore / Play Store juga berlaku untuk Linux:
Selain itu, ada manfaat berikut, yang mungkin tidak berlaku untuk AppStore / Play Store:
sumber
Biasanya, instalasi tidak memerlukan interaksi dengan pengguna (kebanyakan
apt-get
paket misalnya), atau dapat dituliskan. Ini membuatnya sangat mudah untuk diotomatisasi untuk menggunakan perangkat lunak pada banyak mesin. Alih-alih melakukan hal-hal melalui wizard, Anda melakukan hal-hal yang sama melalui skrip atau melalui file konfigurasi.Mengingat bahwa di dunia Linux, terminal adalah yang utama, dan GUI adalah opsional, menjadi jelas mengapa mereka tidak memiliki ahli instalasi yang sebenarnya.
Windows, di sisi lain, sangat berorientasi pada pengguna. Sebagian besar file MSI dapat dengan mudah digunakan dengan cara tidak dijaga, dengan cara yang sama instalasi Windows dapat dijaga (seberapa mudah / sulit untuk membuat WAIK bekerja adalah subjek yang berbeda). Ini juga berarti bahwa sekelompok aplikasi untuk Windows tidak didasarkan pada MSI, dan tidak dapat skrip. Di antara aplikasi skala perusahaan, produk Adobe, misalnya, dikenal agak sulit untuk dipasang dengan cara yang ditulis dengan skrip.
sumber
Target audiens berbeda. Unix, dan sistem mirip Unix, biasanya digunakan oleh programer profesional, sysadmin, insinyur dan penghobi serius yang menyesuaikan setiap sistem dengan kebutuhan mereka. "Penyihir instalasi" apa pun hanya akan membatasi pilihan mereka alih-alih memberikan akses ke semua variabel yang mereka butuhkan. Dan yang sekarang masih ada.
Windows tidak ditargetkan untuk para profesional dengan cara yang sama dan, dengan demikian, memiliki installer tujuan umum yang lebih diarahkan untuk "pengguna" yang hanya ingin benda diinstal. Linux mengumpulkan lebih banyak dari tipe pengguna ini yang mungkin akan menghargai hal seperti itu tetapi, mungkin, sebagian besar distro masih memiliki pemikiran profesional.
sumber