W jaki sposób pakiety są faktycznie instalowane poprzez apt-get install?

29

Czy podczas korzystania z apt-get installmetody instalacji pakietu na Ubuntu istnieje jakaś fundamentalna różnica między uzyskaniem kodu źródłowego dla tego pakietu a zbudowaniem go od zera? Czy ta apt-get installfunkcjonalność po prostu pobiera kod źródłowy i kompiluje go na komputerze do określonego katalogu, czy też dzieje się więcej za kulisami?

Wreszcie (może to nie ma odpowiedzi) czy jedna metoda jest lepsza od drugiej? W tej chwili zastanawiam się, czy zbudowanie go samemu z kodu źródłowego ma jakieś zalety, czy też lepiej pozwolić na apt-getto?

matematyk 1975
źródło

Odpowiedzi:

25

Zalety systemu zarządzania pakietami, takiego jak apt, yum, pacman, emerge itp. Obejmują:

  • Łatwo jest zapytać, która wersja pakietu jest zainstalowana lub dostępna.
  • Łatwo jest całkowicie usunąć pakiet, upewniając się, że wszystkie jego pliki zniknęły.
  • Łatwo jest zweryfikować integralność plików pakietów, dzięki czemu można sprawdzić, czy zostały uszkodzone lub zmienione.
  • Łatwo jest zaktualizować pakiet, instalując nową wersję i usuwając wszystkie stare wersje plików. Zapobiegnie to pozostawieniu pozostających plików ze starego pakietu w celu pomieszania lub uszkodzenia rzeczy.
  • Łatwo jest zobaczyć, jakie pakiety wymagają lub dostarczają rzeczy, które inne pakiety zapewniają lub wymagają, więc możesz mieć pewność, że masz potrzebne elementy, aby pakiet działał poprawnie.
  • Łatwo jest zainstalować lub usunąć grupy pakietów.
  • W wielu przypadkach możliwe jest przywrócenie poprzedniej wersji pakietu, na przykład gdy nowa wersja ma błąd.

Chociaż dotyczy to Fedory, zobacz także:

https://fedoraproject.org/wiki/Package_management_system

Instalowanie ze źródła może mieć zalety

  • Możesz dostosować pliki binarne (włącz / wyłącz opcje)
  • Bardziej aktualny pakiet jest dostępny w repozytoriach
  • Czasami konieczne do naprawienia błędów

Ale wady polegają na tym, że będziesz musiał ręcznie zaktualizować pakiet, gdy będzie dostępna nowa wersja i często stracisz wsparcie.

IMO, jeśli chcesz skompilować wszystkie lub większość swoich pakietów, radziłbym Gentoo.

Pantera
źródło
1
Aby wyjaśnić tę doskonałą odpowiedź, jeśli sam się skompilujesz, Menedżer aktualizacji pozostanie nieświadomy, a więc nie zaktualizuje Twojej aplikacji po wydaniu aktualizacji. Ponadto apt (wybrany menedżer pakietów Ubuntu) nie kompiluje się; pobiera gotowe skompilowane pliki binarne. Wreszcie, apt automatycznie utrzymuje system menu podczas instalowania lub usuwania programów. Podczas ręcznej kompilacji musisz to zrobić sam.
Paddy Landau
1
Inną zwykle niewielką zaletą samodzielnego kompilowania pakietów jest to, że będą one kompilowane z większą wiedzą na temat twojego sprzętu i mogą działać szybciej. Jeśli wybierzesz tę drogę, rozważ użycie checkinstall. asic-linux.com.mx/~izto/checkinstall Śledzi to, co zostało zainstalowane i pomaga w razie potrzeby usunąć je później.
Joe
Poprawiłem się w kwestii szybszej części.
Joe
18

Apt-get to narzędzie do obsługi pakietów APT (CLI), back-end do Synaptic i Aptitude .

Metoda apt-get po uruchomieniu z twojego systemu sprawdza oficjalne źródła lub repozytoria wymienione w pliku

etc/apt/sources.list

Na przykład po uruchomieniu (którego używam) uruchamia coś takiegosudo apt-get update && sudo apt-get upgrade

wprowadź opis zdjęcia tutaj

gdzie Ign (Ignoruj) przed linkiem stwierdza, że ​​od ostatniej wizyty w tych repozytoriach nie dokonano żadnych zmian, a Get informuje o pobraniu pliku źródeł informującego o zmianach nowo dostępnego pakietu w tym repozytorium.

Nie, narzędzie apt-get nie pobiera pliku źródłowego , a raczej pobiera pakiet .deb spakowany i wydany przez oficjalne programy pakujące Ubuntu które zostały przetestowane pod kątem stabilności i integracji z systemem.

Apt-get pobrane pakiety można znaleźć w

/var/cache/apt

gdzie można zobaczyć wszystkie dostępne Updatesjako pakiety .deb , a można nawet porównać do przekroczenia sprawdzić swoją wersję odwiedzając ten Dokładne aktualizacje pakietów .

Tak daleko jak kompilację z pakietów źródłowych, nie jest to zalecane i nawet nie zalecane dla Ubuntu 12.04, ponieważ jest to wersja LTS, możesz zobaczyć przyczyny tutaj

Czy lepiej jest skompilować ze źródła lub zainstalować z pakietu .deb?

Czy kompilacja programów ze źródła przyspieszyłaby mój system operacyjny?

Zalety / wady instalacji z kodu źródłowego

Więcej informacji: apt-get , sources.list .

atenz
źródło
właściwie 3 programy, apt-get, aptitude i synaptic są back-endami dladpkg
Javier López
1
Aptitude jest nakładką na dpkg . Podczas gdy dpkg może być używany jako interfejs do dpkg-deb i dpkg-query
atenz
2

Jeśli budujesz ze źródła, masz więcej opcji w zestawie. Instalowanie zapt-get tylko instaluje wstępnie zbudowany pakiet.

Co do tego, co jest lepsze, zależy od tego, do czego go potrzebujesz. Nigdy nie potrzebowałem kompilować ze źródła, ale nie robię nic obszernego na moim laptopie z Ubuntu.

Corey Whitaker
źródło
Więc apt-get nic nie buduje - po prostu pobiera plik binarny?
matematyk
3
Dokładnie. Pobiera wstępnie skompilowany plik binarny dla Twojej architektury (amd64, i386, armel itp.).
tgm4883,
2

Myślę, że możesz użyć apt-get do zainstalowania źródeł pakietów.

  1. Musisz aktywować repozytoria kodu źródłowego

    Otwórz plik /etc/apt/sources.list, zobaczysz skomentowane linie (zaczyna się od #), które mają na nich „źródło”.

    Odkomentuj ich

  2. Zainstaluj zależności programu, który chcesz:

    sudo apt-get build-dep "program"

  3. Pobierz i skompiluj swój program:

    sudo apt-get -b source "program"

Następnie otrzymasz pakiet .deb w swoim katalogu domowym.

LnxSlck
źródło