Ich habe eine RHEL 6.4-VM, die von der internen KVM meines Unternehmens bereitgestellt wird.
Wir haben einige Probleme bei der Verwendung yum
( Cannot retrieve repository metadata
was in diesem Fall für die interne Cloud meines Unternehmens spezifisch ist), daher muss ich Git aus dem Quellcode erstellen.
Herunterladen der RPM-Datei und Ausgabe
sudo yum localinstall ....rpm
Gibt mir den gleichen Cannot retrieve repository metadata
Fehler.
Ausgabe
sudo rpm -ivh ....rpm
Schlägt mit einem fehl error: Failed dependencies
und listet dann alle Pakete auf, die ich installieren muss. Ich gehe davon aus, dass ich die Download-Links für alle finden konnte, aber ich habe dies bereits versucht und konnte die Download-Links für die richtigen Versionen für die richtigen Pakete nicht finden.
Der folgende Code funktioniert dank der Antwort von @ slm tatsächlich :
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
Wenn ich nur den Git-Code herunterlade, entpacke ihn und erstelle ihn wie folgt:
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
Beim Klonen aus dem http://
Protokoll wird folgende Fehlermeldung angezeigt :
fatal: Unable to find remote helper for 'http'
Googeln sagte mir, dass ich Curl-Devel und Expat brauchte. Ich kann yum nicht benutzen, also habe ich auch diese gebaut:
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
Beim erneuten Erstellen von Git erhalte ich jedoch den gleichen Fehler. Nachdem ich mehr gegoogelt hatte, stellte ich fest, dass ich die folgenden Parameter an Git's übergeben musste ./configure
:
cd git-1.8.5
./configure --with-curl=<curl_install_path> --with-expat=<expat_install_path>
Ich konnte jedoch nicht feststellen, wo sich die Curl- und Expat-Installationspfade befanden.
Also habe ich stattdessen Git, Curl und Expat mit dem erstellt ./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
...
und daraus konnte ich mit Git aus dem http
Protokoll klonen . Dies verstößt jedoch gegen die Linux-Dateistruktur.
Zwei Fragen:
- Wenn Sie Git aus dem Quellcode erstellen, müssen Sie die Installationspfade für Curl und Expat angeben
./configure
. Wo befinden sich diese Installationspfade bei der Installation von Curl und Expat ohneprefix
Argument? - Ich habe erfahren, dass ich die Installationspfade von Curl und Expat benötige, als ich einen Fehler bekam und danach suchte. Gibt es andere Programme, die ich Git mitteilen muss, damit ich in Zukunft keine Fehler mehr bekomme?