Wie aktualisiere ich auf das neueste Git auf Debian 7?

14

Ich habe git über apt-get auf debian 7 installiert, was mir Folgendes gibt:

# git --version
git version 1.7.10.4

Ich würde gerne die neueste Version von Git herunterladen. Ich habe versucht:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git

Dies führt jedoch zu folgenden Fehlern:

Fetched 6,944 B in 0s (10.1 kB/s)
W: Failed to fetch http://ppa.launchpad.net/git-core/ppa/ubuntu/dists/wheezy/main/source/Sources  404  Not Found

W: Failed to fetch http://ppa.launchpad.net/git-core/ppa/ubuntu/dists/wheezy/main/binary-amd64/Packages  404  Not Found

Ich habe auch versucht, dieser Anleitung zu folgen:

http://backports.debian.org/Instructions/

aber ich kann immer noch nicht den neuesten git bekommen, irgendwelche vorschläge?

u123
quelle
1
Warum nicht aus dem Quellcode kompilieren (das INSTALL-Dokument bietet Hilfe, wenn Sie noch nicht mit dem Programm vertraut sind)?
Nerdwaller
Ich würde das Archiv direkt für die erhaltene Website herunterladen, wenn die Launchpad-Quelle defekt ist.
Ramhound
2
Müssen Sie das wirklich? In den meisten Fällen lohnt es sich nicht, eine neuere Version zu installieren. Gibt es eine bestimmte Funktion in der neuen Version, die Sie benötigen? Welche Version hast du und welche willst du installieren? Wie auch immer, Sie können mit Debian keine PPAs verwenden , sie sind eine Ubuntu-Sache.
Terdon

Antworten:

12

Aktualisiert am 27.07.2016: Ein Wheezy-Backport ist jetzt für Git 1.9.1 verfügbar . Die Anweisungen gelten weiterhin für die Installation einer neueren Version oder für Jessie.


Wenn eine neuere Version eines Backport-Pakets nicht verfügbar ist, haben Sie zwei Möglichkeiten:

  1. Bitten Sie die Paketbetreuer, einen Backport vorzubereiten. Es ist nicht garantiert, dass es funktioniert, aber einige Betreuer sind zuversichtlich, Backports zu erstellen, also würde ich es einfach versuchen.

    Der Maintainer E-Mails gefunden werden konnte dort .

  2. Bauen Sie es selbst aus den Quellen. Dies kann auf zwei Arten erfolgen:

    • Erstellen Sie "as is" aus dem Quell-Tarball. Wenn Sie sich für diese Route entscheiden, müssen Sie das Build-System von Git so konfigurieren , dass alles unter ~/gitoder /opt/gitoder so installiert wird. Andernfalls wird später ein großartiger PITA das, was Sie installiert haben, entfernen.

      Das Problem ist, dass die konventionelle Unix-Art, Software über das gesamte Dateisystem zu installieren, sinnvoll ist, aber nur, wenn Sie eine Art Registrierung haben, die "weiß", welche Datei zu welchem ​​Paket gehört und umgekehrt, und Verpackungssysteme wie Debian genau das tun. Wenn Sie „normal“ zu tun installieren ein Paket aus den Quellen gebaut, Sie in den meisten Fällen keine Möglichkeit haben , dieses Stück Software später zu deinstallieren (kurz verwenden checkinstallstatt make install, aber das ist wirklich ein letztes Mittel ). Umgekehrt, wenn Sie ein Quellpaket so konfigurieren, dass es alles in einem einzigen Verzeichnis installiert, haben Sie kleinere Schwierigkeiten, die Software $PATHauszuführen (die "binären" Verzeichnisse befinden sich nicht auf Ihrer Seite ). Wenn Sie sie später deinstallieren, ist dies ein Kinderspiel. eine einzelne rm -rf /path/to/that/dir.

    • Machen Sie selbst einen Backport. Dies ist aufwändiger, aber in einfachen Fällen funktioniert es möglicherweise, also lohnt es sich, es zu versuchen.

      Grundsätzlich geht man so vor (ein Link zu der .dscDatei wird von der Seite des Pakets in Unstable genommen ):

      # apt-get install devscripts
      $ mkdir ~/devel && cd $_
      $ dget http://ftp.de.debian.org/debian/pool/main/g/git/git_2.1.4-2.1.dsc
      $ dpkg-source -x git_2.1.4-2.1.dsc
      $ cd git
      

      Überprüfen Sie, ob alle Build-Abhängigkeiten erfüllt sind, indem Sie Folgendes ausführen:

      $ dpkg-checkbuilddeps
      

      Und installieren Sie alles, was das Tool derzeit vermisst. Manchmal bezieht sich ein Paket auf eine Version von etwas, das zu frisch ist, um in der Distribution, für die Sie einen Backport erstellen, verfügbar zu sein. In diesem Fall ist es in Ordnung, die Version eines solchen Pakets in der debian/controlDatei zu manipulieren und zu korrigieren .

      Korrigieren Sie nun die Version der zu erstellenden Pakete. Der beste Weg, dies zu erreichen, besteht darin, ein Tool das Richtige tun zu lassen:

      $ dch --bpo
      

      Es wird ein Eintrag zu der debian/changelogDatei hinzugefügt und ein Texteditor Ihrer Wahl geöffnet, um sie zu überwachen. Schließen Sie einfach den Editor - die Version für die zu erstellenden Pakete wird aus dem obersten Eintrag in dieser Datei entnommen.

      Nun wollen wir tatsächlich versuchen zu bauen:

      $ dpkg-buildpackage -uc -us -b
      

      Wenn Sie Glück haben, haben Sie an diesem Punkt eine Reihe von glänzenden neuen Git- .debPaketen .., die Sie einfach mit installieren können dpkg -i <packagename> ....

      (Führen debuild cleanSie den Befehl aus, um den erstellten Code zu entfernen, oder entfernen Sie das gitVerzeichnis vollständig. Möglicherweise möchten Sie auch das entfernen, was Sie nach dem Ausführen installiert haben dpkg-checkbuilddep.)

      Wenn die Erstellung aus irgendeinem Grund fehlschlägt, sind bestimmte Kenntnisse erforderlich, um eine Fehlerbehebung zu versuchen. Dies ist jedoch nicht Gegenstand dieser Diskussion.

kostix
quelle
@Dereckson, danke für deinen Bearbeitungsvorschlag - ich weiß das zu schätzen! Aber können Sie erläutern, warum dies dgetnicht erforderlich ist? Es geht darum, Ihnen alle Dateien des Quellpakets zur Verfügung zu stellen, damit Sie tatsächlich etwas entpacken, optimieren und erstellen können. Wenn Sie nur die einzelne .dscDatei abrufen, reicht dies aus, aber die Quell- und Debianisierungs-Tarballs fehlen.
Kostix
Oh, meine Schuld. Die Befehlsfolge hat mich reingelegt, da nur die Datei git_2.1.4-2.1.dsc später explizit als Argument verwendet wird. Ich dachte, dpkg-source holt die Quellen, aber es erfordert tatsächlich, dass die Paketdateien physisch vorhanden sind.
Dereckson
7

Sie können Git PPA für Ubuntu Precise weiterhin verwenden, indem Sie apt mitteilen, dass es aus der neuesten Quelle erstellt werden soll, die es dort findet. Die Distributionen sind ähnlich genug, dass dies gut funktionieren sollte.

Ich habe es mit Erfolg auf Raspbian (das auf Wheezy basiert) verwendet, um Pakete für armhf zu erhalten, aber es sollte für jede Architektur funktionieren.

Fügen Sie zuerst den GPG-Schlüssel für den PPA hinzu:

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E1DF1F24

Fügen Sie die URL für die Quellpakete zu apt hinzu:

cat > /etc/apt/sources.list.d/git.list << EOF
deb-src http://ppa.launchpad.net/git-core/ppa/ubuntu precise main
EOF

Aktualisiere apt:

apt-get update

Installieren Sie Build-Abhängigkeiten:

apt-get build-dep git

Laden Sie Git von der Quelle herunter und erstellen Sie es. Möglicherweise möchten Sie dies ein temporäres Verzeichnis, da der Erstellungsprozess ein wenig cruft erstellt:

apt-get -b source git

Installieren Sie das soeben erstellte Paket und bereinigen Sie es (Git-Core wird nicht mehr benötigt):

dpkg -i git_*.deb git-man_*.deb
dpkg -P git-core
emning
quelle
7

Wenn Sie ein bestimmtes Paket in Debian 7 (Wheezy) aktualisieren möchten, haben Sie die Möglichkeit, Backports zu verwenden, indem Sie einfach die folgenden Zeilen zu Ihrer /etc/apt/sources.list hinzufügen :

deb http://cloudfront.debian.net/debian wheezy-backports main
deb-src http://cloudfront.debian.net/debian wheezy-backports main

Führen Sie dann zum Installieren / Aktualisieren von git die folgenden Befehle aus:

$ aptitude update
$ aptitude -t wheezy-backports install git

Sie können Backports auch in einer separaten Datei in /etc/apt/sources.list.d/ konfigurieren. Ich bevorzuge besonders die Verwendung einer /etc/apt/sources.list.d/backports.list-Datei .

RAMSVIDOR
quelle