Jaka jest różnica między yum, apt-get, rpm, ./configure && make install?

126

Jestem nowy w Linuksie i korzystam z CentOS. Znalazłem cztery sposoby aktualizacji lub instalacji oprogramowania.

Do tej pory widziałem:

  • yum install [program]
  • apt-get install [program]
  • rpm -i [program].rpm
  • wget [program].tar.gz-> unpack-> ./configure-> make->make install

Ten ostatni to prawdziwy ból, szczególnie pochodzący z systemu Windows, gdzie instalacja programu to zwykle jedno kliknięcie i miły kreator instalacji.

Tak więc moje pytania to:

  • Dlaczego jest tak wiele różnych sposobów, aby to zrobić w systemie Linux?
  • Którego polecasz użyć i dlaczego?
  • Czy istnieją inne sposoby instalowania programów w systemie Linux?
Saif Bechan
źródło
Ponadto, co yumvs up2date. Nigdy nie wyjaśniłem różnicy.
Josh
apt-getjest dla Debiana i naprawdę nie powinien pojawić się na CentOS ....
Kyle Strand

Odpowiedzi:

114

Wszystkie te narzędzia instalują oprogramowanie w systemie, ale działają na różnych poziomach.

  • ./configure && make install

    Uruchamianie ./configure && make installkompiluje i instaluje biblioteki lub pliki wykonywalne bezpośrednio z kodu źródłowego.

    Ten make installkrok polega po prostu na skopiowaniu końcowych plików do systemu. Wiele źródeł ma specjalną make uninstallregułę, aby je ponownie usunąć, ale nie jest to gwarantowane i oczywiście działa tylko tak długo, jak długo masz skonfigurowane źródła. Nie rozwiązuje to również wymaganych zależności.

    Często dla danego pakietu dostępny jest tylko kod źródłowy, więc jest to jedyna droga. Ponadto, ./configurezazwyczaj przyjmuje wiele opcji pozwalających na dostosowanie pakietu.

    Brak możliwości sprawdzenia, które oprogramowanie zainstalowało dany plik, oraz brak niezawodnego sposobu usunięcia ich z systemu to główne wady tego podejścia.

  • RPM (Menedżer pakietów Redhat)

    rpminstaluje skonfigurowane i skompilowane oprogramowanie w twoim systemie, a także zawiera dezinstalację, aby się go pozbyć. Pakiety muszą być przez kogoś stworzone. Ta osoba już zdecydowała, jakie funkcje należy uwzględnić i jak najlepiej zintegrować pakiet z układem systemu. Zawiera również listę zależności.

    Ponieważ rpms są używane w wielu dystrybucjach, często będziesz chciał się upewnić, że rpm został napisany dla twojej dystrybucji, aby ścieżki instalacji, zależności i inne czynności porządkowe dobrze się integrowały.

    W systemach Debian równoważny format pakietu to narzędzie, które .debobsługuje instalację i bazę danych dpkg.

  • Mniam

    yumto dodatkowe opakowanie rpm. Utrzymuje własną bazę danych plików rpm dostępną dla twojej dystrybucji, zazwyczaj w repozytoriach internetowych. W przypadku stabilnych wersji większości dystrybucji wszystkie pakiety w tej bazie danych będą ze sobą dobrze współpracować. Tę bazę danych można przeszukiwać (np. Za pomocą yum search some_name).

    To również automatycznie rozwiąże zależności dla Ciebie. Pakiety (i przy dodatkowej pomocy ich zależności) można również łatwo odinstalować.

    W systemach Debian równoważne repozytorium i narzędzia do rozwiązywania zależności są dostarczane przez Apt ( apt-geti aptitude).

Podsumowując: jeśli chcesz tylko oprogramowanie, spróbuj yumnajpierw. Jeśli nie jest tam dostępny, możesz spróbować znaleźć istniejący rpmpakiet. Jeśli nie ma żadnych wymagań lub masz jakieś specjalne wymagania, buduj ze źródła.

Benjamin Bannier
źródło
właściwie to co miałem powiedzieć. dodane we wspomnieniu o ekwiwalentach Debiana i poprawiło formatowanie.
szarlatan
2
@quack: Dzięki. Ale czy nie możemy się wszyscy uspokoić, apt-getczy nadal jest to zalecane?
Benjamin Bannier
2
masz rację, umiejętność jest prawdopodobnie lepsza do polecania; załączyłem apt-get, ponieważ jest to powszechnie używane, a czytelnik, który nie wie o aptitude, mógł słyszeć o apt-get .
szarlatan
4
Co jest złego w apt-get?
rekurencyjny
5
@recursive: W pewnym momencie apt-getnie rejestrował automatycznych zależności i pozostawił je po odinstalowaniu, a aptitudenastępnie wprowadził odpowiednie śledzenie zależności. Oprócz tego zapewnił także dodatkowe funkcje niedostępne w apt-get. Nie jestem pewien, ale myślę, że w pewnym momencie apt-geti po aptitudeaktualizacji został użyty ten sam, zaawansowany backend zapewniający dużą część tej funkcjonalności.
Benjamin Bannier
5

Yum są RPM, to samo, z tym że yum automatycznie pobiera pakiety z sieci i instaluje je (używa rpm -i) w jednym kroku. W miarę możliwości należy go używać, aby ułatwić aktualizację. Używaj rpmtylko wtedy, gdy nie ma pakietu do znalezienia yum, i używaj tej makemetody tylko wtedy, gdy nie ma dostępnego pakietu .rpm lub musisz zmienić niektóre opcje czasu kompilacji.

marcusw
źródło