2010-11-10 3 views
7

Tôi cần thiết lập ứng dụng khách Git trên một máy chủ chia sẻ giá rẻ, với bản phân phối Linux 32 bit không có tên. GCC không có sẵn vì vậy tôi không thể biên dịch nó trên máy chủ. Tôi có lúc xử lý của tôi 2 máy chủ Linux 64-bit khác và một máy tính xách tay OSX mà tôi có thể cố gắng để biên dịch một nhị phân trên. Nhưng tôi không thể làm cho nó biên dịch chính xác; khi tôi đẩy các tệp nhị phân vào máy chủ 32 bit, nó cho biết nó không thể chạy tệp thực thi. Nó trông từ các nguồn khác như tôi cần phải thêm "-arch i386" và/hoặc "-m32" vào ./configure hoặc làm cho các lệnh để làm việc cho 32-bit, nhưng tôi đoán tôi không sử dụng chúng một cách chính xác. Bất cứ ai biết làm thế nào để làm điều này, hoặc luân phiên, nơi để tìm một nhị phân 32 bit Git phổ quát?Biên dịch git cho Linux 32 bit trên máy chủ chia sẻ

Cảm ơn

+2

Lý do để tự biên dịch và không chỉ tải xuống một số gói nhị phân? –

+1

Bạn nên kiểm tra xem nhà cung cấp dịch vụ lưu trữ có gắn thư mục chính của bạn với tùy chọn noexec hay không. Trong trường hợp này, bạn không thể chạy bất kỳ chương trình nhị phân nào từ đó. – Rudi

+0

@Sven Marnach Nhưng tôi có thể tải xuống bản nhị phân 64 bit của Linux ở đâu? – Binarian

Trả lời

1

Thành thật mà nói, nếu là tôi, tôi sẽ chỉ kích hoạt Linux 32 bit trong máy ảo và biên dịch ở đó.

9

Đặt cược tốt nhất của bạn đang cố gắng biên dịch git dưới dạng nhị phân tĩnh. Nhị phân của bạn có thể có các phiên bản thư viện được chia sẻ khác nhau (hoặc thậm chí, không phải tất cả các phụ thuộc được cài đặt).

Liên kết này:

How to build git for a host with no compiler

Cung cấp thông tin về làm thế nào để xây dựng git như một nhị phân tĩnh.

stackoverflow answer cung cấp thông tin về cách thức biên dịch từ máy chủ 64 bit.

Hy vọng điều này sẽ hữu ích.

1

OS X sẽ không hoạt động - được thiết kế để sản xuất các tệp nhị phân Mach-O với giao diện syscall OS X, chứ không phải nhị phân Linux ELF.

Sử dụng -m32 trên CLFAGS sẽ trợ giúp, nhưng quan trọng nhất là sử dụng -static. Các tệp nhị phân tĩnh di động hơn nhiều.

Nếu không thành công, vui lòng cung cấp chính xác cách không thành công.