Wie installiere ich Hub (Git-Wrapper) auf Ubuntu, wobei Autocomplete und Man-Dokumentation funktionieren?

19

Laut offiziellen Dokumenten lädst du nur eine vorkompilierte Binärdatei herunter, aber das würde Dinge wie manDokumentation und Autovervollständigung nicht funktionieren lassen.

Bryce Drennan
quelle
Wenn Sie Ihre Frage beantwortet haben, möchten Sie möglicherweise eine der Antworten akzeptieren.
Anwar

Antworten:

16

Sie können diese PPA verwenden , um sie hubals Paket zu installieren :

sudo add-apt-repository ppa:cpick/hub
sudo apt-get update
sudo apt-get install hub
Eugene Yarmash
quelle
Weißt du, ob dies Autovervollständigung und den Git-Alias ​​einrichtet?
Bryce Drennan
@Bryce Es sieht so aus, als ob das neueste Paket (2.2.9-0ubuntu0ppa1) ein Bash-Vervollständigungsskript enthält, jedoch keine Hilfeseiten oder Postinstall-Skripte.
Eugene Yarmash
1
ppa: cpick / hub wurde seit Jahren nicht mehr aktualisiert und bietet eine sehr alte Version von hub
Mike Slinn
Weitere aktuelle Informationen zum Hinzufügen eines Repos mit Hub finden Sie hier: github.com/github/hub/issues/718
Thomas David Baker
10

Hub ist ab sofort verfügbar. https://snapcraft.io/hub

Sie können es mit installieren sudo snap install --classic hub.

Maxime Rainville
quelle
1
Schade, dass das Windows-Subsystem für Linux kein Snap unterstützt
Mike Slinn,
6

Installieren Sie Hub

  1. Laden Sie Hub von Github herunter

    https://github.com/github/hub/releases

  2. Extrahiere es. Ich habe es in das Apps/Verzeichnis in meinem Zuhause extrahiert und in umbenannt hub-linux. In meinem Setup binlautet der vollständige Pfad zum Ordner/home/anwar/Apps/hub-linux/bin

  3. Öffnen Sie nun die ~/.bashrcDatei und fügen Sie den Hub-Binärpfad zur $PATHUmgebungsvariablen hinzu. Das Hinzufügen einer Zeile wie unten funktioniert.

    ### Adds Hub-linux
    export PATH="$PATH:$HOME/Apps/hub-linux/bin/"

Vergessen Sie nicht, den tatsächlichen Pfad in Ihrem Setup zu verwenden

Fügen Sie die Bash-Vervollständigung hinzu

Um die Bash-Vervollständigung hinzuzufügen, müssen wir Bash mitteilen, dass die Vervollständigungsdatei aus dem Hub-Archiv stammt. Die Abschlussdatei befindet sich im etcOrdner des extrahierten Hub-Ordners. Um dies zu tun,

Öffne die .bashrcund schreibe dort diese Zeilen

### Load Hub Linux bash completion
if [ -f $HOME/Apps/hub-linux/etc/hub.bash_completion.sh ] ; then
     . $HOME/Apps/hub-linux/etc/hub.bash_completion.sh
fi

Vergessen Sie nicht, den genauen Pfad der hub.bash_completion.shDatei entsprechend Ihrer Einrichtung zu ersetzen

Jetzt sollten Sie in der Lage sein, die Hub-Bash-Vervollständigung zu verwenden

Hinzufügen der Manpage von Hub zur manDatenbank

Hubs Manpage wurde tatsächlich mit dem Archiv ausgeliefert. Es ist in der shareMappe. Um die Manpage hinzuzufügen, müssen wir sie in das Manpage-Verzeichnis stellen.

Öffnen Sie dazu ein Terminal und eine CD mit dem extrahierten Hub-Archiv. Ihr aktuelles Verzeichnis Unter der Annahme , im gleichen Verzeichnis , in dem Hub bin, share, README.mdresidiert, verwenden Sie diesen Befehl , um die Man - Page kopieren

sudo cp -r share/ /usr/
sudo chmod 644 /usr/share/man/man1/hub.1

Jetzt können Sie die Handbuchseite des Hubs mit dem man hubBefehl verwenden.

Wenn Sie nicht sofort verwenden können man hub, sudo updatedbaktualisieren Sie mit die Datenbank des Systems.

Anwar
quelle
2

Dieses Skript sollte den Job unter Ubuntu 16.04 mit zsh erledigen.

# Install binary and documentation
wget https://github.com/github/hub/releases/download/v2.2.9/hub-linux-amd64-2.2.9.tgz
tar zvxvf hub-linux-amd64-2.2.9.tgz
sudo ./hub-linux-amd64-2.2.9/install

# Setup autocomplete for zsh:
mkdir -p ~/.zsh/completions
mv ./hub-linux-amd64-2.2.9/etc/hub.zsh_completion ~/.zsh/completions/_hub
echo "fpath=(~/.zsh/completions $fpath)" >> ~/.zshrc
echo "autoload -U compinit && compinit" >> ~/.zshrc

# add alias
echo "eval "$(hub alias -s)"" >> ~/.zshrc

# Cleanup
rm -rf hub-linux-amd64-2.2.9

Alternativ für Ubuntu 16.04 mit Bash:

# Install binary and documentation
wget https://github.com/github/hub/releases/download/v2.2.9/hub-linux-amd64-2.2.9.tgz
tar zvxvf hub-linux-amd64-2.2.9.tgz
sudo ./hub-linux-amd64-2.2.9/install

# Setup autocomplete for bash:
mkdir -p ~/.bash/completions
mv ./hub-linux-amd64-2.2.9/etc/hub.bash_completion.sh ~/.bash/completions/_hub
echo "if [ -f ~/.bash/completions/_hub ]; then" >> ~/.bashrc
echo "    . ~/.bash/completions/_hub" >> ~/.bashrc
echo "fi" >> ~/.bashrc

# add alias
echo "eval "$(hub alias -s)"" >> ~/.bashrc

# Cleanup
rm -rf hub-linux-amd64-2.2.9

Testinstallation:

hub version
Bryce Drennan
quelle
Ihr Bash-Skript enthält die Zeile echo "eval "$(hub alias -s)"" >> ~/.zshrc. Das sieht aus wie eine zsh Sache, keine bash Sache? (Ich bin ein * nix Neuling, also was weiß ich)
Sam Axe