Czy mogę zaktualizować oprogramowanie zainstalowane bezpośrednio z kodu źródłowego

14

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.

Chethan S.
źródło
Powiązane: askubuntu.com/questions/22510/…
Ślimak mechaniczny

Odpowiedzi:

10

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 .deblub 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:

  • Uzyskujesz dostęp do najnowszej wersji kodu i masz do wyboru wersję stabilną lub najnowocześniejszą (zwykle nazywaną kompilacjami nocnymi, najnowszą wersją itp.)
  • Ubuntu / other-Distribution może nie chcieć uwzględniać oprogramowania w swoich repozytoriach. W takim przypadku utkniesz z kodem źródłowym lub pakietami dostarczonymi przez programistów lub społeczność. Oznacza to, że nie masz wyboru, jak korzystać ze źródeł.
evgeny
źródło
4
Nawet jeśli sam skompilujesz coś do użytku na 1 komputerze, zawsze warto samemu zrobić pakiet .deb, ponieważ pomaga on zachować przegląd zainstalowanego oprogramowania w jednym miejscu, a także ułatwia odinstalowanie lub uaktualnienie.
JanC
4

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.

M. Alaggan
źródło
3

gitWarto wspomnieć o innej alternatywie dla użytkowników:

Możesz również użyć git pullwcześniejszej wersji, git cloneaby zaktualizować kod źródłowy, a następnie ponownie skompilować program, jeśli to konieczne. (Możesz także użyć gitdo dalszego śledzenia plików: zobacz odpowiedź tutaj .)

Jeśli pierwotnie git cloneużywałeś kodu źródłowego, jak na przykład

git clone git://github.com/person/programname.git

a folder zachowałeś po skompilowaniu i zainstalowaniu, możesz cd do folderu i uruchomić, git pullaby 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 je checkinstall, 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 pulli uruchomieniu (dla tego konkretnego programu) zapisałbym się w folderze kompilacji :

cmake .. -DCMAKE_BUILD_TYPE=Debug -DLAYOUT=home -DPREFIX=home

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/hierarchii checkinstall.

Społeczność
źródło