Comment installez-vous le hub (git wrapper) sur Ubuntu avec la saisie semi-automatique et la documentation man qui fonctionnent?


19

Selon les documents officiels, vous venez de télécharger un binaire précompilé, mais cela ne fonctionnerait pas, comme la mandocumentation et la saisie semi-automatique.


Si vous avez répondu à votre question, vous pouvez accepter n'importe laquelle des réponses.
Anwar

Réponses:


16

Vous pouvez utiliser ce PPA pour installer en hubtant que package:

sudo add-apt-repository ppa:cpick/hub
sudo apt-get update
sudo apt-get install hub

Savez-vous si cela configure la saisie semi-automatique et l'alias git?
Bryce Drennan

@Bryce Il semble que le dernier package (2.2.9-0ubuntu0ppa1) contienne un script de fin bash, mais pas de pages de manuel ni de scripts de post-installation.
Eugene Yarmash

1
ppa: cpick / hub n'a pas été mis à jour depuis des années et fournit une très ancienne version de hub
Mike Slinn

Plus d'informations à jour sur la façon d'ajouter un référentiel contenant un hub peuvent être trouvées ici: github.com/github/hub/issues/718
Thomas David Baker


6

Installer le hub

  1. Télécharger Hub depuis Github

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

  2. Extrayez-le. Je l'ai extrait dans le Apps/répertoire de ma maison et je l'ai renommé hub-linux. Donc, dans ma configuration, le chemin d'accès complet au bindossier est/home/anwar/Apps/hub-linux/bin

  3. Ouvrez maintenant le ~/.bashrcfichier et ajoutez le chemin binaire du concentrateur à la $PATHvariable d'environnement. L'ajout d'une ligne comme ci-dessous fonctionnera.

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

N'oubliez pas d'utiliser le chemin réel dans votre configuration

Ajouter l'achèvement de Bash

Pour ajouter l'achèvement de bash, nous devons dire à bash de se procurer le fichier d'achèvement fourni avec hub-archive. Le fichier d'achèvement se trouve dans le etcdossier du dossier concentrateur extrait. Faire cela,

Ouvrez le .bashrcet écrivez-y ces lignes

### 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

N'oubliez pas de remplacer le chemin exact du hub.bash_completion.shfichier en fonction de votre configuration

Maintenant, vous devriez pouvoir utiliser la complétion bash du concentrateur

Ajouter la page de manuel de Hub à la manbase de données

La page de manuel de Hub était en fait fournie avec l'archive. C'est dans le sharedossier. Pour ajouter la page de manuel, nous devons la placer dans le répertoire de la page de manuel.

Pour ce faire, ouvrez un terminal et un CD vers l'archive concentrée extraite. En supposant que votre répertoire courant est dans le même répertoire où les hubs bin, share, README.mdrésident, utilisez cette commande pour copier les pages de manuel

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

Vous pouvez maintenant utiliser la page de manuel du hub à l'aide de la man hubcommande.

Si vous ne pouvez pas utiliser immédiatement man hub, utilisez sudo updatedbpour actualiser man db du système.


2

Ce script devrait faire le travail sur Ubuntu 16.04 avec zsh.

# 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

Alternativement pour Ubuntu 16.04 avec 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

Installation de test:

hub version

Votre script bash contient la ligne echo "eval "$(hub alias -s)"" >> ~/.zshrc. Cela ressemble à une chose zsh, pas une chose bash? (Je suis un débutant * nix, alors qu'est-ce que je sais)
Sam Axe
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.