Tôi thường tự hỏi mình và những người khác câu hỏi này và tôi muốn giải quyết một điểm mà tôi thường thấy được đưa ra trước khi tôi hiểu tại sao Linux thấy ít trình cài đặt hơn:
Phân phối Linux cung cấp các trình quản lý gói.
Tuy nhiên, tôi không nói rằng trình quản lý gói của bản phân phối Linux là sự thay thế cho trình cài đặt, một phần, vì các lý do sau:
Các trình quản lý gói này không được chuẩn hóa trong hoạt động
Trình quản lý gói giống như cung cấp tệp nhị phân của bạn và cho phép người dùng cuối chọn trình cài đặt. Họ có thể chọn thiết bị đầu cuối hoặc họ có thể chọn một công cụ có GUI nâng cao hơn, nhưng nó không đủ khả năng kiểm soát quá trình tương tự như với trình hướng dẫn cài đặt "truyền thống".
Một ví dụ về những gì tôi có nghĩa là kiểm soát là tài liệu. Bạn không thể đưa ra hướng dẫn người dùng cuối của mình như "Nhấp vào Tiếp theo và bạn sẽ thấy". Bạn có thể đưa ra các hướng dẫn dòng lệnh cho một công cụ cụ thể, nhưng sau đó bạn không chỉ dựa vào thực tế người dùng có công cụ đó mà còn mất hầu hết các lợi ích của trình hướng dẫn cài đặt (sau tất cả, hầu hết các trình hướng dẫn đều cung cấp mặt trước -end cho các hướng dẫn dòng lệnh đơn giản và khởi động các tập lệnh).
Điều này cũng liên quan đến thẩm mỹ. Bây giờ bạn phụ thuộc vào phân phối người dùng cuối của bạn để cung cấp giao diện trực quan / phù hợp. Mặc dù bạn hoàn toàn nhận thức được thực tế đó, nhưng không có lý do gì để người dùng bình thường phàn nàn nếu nhấp đúp vào tệp của bạn (trình cài đặt trong chế độ xem của họ) sẽ mở ra một trình quản lý gói xấu xí, không làm gì cả, hoặc tệ nhất là mở một thiết bị đầu cuối cửa sổ. (Những trải nghiệm tôi đã có với người dùng và sự ác cảm của họ đối với "nhắc nhở dos" / "hộp đen trắng" / "Điều đó sẽ xóa tất cả các tệp của họ nếu họ thấy nó buồn cười" có thể lấp đầy một cuốn sách)
Các định dạng gói không được chuẩn hóa trên các nền tảng.
Có các công cụ để chuyển đổi giữa các hệ thống như rpm
và deb
, nhưng không hợp lý khi hy vọng người dùng cuối của bạn chuyển đổi các gói của bạn nếu bạn đang sử dụng chúng trong trường hợp thuật sĩ cài đặt sẽ được cung cấp trên nền tảng khác (ví dụ như nhấp chuột và thực hiện ). Việc cung cấp các gói cập nhật cho định dạng gói bổ sung có thể khá đơn giản nếu bạn có hệ thống xây dựng thô sơ, nhưng bạn vẫn đang thêm một nhị phân mới cần được hỗ trợ.
Điều đó cũng thêm một người nhị phân mới phải lựa chọn tùy thuộc vào nền tảng của họ (nghe có vẻ nhỏ, nhưng tôi chắc chắn ai đó ở đây có thể chứng thực phải giải thích x86 so với x64 trước [có, có nhiều cách để suy luận đúng nền tảng từ trình duyệt, nhưng sau đó bạn đang gặp nhiều rắc rối hơn và khó hỗ trợ hơn, các thủ tục])
Các trình quản lý gói "đẹp hơn" đối với phần mềm nguồn mở.
Điều này không có nghĩa là bạn không thể chia sẻ phần mềm nguồn đóng với hệ thống quản lý gói, chắc chắn có thể thực hiện được. Nhưng một khi bạn cố gắng chia sẻ phần mềm nguồn gần trên các bản phân phối Linux, bạn sẽ gặp phải một vấn đề liên quan đến các tùy chọn để đưa phần mềm của bạn vào kho lưu trữ chung. Những thứ như PPA hoặc Dịch vụ xây dựng openSUSE đã bị loại bỏ và ngay cả các kho của Đối tác Canonical cũng không được bật theo mặc định.
Điều đó có nghĩa là, trừ khi bạn cung cấp kho lưu trữ của riêng mình, bạn không thể có nhiều tính năng chính của hệ thống quản lý gói, bao gồm cập nhật tự động. Theo tôi , đây là lợi ích quan trọng nhất trên hầu hết các nền tảng sử dụng các hệ thống này (ví dụ: iOS, Android và Windows Store).
Và ngay cả khi bạn cung cấp một kho lưu trữ (một công việc khác có tính tầm thường khác nhau), bạn vẫn cần phải khiến người dùng thiết lập nó (đó là một lớp hỗ trợ khác, một tập hợp các cách tiếp cận không chuẩn khác và chuyển hướng khác từ điểm ban đầu của trình cài đặt)
Bây giờ, đã nói tất cả những điều đó, tôi vẫn chưa giải quyết được vấn đề ban đầu, tại sao các trình cài đặt ít phổ biến hơn trên Linux mặc dù có các yếu tố này (trong số các yếu tố khác). Câu hỏi ban đầu hỏi liệu nó mang tính kỹ thuật hay dựa trên quy ước và nó dựa trên cả hai phần.
Nếu bạn nhìn vào các yếu tố trên mà tôi đã đề cập, chúng cũng khiến mọi thứ trở nên phức tạp hơn đối với trình cài đặt "giống như thuật sĩ". Ví dụ: thuật sĩ của bạn có bao gồm nhiều định dạng gói để cài đặt không? Làm thế nào để bạn xử lý giao diện trên các bản phân phối? Danh sách này tiếp tục, và một điều mà các gói đó đủ khả năng cho bạn là không ai trong số này sẽ là mối quan tâm của bạn ( tốt hơn hay tồi tệ hơn ) miễn là bạn cung cấp các gói phù hợp. Và tùy thuộc vào bản chất của dự án của bạn, bạn có thể bắt đầu tận dụng các tài nguyên "chuyên biệt" hơn đó, như gửi ứng dụng đến Trung tâm phần mềm Ubuntu. Tất cả điều này sẽ liên quan đến kỹ thuật.
Nhưng khía cạnh mà cá nhân tôi thấy là động lực là quy ước. (Tôi hy vọng tôi đã chôn sâu đến mức những người hạ thấp câu trả lời khác bị lãng quên đã ngừng đọc ..)
Tôi cảm thấy rằng poster có một điểm, nhưng có thể đã tuyên bố nó quá thẳng thừng, và không thực sự cung cấp lý do khách quan cho điểm đó. Nếu bạn kiểm tra sự khác biệt mà tôi đã nêu đối với người quản lý gói và trình cài đặt, tôi sẽ không ngạc nhiên nếu bạn thấy hầu hết chúng gần như không phải là vấn đề (thậm chí có thể giáp với phạm vi). Nhưng (xin lỗi những gì tôi hy vọng được xem là sử dụng hợp pháp đối số vượn quảng cáo) chúng tôi cũng là người dùng trên trang web dành cho lập trình viên. Tôi thấy các bản phân phối Linux được đẩy như một sự thay thế Windows tuyệt vời cho người dùng thông thường (trong số nhiều thứ khác rõ ràng). Không cung cấp quy trình nhấp và thực hiện thường được xác định mà tất cả những người dùng này có thể sử dụng imo thực sự không lý tưởng .
Nhưng đồng thời, tôi cũng không thấy rằng nhiều thứ trong Linux cũng đặc biệt lý tưởng cho nhóm đó. Chắc chắn một số distro có người quản lý gói dựa trên GUI, nhưng điều đó có nghĩa là những người này phải bắt đầu nhìn vào cách sử dụng một công cụ riêng biệt, trên đó là không đúng tập trung vào việc cài đặt của chương trình của bạn (so sánh này và này để này ).
Đương nhiên, bạn có thể sử dụng GUI để thực hiện phần lớn người dùng thông thường mà bạn cần phải làm, đặc biệt là với một số bản phát hành nhất định (trớ trêu thay những điều mà các bản phân phối đó không phải lúc nào cũng được chấp nhận trong cộng đồng nguồn mở [nhìn vào những lời phàn nàn về Ubuntu và nó "bị chặn khu vườn "]) Nhưng tôi không nghĩ rằng nó có thể phủ nhận rằng các công ước Linux ủng hộ ai đó thoải mái với CLI, hoặc ít nhất là không sợ chết người vì sự xuất hiện của nó có nghĩa là họ đã làm điều gì đó sai lầm khủng khiếp.
Tôi không nói rằng đây là những gì họ nhắm đến, nhưng đó thực sự là những gì tôi thấy những quy ước đó làm. Và các hệ thống quản lý gói trong Linux dường như đang theo đó. Rốt cuộc, hầu hết các "nhược điểm" của chúng gần như không tồn tại nếu người dùng cuối của bạn thoải mái hơn với các khái niệm cơ bản.
Trình cài đặt trên hầu hết các nền tảng khác không thực sự bị ảnh hưởng bởi điều đó và được thiết kế để trích dẫn một câu hỏi về câu hỏi, "99,99% người dùng [có thể] bấm mù" Tiếp tục ". Vấn đề với quản lý gói là khiến những người dùng đó gặp phải nút "Tiếp tục", cho họ biết nút "Tiếp tục" đó là gì (Tôi đã thấy người dùng bị vấp ngã bởi các công cụ nói nhấn enter với văn bản khác) và cho họ biết khi họ nhấn vào đó "khi nhấp vào" giai đoạn "Tiếp tục" nút ".