Jest tego wiele przyczyn, a trochę historii ma na celu ujęcie perspektywy.
Pamiętaj, że kiedy mówimy o „Linuksie”, ogólnie mamy na myśli jedną z wielu różnych dystrybucji Linuksa . „Linux” jest w rzeczywistości tylko jądrem systemu operacyjnego.
Pierwotnym celem Linuksa było stworzenie systemu uniksowego, który działałby na komputerach PC (początkowo 386). Pierwszym krokiem było stworzenie samego jądra. Podczas gdy Linus Torvalds pracował nad jądrem, Richard Stallman pracował nad własnym systemem Free Unix, w ramach projektu GNU (Not Unix) GNU . Krótko mówiąc, oba były w pewnym stopniu zbieżne, ponieważ GNU miał powiązane narzędzia (kompilator C / biblioteki / narzędzia do budowania, powłokę, edytory tekstu itp.), Ale nie miał rdzenia, na którym można go uruchomić, a Linux miał rdzeń, ale nie miał narzędzi do biegnij na nim, aby był użyteczny dla mas.
Ta konwergencja stała się nieco oficjalnie znana jako GNU / Linux. Przekonasz się, że wiele dystrybucji wciąż nazywa się dystrybucjami GNU / Linux.
Ze względu na darmową i otwartą naturę GNU / Linuksa każdy mógł go podnieść i stworzyć pakiet według własnego gustu. Rezultat był taki, że do stworzenia tych systemów wykorzystano wiele różnych strumieni różnych metod konfiguracji, co miało efekt uboczny polegający na utworzeniu prawie tyle różnych systemów zarządzania pakietami, które pasowałyby do każdego z nich.
Każdy inny kompletny system miał swoich silnych naśladowców, którzy utknęli z nimi przez lata, w wyniku czego mamy dzisiaj: garść szeroko używanych, głęboko zakorzenionych i stabilnych systemów zarządzania pakietami, takich jak RPM , APT / dpkg i Portage Gentoo .
Istnieją projekty, takie jak Autopackage , które próbują rozwiązać problem, ale ciągła ewolucja różnych obsługiwanych systemów zarządzania pakietami oznacza, że istnieje wiele ruchomych celów do naśladowania.
W końcu niektórzy dostawcy oprogramowania łączą określone pliki binarne i kopie zależności, których potrzebują, w jeden duży pakiet, który będzie działał w określonych systemach.