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.

Bryce Drennan
la source
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
Eugene Yarmash
la source
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
10

Hub est maintenant disponible en un clin d'œil. https://snapcraft.io/hub

Vous pouvez l'installer avec sudo snap install --classic hub.

Maxime Rainville
la source
1
Dommage que le sous-système Windows pour Linux ne
prenne
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.

Anwar
la source
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
Bryce Drennan
la source
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