2012-02-29 24 views
51

Próbuję zaktualizować Gita z mojego hostingu udostępnionego. Do tego mam następujące kroki:Błąd kompilatora - nie znaleziono polecenia msgfmt podczas kompilowania git na udostępnionym hostingu

  1. pobrania najnowszej wersji Git
  2. rozpakować i umieścić ją na serwerze
  3. skonfigurować i utworzyć Makefile -> ./configure --prefix = $ HOME/dev/git/src --without-tcltk
  4. Budowanie pakietu -> "zrobić", a następnie "make install"
  5. Aktualizacja PATH .bash_profile

utknąłem w punkcie 4. Kiedy uruchomić "mama ke "polecenia, otrzymuję następujące:


[email protected]:~/dev/git/src$ make 
SUBDIR gitweb 
SUBDIR ../ 
make[2]: ? GIT-VERSION-FILE ? est ? jour. 
GEN git-instaweb 
SUBDIR perl 
SUBDIR git_remote_helpers 
SUBDIR templates 
MSGFMT po/build/locale/is/LC_MESSAGES/git.mo 
/bin/sh: msgfmt: command not found 
make: *** [po/build/locale/is/LC_MESSAGES/git.mo] Erreur 127 

Kompilator rzuca błąd msgfmt command not found.

I googled i wydaje się być związane z pakietem gettext.

Każdy pomysł, jak rozwiązać ten błąd na współdzielonym hostingu?

+5

Szybki hack: spróbuj "make -k" lub "make -i", aby pominąć kompilację, możesz dostać Git, ale bez lokalizacji i/lub dokumentów. –

+3

Masz rację msgfmt nie jest niezbędne do uruchomienia Git. "make -i" działało dzięki. – John

Odpowiedz

132

Miałem ten sam problem. Dzięki twojej pracy nad znalezieniem go był związany z gettext, prosty apt-get install gettext naprawił go dla mnie.

+2

Powinna to być odpowiedź;) – Dennis

+1

To z pewnością wydaje się najlepszą odpowiedzią, jednak na Cygwin zainstalowanie gettext nie pomogło. Być może istnieje problem z wersją? – Lucas

+6

To nie jest właściwa odpowiedź na współdzielony hosting, w którym nie masz dostępu do sudo. –

17

Podczas budowania Git z Xcode (używając Makefile), musiałem zdefiniować NO_GETTEXT = YesPlease w Makefile, aby rozwiązać ten problem.

+12

Preferowałem to, ponieważ nie mogłem zainstalować gettext, a -i (ignorowanie błędów) jest po prostu bzdurą! 'make NO_GETTEXT = 1' zrobił lewę. – adurdin

3
make -i 
make -i install 

..worked flawlessy tego problemu. Także jeśli ktoś się kłopoty z http/https pomocnika podczas configure nie zapomnij dodać następującą rzeczą

./configure --with-curl --with-expat 
+3

Należy zauważyć, że "-i" jest skrótem od "--ignore-errors", więc każdy inny błąd również zostanie zignorowany i może zostać przeoczony z powodu wielu błędów związanych z plikiem gettext. Więc -i powinno być ostatecznością, jeśli nic innego nie działa. – Boris

+0

@Boris Tak, to źle działa, ale nie każdy jest hakerem. Oczywiście, potrzebujesz biblioteki gettext, aby błąd się powtarzał. –

0

na Cygwin, trzeba zainstalować pakiet gettext-devel, jak również. Sam pakiet gettext nie wystarczy, aby rozwiązać ten problem.

15

msgfmt jest zawarty w pakiecie cygwin gettext-devel. Zainstaluj to (przez setup.exe lub apt-cyg) i błąd powinien zniknąć.

+1

Pytanie nie dotyczy Cygwin –

+0

gettext-devel to także pakiet dla centów 6 – jpj