Có nhiều lý do cho điều này, và một chút lịch sử là để đưa mọi thứ vào quan điểm.
Hãy nhớ rằng khi chúng ta nói về "Linux", cái mà chúng ta thường nói đến là một trong nhiều bản phân phối Linux khác nhau . "Linux" thực sự chỉ là một nhân hệ điều hành.
Mục tiêu ban đầu của Linux là tạo ra một hệ thống dựa trên Unix chạy trên PC (ban đầu là 386). Bước đầu tiên là tự tạo kernel. Trong khi Linus Torvalds đang làm việc với hạt nhân Richard Stallman đang làm việc trên hệ thống Unix miễn phí của riêng mình , trong dự án GNU (GNU's Not Unix) . Để cắt ngắn một câu chuyện dài, cả hai phần nào hội tụ vì GNU có các tiện ích liên quan (trình biên dịch C / thư viện / công cụ xây dựng, trình bao, trình soạn thảo văn bản, v.v.) nhưng không có lõi để chạy và Linux có lõi nhưng không có tiện ích nào chạy trên đầu trang của nó để làm cho nó hữu ích cho quần chúng.
Sự hội tụ này được biết đến một cách chính thức là GNU / Linux. Bạn sẽ thấy rằng rất nhiều bản phân phối vẫn tự gọi mình là bản phân phối GNU / Linux.
Do tính chất mở và miễn phí của GNU / Linux, bất kỳ ai cũng có thể chọn nó và tạo ra một hệ thống đi kèm theo thị hiếu cụ thể của họ. Kết quả là nhiều luồng phương pháp cấu hình khác nhau đã được sử dụng để tạo ra các hệ thống này, có tác dụng phụ là tạo ra gần như nhiều hệ thống quản lý gói khác nhau để phù hợp với từng hệ thống.
Mỗi hệ thống hoàn chỉnh khác nhau có những người theo dõi mạnh mẽ đã gắn bó với họ trong nhiều năm qua, dẫn đến kết quả là chúng ta có ngày nay: một số ít các hệ thống quản lý gói được sử dụng rộng rãi, bám rễ sâu và ổn định như RPM , APT / dpkg và Gentoo's Portage .
Có những dự án, chẳng hạn như Autopackage , đang cố gắng giải quyết vấn đề, nhưng sự phát triển liên tục của hệ thống quản lý gói được hỗ trợ khác nhau có nghĩa là có nhiều mục tiêu di chuyển phải tuân theo.
Điều mà một số nhà cung cấp phần mềm cuối cùng làm là gói các nhị phân và bản sao phụ thuộc cụ thể mà họ yêu cầu vào một gói lớn sẽ hoạt động trên các hệ thống cụ thể.