Chociaż minął prawie rok, odkąd zacząłem używać Ubuntu, nie próbowałem instalować oprogramowania ze źródła. Właściwie nie znalazłem takiej potrzeby. Ale teraz pracuję nad oprogramowaniem, które jest na etapie kandydowania do wydania w repozytoriach, ale najnowszy stabilny kod źródłowy jest dostępny na stronie głównej oprogramowania.
Dowiedziałem się, że instalacja z kodu źródłowego może być trudna, jeśli oprogramowanie ma wiele zależności. Jeśli jednak się z tym zmierzę, mogę być zadowolony z najnowszej wersji. Zastanawiam się jednak, czy takie oprogramowanie może się automatycznie zaktualizować, czy też muszę uruchomić kilka skryptów, aby zaktualizować pakiet. Lub jeszcze gorzej, czy będę musiał ponownie zainstalować każdą aktualizację od zera?
Chcę również wiedzieć, czy jest jakaś konkretna zaleta instalacji ze źródła innego niż powyższe.
źródło
Odpowiedzi:
Należy zauważyć, że zależności oprogramowania rzadko się zmieniają. Jeśli udało Ci się raz skompilować oprogramowanie, kolejne wersje powinny być łatwe do skompilowania - wszystkie zależności powinny być już spełnione.
Jeśli skompilowałeś ze źródła, nie ma żadnego
.deb
lub podobnego pakietu, którego można by użyć do aktualizacji, chyba że poczekasz, aż dystrybucja obejmie to oprogramowanie w swoich repozytoriach, lub poczekasz, aż PPA deweloperów zostanie zaktualizowane.Mówiąc najprościej, ktoś musi go najpierw skompilować, aby przekształcić go w deb. Kompilacja starej wersji nie dałaby możliwości automatycznej aktualizacji, nadal musisz przejść cały proces „pobierz-skonfiguruj-skompiluj-zainstaluj”.
Jednakże , jeśli chcesz zainstalować tę samą wersję na wielu komputerach, byłoby sensu pakować swoje skompilowaną wersję postaci
.deb
(lub podobny) i przesyła je do tych komputerów. Jeśli zostanie to zrobione poprawnie, zależności zostaną wciągnięte automatycznie.Jeśli chodzi o zalety instalacji ze źródła, jedyne dwa, o których mogę myśleć, to:
źródło
Zgodnie z tym postem możesz wygenerować pakiet .deb po skompilowaniu źródeł. Następnie zamiast „make install” możesz zainstalować z pakietu .deb. Ułatwia to aktualizację (jeśli była w jakimś repozytorium), ponieważ pakiet będzie zarządzany przez menedżera pakietów, który śledzi aktualizację.
W przypadku budowania pakietu „some-package” ze źródeł i istnieją zależności, możesz spróbować „apt-get build-dep some-package”, aby automatycznie zainstalować wszystkie zależności potrzebne do skompilowania pakietu, bez ręcznego śledzenia każdego zależność sama. W ten sposób zależności są również zarządzane przez menedżera pakietów i również powinny być aktualizowane automatycznie.
źródło
git
Warto wspomnieć o innej alternatywie dla użytkowników:Możesz również użyć
git pull
wcześniejszej wersji,git clone
aby zaktualizować kod źródłowy, a następnie ponownie skompilować program, jeśli to konieczne. (Możesz także użyćgit
do dalszego śledzenia plików: zobacz odpowiedź tutaj .)Jeśli pierwotnie
git clone
używałeś kodu źródłowego, jak na przykłada folder zachowałeś po skompilowaniu i zainstalowaniu, możesz cd do folderu i uruchomić,
git pull
aby uzyskać najnowsze zatwierdzenia. Następnie usuń wszystkie katalogi kompilacji, które mogłeś utworzyć i / lub uruchomićmake clean
(w razie potrzeby), a następnie ponownie skompiluj oprogramowanie i zainstaluj jecheckinstall
, co również tworzy pakiet dla ciebie (choć nie nadaje się do dystrybucji).Jeśli jednak pomagasz w tworzeniu programu i chcesz rekompilować po każdym dniu
git pull
, prawdopodobnie instalowałbyś się w folderze domowym, ponieważ za/usr/local/
każdym razem nie trzeba instalować w hierarchii.Na przykład, jeśli testuję i regularnie kompiluję program, po zapisaniu najnowszych poleceń
git pull
i uruchomieniu (dla tego konkretnego programu) zapisałbym się w folderze kompilacji :a następnie skompiluj wersję debugowania do przetestowania.
Jeśli jednak chcesz jedynie kompilować nową wersję sklonowanego programu git co miesiąc (i nie testujemy go ani nie debugujemy), zwykle instalujesz go w
/usr/local/
hierarchiicheckinstall
.źródło
Aby zarządzać instalacjami ze źródła, zobacz moją odpowiedź tutaj: Jak zaktualizować pakiety skompilowane ze źródła?
źródło