Como você instala o hub (git wrapper) no Ubuntu com o preenchimento automático e a documentação do man funcionando?

19

De acordo com os documentos oficiais, basta baixar um binário pré-compilado, mas isso deixaria coisas como mandocumentação e preenchimento automático não funcionando.

Bryce Drennan
fonte
Se você respondeu sua pergunta, pode aceitar qualquer uma das respostas.
Anwar

Respostas:

16

Você pode usar este PPA para instalar hubcomo um pacote:

sudo add-apt-repository ppa:cpick/hub
sudo apt-get update
sudo apt-get install hub
Eugene Yarmash
fonte
Você sabe se isso configura o preenchimento automático e o alias do git?
precisa saber é o seguinte
@Bryce Parece que o pacote mais recente (2.2.9-0ubuntu0ppa1) contém um script de conclusão do bash, mas não há páginas de manual ou scripts de pós-instalação.
Eugene Yarmash
1
ppa: cpick / hub não é atualizado há anos e fornece uma versão muito antiga do hub
Mike Slinn
Informações mais atualizadas sobre como adicionar um repositório que contenha hub podem ser encontradas aqui: github.com/github/hub/issues/718
Thomas David Baker
10

O hub está disponível como um estalo agora. https://snapcraft.io/hub

Você pode instalá-lo com sudo snap install --classic hub.

Maxime Rainville
fonte
1
Pena que o Subsistema Windows para Linux não suporta snap
Mike Slinn 13/04
6

Instalar Hub

  1. Download do Hub no Github

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

  2. Extraia-o. Eu o extraí para o Apps/diretório em minha casa e o renomeei para hub-linux. Então, na minha configuração, o caminho completo para a binpasta é/home/anwar/Apps/hub-linux/bin

  3. Agora abra o ~/.bashrcarquivo e adicione o caminho binário do hub à $PATHvariável de ambiente. Adicionar uma linha como abaixo funcionará.

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

Não se esqueça de usar o caminho real na sua configuração

Adicionar a conclusão do bash

Para adicionar a conclusão do bash, precisamos informar ao bash para que o arquivo de conclusão seja fornecido com o hub-archive. O arquivo de conclusão está na etcpasta da pasta do hub extraída. Para fazer isso,

Abra o .bashrce escreva aí estas linhas

### 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ão se esqueça de substituir o caminho exato do hub.bash_completion.sharquivo de acordo com sua configuração

Agora, você deve poder usar a conclusão do bash do hub

Adicionar a página de manual do Hub ao manbanco de dados

A página de manual do Hub realmente veio com o arquivo. Está na sharepasta. Para adicionar a página de manual, precisamos colocá-la no diretório da página de manual.

Para fazer isso, abra um terminal e um CD no arquivo do hub extraído. Assumindo que o seu diretório atual está na mesma pasta onde hub de bin, share, README.mdreside, use este comando para copiar o manpage

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

Agora você pode usar a página de manual do hub usando o man hubcomando

Se você não puder usar imediatamente man hub, use sudo updatedbpara atualizar o man db do sistema.

Anwar
fonte
2

Este script deve fazer o trabalho no Ubuntu 16.04 com 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

Como alternativa para o Ubuntu 16.04 com 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

Instalação de teste:

hub version
Bryce Drennan
fonte
Seu script bash contém a linha echo "eval "$(hub alias -s)"" >> ~/.zshrc. Isso parece uma coisa do zsh, não uma coisa do bash? (Eu sou um novato * nix, então o que eu sei)
Sam Axe