Bên cạnh thực tế là có nhiều hệ thống unix chạy trên nhiều nền tảng khác nhau, chỉ cần xem xét các vấn đề mà phần mềm Windows gặp phải từ phương thức phân phối này, mặc dù chúng thực sự chỉ phải lo lắng về một phiên bản windows và một nền tảng (PC ).
Ngay cả khi chỉ cần PC lo lắng, vẫn có hai kiến trúc: 32 bit và 64 bit. Nếu bạn để ý, phần lớn các phần mềm windows chỉ đơn giản là bỏ qua 64 bit và chỉ cung cấp phần mềm 32 bit, để lại cho bạn phần mềm tối ưu phụ nếu bạn có hệ thống 64 bit. Sau đó là thư viện. Một nhà cung cấp phần mềm không muốn bạn gặp lỗi lạ khi chạy chương trình của họ nếu bạn chưa cài đặt thư viện thích hợp, vì vậy họ chỉ bao gồm thư viện với chương trình của họ (làm cho tải xuống lớn hơn, ngay cả khi bạn đã có thư viện này ). Một chương trình thứ hai làm điều tương tự, nhưng với một phiên bản khác của thư viện. Trong trường hợp tốt nhất, chương trình B chứa phiên bản mới hơn của thư viện tương thích ngược, vì vậy nếu bạn cài đặt chương trình B sauchương trình A, mọi thứ hoạt động, nhưng cài đặt chúng theo thứ tự ngược lại khiến bạn có phiên bản cũ hơn của thư viện và do đó chương trình B bị hỏng. Tuy nhiên, thông thường, nhà cung cấp thư viện thực hiện các thay đổi không tương thích ngược và không bận tâm thay đổi tên của thư viện, do đó, bất kể bạn cài đặt hai chương trình theo thứ tự nào, lần đầu tiên sẽ bị hỏng. Điều này được gọi là "địa ngục dll".
Đáng buồn thay, để tránh điều này, hầu hết các phần mềm windows đã sử dụng để vận chuyển tất cả các thư viện của họ trong thư mục chương trình riêng thay vì thư mục dùng chung, vì vậy mỗi chương trình có tất cả các thư viện riêng và sẽ không bao giờ chia sẻ với nhau, điều này sẽ đánh bại toàn bộ điểm của dlls ở vị trí đầu tiên và cuối cùng bạn sử dụng nhiều ram và dung lượng đĩa hơn và thời gian tải xuống tất cả các thư viện trùng lặp.
Đây là lý do tại sao phần mềm nguồn mở được xuất bản ở dạng nguồn và các nhà cung cấp hệ điều hành đã đưa ra các trình quản lý gói giải quyết các vấn đề phụ thuộc và chỉ tải xuống các tệp nhị phân được biên dịch sẵn mà bạn thực sự cần, mà không cần sao chép thư viện khắp nơi. Điều này cũng liên quan đến thực tế là có nhiều hệ thống unix khác nhau chạy trên nhiều nền tảng khác nhau.
apt
công cụ này chưa?