2012-07-19 33 views
11

Tôi đã tải xuống nguồn git từ https://github.com/git/git dưới dạng tệp zip.Làm thế nào để xây dựng git với liên kết tĩnh?

Tôi trích xuất nó vào/home/Desktop/denis/git (sử dụng Ubuntu).

Bây giờ hướng dẫn here nói rằng tôi nên chạy

./configure --prefix=/home/denis/git-static CFLAGS="${CFLAGS} -static" 

từ thư mục nêu trên như một bước để xây dựng git.

Nhưng nguồn git dường như không có tệp cấu hình trong thư mục gốc của nó mà tôi có thể chạy (chỉ configure.ac, mà tôi nghi ngờ không phải là những gì tôi đang tìm kiếm).

Tôi thiếu gì ở đây? Làm thế nào để xây dựng git bằng tay?

Tôi đang làm điều này bởi vì tôi đang cố gắng để có được git làm việc trên một máy chủ lưu trữ được chia sẻ mà tôi không thể cài đặt git.

+0

'hãy định cấu hình' trước. Điều đó đòi hỏi 'autoconf'. –

Trả lời

-3

đọc file INSTALL trong thư mục gốc của file đã được giải nén, có vẻ như có một số hướng dẫn hữu ích trong đó, những gì tôi nghi ngờ:

Hoặc bạn có thể sử dụng autoconf tạo ./configure kịch bản để bộ lên cài đặt đường dẫn (thông qua config.mak.autogen), do đó bạn có thể viết thay vì

$ make configure ;# as yourself 
    $ ./configure --prefix=/usr ;# as yourself 
    $ make all doc ;# as yourself 
    # make install install-doc install-html;# as root 

hoặc chỉ đơn giản là:

$ make prefix=/usr all doc info ;# as yourself 
    # make prefix=/usr install install-doc install-html install-info ;# as root 
+3

Điều này không xây dựng một git liên kết tĩnh tôi nghĩ. – kipz

5

Vâng ... nó đang được biên soạn, nhưng không phải là tĩnh. Để đạt được mục tiêu của bạn, bạn cần phải biên dịch nó bằng cách sử dụng lệnh:

làm prefix =/home/denis/git tĩnh CFLAGS = "$ {CFLAGS} -static-libgcc" Chỉ

với -staticnó sẽ không liên kết các tệp nhị phân đúng cách.

Bạn sẽ cần một số thư viện trong quá trình biên dịch: Thuật toán nén Gzip và PKZIP, SSL, phân tích cú pháp XML và CURL bên cạnh các thư viện phổ biến khác. Chúng tôi vừa đề cập đến là có sự tôn trọng trong các gói zlib1g-dev libssl-dev libexpat1-dev libcurl4-nss-dev.

Vì vậy, hãy chạy về cơ bản các lệnh:

  • aptitude install gcc làm zlib1g-dev libssl-dev libexpat1-dev libcurl4-NSS-dev
  • làm prefix =/home/denis/CFLAGS git tĩnh = "$ {CFLAGS} -static-libgcc"

Tôi hy vọng mọi thứ sẽ ổn cho bạn ở đó. Chúc may mắn trong biên soạn của bạn.

+1

dường như không hoạt động nữa, báo cáo ldd về thư viện bên ngoài – let4be

0

Các câu trả lời khác không phù hợp với tôi. Có lẽ họ sẽ cho người khác.Điều gì đã làm công việc đối với tôi là:

  1. Lấy mã nguồn
  2. Tạo một thư mục đích
  3. Nhập thư mục nguồn
  4. Configure
  5. Xây dựng
  6. Install

Sử dụng các lệnh sau:

git clone [email protected]:git/git.git 
mkdir git-static 
cd git 
./configure prefix=/path/to/git-static/ CFLAGS="${CFLAGS} -static" 
make 
make install 

Điều này sẽ để lại cho bạn một vài thư mục trong thư mục git-static, nhưng tệp thi hành được liên kết tĩnh. Nó cũng lớn hơn đáng kể so với bình thường (có thể lớn hơn 1,5 MB).

Các vấn đề liên quan