2008-09-27 11 views
11

Wygląda na to, że większość instalatorów dla Perla koncentruje się wokół instalowania modułów Perla, a nie aplikacji. Rzeczy takie jak ExtUtils :: MakeMaker i Module :: Build są bardzo dobrze dopasowane do modułów, ale wymagają dodatkowej pracy dla aplikacji internetowych.Jaki jest najlepszy system do instalowania aplikacji internetowej Perl?

Idealnie byłoby miło, aby móc wykonać następujące czynności po sprawdzeniu źródła z repozytorium: Wykryto

  • Czy brakujące zależności
  • pobrać i zainstalować zależności od CPAN
  • uruchomić polecenie "Zbuduj" źródło do stanu końcowego (przeprowadź analizę źródłową lub konfigurację niezbędną dla lokalnego środowiska).
  • Uruchom polecenie, aby zainstalować zbudowane pliki w odpowiednich lokalizacjach. Nie tylko moduły perla, ale także takie pliki szablonów (.tt) i skrypty CGI, JS i pliki obrazów, które powinny być dostępne w Internecie.
  • Upewnij się, że ustawione są prawidłowe uprawnienia dla zainstalowanych plików (i jeśli to konieczne, kontekstu SELinux).

W tej chwili mamy system oparty na Module :: Build który robi większość tego. Prace zostały wykonane przez mojego współpracownika, który uczył się korzystać z Module :: Build w tym czasie, i chcielibyśmy poradzić sobie z generalizowaniem naszego rozwiązania, ponieważ jest ono teraz dość specyficzne dla aplikacji. W szczególności nasz system wymaga ręcznego instalowania zależności (chociaż je wykrywa).

Czy istnieje jakiś szczególny system, z którego korzystałeś, który odniósł szczególny sukces? Czy musisz napisać program instalacyjny oparty na Module :: Build lub ExtUtils :: MakeMaker, który jest szczególnie przydatny w twojej aplikacji, czy jest bardziej ogólnie dostępny?

EDIT: Aby odpowiedzieć na pytania Briana poniżej:

  • Możemy zalogować się na maszynach
  • nie mamy dostępu do katalogu głównego maszyny
  • Maszyny są wszystko (pozornie) identyczny buduje RHEL5 z włączonym SELinux
  • Obecnie ludzie instalujący maszyny to tylko programiści z naszej grupy, a nasze źródło nie jest dostępne dla ogółu społeczeństwa. Możliwe jest jednak, że nasze źródło może zostać zainstalowane na komputerach innych osób w naszej organizacji, które będą instalowane przez programistów lub użytkowników systemów.
  • Instalujemy, wyszukując z repozytorium, chociaż chcielibyśmy mieć opcję korzystania z archiwum rozproszonego (patrz wyżej).

Odpowiedz

6

Jakie są ograniczenia związane z instalowaniem aplikacji internetowych? Czy możesz zalogować się do urządzenia? Czy wszystkie urządzenia działają tak samo? Czy ludzie instalują współpracowników aplikacji internetowych lub przypadkowych ludzi z ogółu społeczeństwa? Czy ludzie instalują tych sysadminów, programistów, menadżerów sieci lub coś innego? Czy instalujesz przez rozprowadzanie archiwum lub sprawdzanie z kontroli źródła?

W przypadku większości moich materiałów, które dotyczą sysadminsów znanych z instalowania Perla w środowiskach kontrolnych, używam tylko MakeMaker. Możesz łatwo zrobić to, co umieściłeś na liście, jeśli wiesz trochę o MakeMaker. Jeśli chcesz dowiedzieć się więcej na ten temat, zadaj kolejne pytanie. ;) Module::Build jest jednak równie łatwy, i do zrobienia, jeśli jeszcze nie lubisz używać MakeMaker.

Module::Build byłby dobrym sposobem, aby poradzić sobie z wieloma różnymi sytuacjami, jeśli ludzie są umiarkowanie nieufni w kwestii wiersza poleceń i instalowania oprogramowania. Będziesz miał dużą elastyczność dzięki Module::Build, ale także nieco więcej pracy. A narzędzie cpan (które jest dostarczane z Perlem), można zainstalować z bieżącego katalogu i obsługiwać zależności dla ciebie. Wystarczy powiedzieć go zainstalować bieżący katalog:

$ cpan . 

Jeśli trzeba tylko zainstalować na jednym platorm, prawdopodobnie będziesz mieć łatwiejszy czas podejmowania pakiet w natywnym formacie. Możesz nawet utworzyć pakiet dla siebie, aby programiści mieli elastyczność Module::Build, ale instalatorzy mają łatwość natywnego procesu. Trzymanie się z Module::Build oznacza także, że możesz tworzyć różne pakiety dla różnych platform z jednego narzędzia do kompilacji.

Jeśli ludzie instalujący aplikację internetową naprawdę nie mają pojęcia o liniach komend, CPAN i innych rzeczach, prawdopodobnie zechcesz użyć programu pakującego i instalatora, który ich nie przestraszy lub zmusi do zastanowienia się nad tym, co się dzieje i może automatycznie zgłaszać problemy automatycznie.

Jak zauważa Dave, korzystanie z prawdziwego lustra CPAN zapewnia zawsze najnowszą wersję modułu, ale możesz także stworzyć własne "fałszywe" lustro CPAN z dokładnie tymi dystrybucjami, które chcesz i mieć zainstalowane zwykłe narzędzia CPAN że. Dla naszych klientów wykonujemy "CPAN na płycie CD" (chociaż napędy USB również są dobre). Za pomocą prostego skryptu "uruchom mnie" wszystko zostanie zainstalowane dokładnie w tych wersjach, których potrzebują. Zobacz, na przykład, mój http://www.slideshare.net/brian_d_foy/mycpan-lapm-september-2007">Podczas rozmowy z CPAN, jeśli jesteś tym zainteresowany. To nie jest coś, co chciałbyś przekazać szerszej publiczności.

Powodzenia :)

3

Zalecam poważnie rozważyć system pakietów, takich jak RPM, aby to zrobić. Nawet jeśli używasz Windowsa, uważam RPM i cygwin za instalację. Można nawet skonfigurować repozytorium yum lub apt, aby dostarczyć pakiety do systemów zdalnych.

Jeśli szukasz ogólnego instalatora dla klientów z dowolną liczbą systemów operacyjnych i dystrybucji, problem staje się znacznie trudniejszy.

6

Odpowiedź sugerująca RPM jest zdecydowanie dobra.Korzystanie z menadżera pakietów systemu zdecydowanie może ułatwić Ci życie. Jednakże może to oznaczać, że musisz również spakować kilka innych modułów Perla.

Możesz również rzucić okiem na Shipwright. Jest to oparte na Perlu narzędzie do pakowania aplikacji i wszystkich zależności modułów Perla. Jest jeszcze wczesny dzień, ale wygląda obiecująco.

Jeśli chodzi o instalowanie zależności, nie będzie trudno po prostu spakować garść archiwów, a następnie zainstalować rozwiązanie oparte na Module :: Build. Powinieneś rzucić okiem na pip, co sprawia, że ​​instalacja modułu z archiwum jest dość banalna. Możesz spakować to z bazą kodu i po prostu wywołać ją z własnego instalatora, aby obsłużyć deps.

Zastanawiam się, czy poleganie na CPAN to dobry pomysł. Powłoka CPAN zawsze pobiera najnowszą wersję dystrybucji, a nie konkretną wersję. Jeśli chcesz zapewnić powtarzalne instalacje, nie jest to właściwe narzędzie.

2

Spójrz na PAR.

Jonathan Rockway jako mała sekcja na temat używania go z Catalyst w swojej książce.

Powiązane problemy