Bagaimana Anda menginstal hub (git wrapper) di Ubuntu dengan dokumentasi autocomplete dan man?

19

Menurut dokumen resmi, Anda hanya mengunduh biner yang telah dikompilasi, tetapi ini akan membuat hal-hal seperti mandokumentasi dan pelengkapan otomatis tidak berfungsi.

Bryce Drennan
sumber
Jika Anda telah menjawab pertanyaan Anda, Anda mungkin ingin menerima siapa pun dari jawabannya.
Anwar

Jawaban:

16

Anda dapat menggunakan PPA ini untuk menginstal hubsebagai suatu paket:

sudo add-apt-repository ppa:cpick/hub
sudo apt-get update
sudo apt-get install hub
Eugene Yarmash
sumber
Apakah Anda tahu jika ini mengatur pelengkapan otomatis dan alias git?
Bryce Drennan
@Bryce Sepertinya paket terbaru (2.2.9-0ubuntu0ppa1) berisi skrip bash completion, tetapi tidak ada skrip manual atau postinstall.
Eugene Yarmash
1
ppa: cpick / hub belum diperbarui selama bertahun-tahun, dan menyediakan versi hub yang sangat lama
Mike Slinn
Info lebih lanjut tentang cara menambahkan repo yang berisi hub dapat ditemukan di sini: github.com/github/hub/issues/718
Thomas David Baker
10

Hub tersedia sebagai snap sekarang. https://snapcraft.io/hub

Anda dapat menginstalnya dengan sudo snap install --classic hub.

Maxime Rainville
sumber
1
Sayang sekali Windows Subsystem untuk Linux tidak mendukung snap
Mike Slinn
6

Instal Hub

  1. Unduh Hub dari Github

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

  2. Ekstrak itu. Saya telah mengekstraknya ke Apps/direktori di rumah saya dan menamainya menjadi hub-linux. Jadi, dalam pengaturan saya, jalur lengkap ke binfolder adalah/home/anwar/Apps/hub-linux/bin

  3. Sekarang buka ~/.bashrcfile dan tambahkan path binary hub ke $PATHvariabel environment. Menambahkan garis seperti di bawah ini akan berfungsi.

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

Jangan lupa untuk menggunakan jalur aktual di pengaturan Anda

Tambahkan Penyelesaian Bash

Untuk menambahkan penyelesaian bash, kita perlu memberitahu bash untuk mencari file penyelesaian dilengkapi dengan hub-arsip. File penyelesaian ada dietc folder folder hub yang diekstraksi. Untuk melakukannya,

Buka .bashrcdan tulis di sana baris-baris ini

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

Jangan lupa untuk mengganti jalur hub.bash_completion.shfile yang tepat sesuai dengan pengaturan Anda

Sekarang, Anda harus dapat menggunakan penyelesaian hub bash

Tambahkan manual Hub ke manbasis data

Halaman manual Hub sebenarnya datang dengan arsip. Ada di sharefolder. Untuk menambahkan halaman manual, kita harus meletakkannya di direktori halaman buku panduan.

Untuk melakukannya, Buka terminal dan cd ke arsip hub yang diekstraksi. Dengan asumsi direktori Anda saat ini dalam direktori yang sama di mana hub bin, share, README.mdtinggal, gunakan perintah ini untuk menyalin manual ini

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

Sekarang Anda dapat menggunakan halaman manual hub menggunakan man hubperintah.

Jika Anda tidak dapat langsung menggunakan man hub, gunakan sudo updatedbuntuk menyegarkan man db dari sistem.

Anwar
sumber
2

Skrip ini harus melakukan pekerjaan pada Ubuntu 16.04 dengan 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

Atau untuk Ubuntu 16.04 dengan 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

Instalasi tes:

hub version
Bryce Drennan
sumber
Skrip bash Anda berisi baris echo "eval "$(hub alias -s)"" >> ~/.zshrc. Ini terlihat seperti benda zsh, bukan benda bash? (Saya seorang pemula * nix, jadi apa yang saya tahu)
Sam Axe