2012-02-29 34 views
51

Tôi đang cố cập nhật Git từ dịch vụ lưu trữ được chia sẻ của mình. Cho rằng tôi đang làm theo các bước sau:Lỗi trình biên dịch - lệnh msgfmt không tìm thấy khi biên dịch git trên máy chủ chia sẻ

  1. Tải Git phiên bản mới nhất
  2. Unpack và đặt nó trên máy chủ
  3. Cấu hình và tạo ra Makefile -> ./configure --prefix = $ HOME/dev/git/src --without-tcltk
  4. Xây dựng gói -> "làm", sau đó "make install"
  5. cập nhật PATH .bash_profile

tôi đang mắc kẹt tại điểm 4. Khi tôi chạy "ma ke "lệnh, tôi nhận được thông tin sau:


[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 

Trình biên dịch ném lỗi msgfmt command not found.

Tôi đã Google và nó có vẻ liên quan đến gói gettext.

Bất kỳ ý tưởng nào về cách sửa lỗi đó trên lưu trữ được chia sẻ?

+5

Hack nhanh: hãy thử "make -k" hoặc "make -i" để bỏ qua việc biên dịch này, có thể bạn sẽ nhận được Git, nhưng không có bản địa hóa và/hoặc tài liệu. –

+3

Bạn đúng msgfmt là không quan trọng để chạy Git. "make -i" làm việc cảm ơn. – John

Trả lời

132

Tôi gặp vấn đề tương tự. Nhờ công việc của bạn về việc tìm kiếm nó có liên quan đến gettext, một đơn giản apt-get install gettext đã sửa nó cho tôi.

+2

Điều này nên được acceped câu trả lời;) – Dennis

+1

Điều này chắc chắn có vẻ như câu trả lời tốt nhất, tuy nhiên, trên Cygwin, cài đặt gettext đã không giúp đỡ. Có lẽ một vấn đề phiên bản ở đó? – Lucas

+6

Đây không phải là câu trả lời đúng trên chia sẻ lưu trữ, nơi bạn không có quyền truy cập sudo. –

17

Khi xây dựng Git bằng Xcode (sử dụng Makefile), tôi phải xác định NO_GETTEXT = YesPlease trong Makefile để giải quyết vấn đề này.

+12

Ưu tiên này, vì tôi không thể cài đặt gettext, và -i (bỏ qua lỗi) chỉ là daft! 'làm cho NO_GETTEXT = 1' thực hiện thủ thuật. – adurdin

-1

Hãy thử thêm -i vào lệnh thực hiện của bạn.

> make -i ...

3
make -i 
make -i install 

flawlessy ..worked cho vấn đề này. Ngoài ra nếu có ai ấy gặp rắc rối với http/https helper, trong cấu hình không quên thêm điều sau

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

Cần lưu ý rằng "-i" là viết tắt của "--ignore-errors", do đó, bất kỳ lỗi nào khác cũng sẽ bị bỏ qua và có thể bị bỏ qua do có nhiều lỗi liên quan đến gettext. Vì vậy, -i nên là phương sách cuối cùng nếu không có gì khác hoạt động. – Boris

+0

@Boris Vâng, đó là một công việc sai trái, nhưng không phải ai cũng là một hacker. Bạn rõ ràng cần gettext lib cho lỗi để đi. –

0

On Cygwin, bạn cần phải cài đặt gói gettext-devel là tốt. Các gói gettext một mình là không đủ để giải quyết vấn đề này.

15

msgfmt được bao gồm trong gói gettext-devel cygwin. Cài đặt (thông qua setup.exe hoặc apt-cyg) và lỗi sẽ biến mất.

+1

Câu hỏi không phải là về Cygwin –

+0

gettext-devel cũng là gói cho centos 6 – jpj