Tôi có một máy ảo RHEL 6.4 được cung cấp bởi KVM nội bộ của công ty tôi.
Chúng tôi đang gặp một số rắc rối khi sử dụng yum
( Cannot retrieve repository metadata
mà tôi đã xác nhận trong trường hợp này là đặc biệt với đám mây nội bộ của công ty tôi), vì vậy tôi phải xây dựng Git từ nguồn.
Tải xuống tệp RPM và phát hành
sudo yum localinstall ....rpm
Cho tôi cùng một Cannot retrieve repository metadata
lỗi.
Phát hành
sudo rpm -ivh ....rpm
Thất bại với một error: Failed dependencies
và sau đó liệt kê tất cả các gói tôi cần cài đặt. Tôi giả sử tôi có thể tìm thấy các liên kết tải xuống cho tất cả chúng, nhưng tôi đã thử điều này trước đây và không thể tìm thấy các liên kết tải xuống cho các phiên bản phù hợp cho các gói phù hợp.
Đoạn mã sau thực sự hoạt động, nhờ câu trả lời của @ slm :
wget ftp://fr2.rpmfind.net/linux/dag/redhat/el6/en/x86_64/extras/RPMS/perl-Git-1.7.9.6-1.el6.rfx.x86_64.rpm
wget http://pkgs.repoforge.org/git/git-1.7.9.6-1.el6.rfx.x86_64.rpm
rpm -ivh perl-Git-1.7.9.6-1.el6.rfx.x86_64.rpm git-1.7.9.6-1.el6.rfx.x86_64.rpm
Nếu tôi chỉ tải xuống mã git, gỡ bỏ nó và xây dựng nó, như:
wget https://www.kernel.org/pub/software/scm/git/git-1.8.5.tar.gz
tar -xvf git-1.8.5.tar.gz
cd git-1.8.5
./configure
make
make install
Tôi nhận được lỗi sau khi nhân bản từ http://
giao thức:
fatal: Unable to find remote helper for 'http'
Googling nói với tôi rằng tôi cần curl-devel và expat. Tôi không thể sử dụng yum, vì vậy tôi cũng đã xây dựng những thứ đó:
cd ..
wget http://curl.haxx.se/download/curl-7.34.0.tar.gz
tar -xvf curl-7.34.0.tar.gz
cd curl-7.34.0
./configure
make
make install
cd ..
wget http://downloads.sourceforge.net/expat/expat-2.1.0.tar.gz
tar expat-2.1.0.tar.gz
cd expat-2.1.0
./configure
make
make install
Tuy nhiên, khi xây dựng lại Git, tôi nhận được lỗi tương tự. Sau khi Googling nhiều hơn, tôi xác định rằng tôi cần chuyển các tham số sau cho Git's ./configure
:
cd git-1.8.5
./configure --with-curl=<curl_install_path> --with-expat=<expat_install_path>
Tuy nhiên, tôi không thể xác định vị trí của các đường dẫn cài đặt curl và expat.
Vì vậy, những gì tôi đã làm thay vào đó là xây dựng Git, curl và expat bằng cách sử dụng ./configure --prefix=/path/to/desired/install/path
mkdir curl
cd curl-7.34.0
./configure --prefix=/home/downloads/curl
...
mkdir expat
cd expat-2.1.0
./configure --prefix=/home/downloads/expat
...
mkdir git
cd git-1.8.5
./configure --prefix=/home/downloads/git --with-curl=/home/downloads/curl --with-expat=/home/downloads/expat
...
và từ đây tôi đã có thể sao chép với Git từ http
giao thức. Tuy nhiên, điều này vi phạm cấu trúc tệp Linux.
Hai câu hỏi:
- Khi xây dựng Git từ nguồn, bạn cần bao gồm các đường dẫn cài đặt curl và expat tới
./configure
. Những đường dẫn cài đặt này ở đâu khi cài đặt curl và expat mà không cóprefix
đối số? - Tôi đã học được rằng tôi cần các đường dẫn cài đặt curl và expat khi tôi gặp lỗi và tìm kiếm nó. Có chương trình nào khác tôi cần nói với Git để tôi không gặp lỗi trong tương lai không?