日本語 | Русский | 中文 | 한국어 | Español | Français
gup コマンドは、"go install" でインストールしたバイナリを最新版に更新します。gupはすべてのバイナリを並列で更新するため、非常に高速です。また、$GOPATH/bin ($GOBIN) 配下のバイナリを操作するためのサブコマンドも提供しています。Windows、Mac、Linuxで動作するクロスプラットフォーム対応のソフトウェアです。
oh-my-zshを使用している場合、gupにはエイリアスが設定されています。そのエイリアスは gup - git pull --rebase です。そのため、oh-my-zshのエイリアスを無効にして使用してください(例:$ \gup update)。
- 設定ファイル形式は
gup.confからgup.jsonに変更されました。 gup importはgup.confを読み込みません。gup.jsonにはパッケージごとの更新チャネル(latest/main/master)を保存します。
- Linux
- Mac
- Windows
gup は go install と Homebrew に加えて、winget、mise、nix からもインストールできます。
システムにGolang開発環境がインストールされていない場合は、Golang公式サイトからGolangをインストールしてください。
go install github.com/nao1215/gup@latest
brew install nao1215/gupwinget install --id nao1215.gupmise use -g gup@latestnix profile install nixpkgs#gogupリリースページ には、.deb、.rpm、.apk形式のパッケージが含まれています。gupコマンドは内部的にgoコマンドを使用するため、Golangのインストールが必要です。
すべてのバイナリを更新する場合は、$ gup update を実行するだけです。
$ gup update
update binary under $GOPATH/bin or $GOBIN
[ 1/30] github.com/cheat/cheat/cmd/cheat (Already up-to-date: v0.0.0-20211009161301-12ffa4cb5c87 / go1.22.4)
[ 2/30] fyne.io/fyne/v2/cmd/fyne_demo (Already up-to-date: v2.1.3 / go1.22.4)
[ 3/30] github.com/nao1215/gal/cmd/gal (v1.0.0 to v1.2.0 / go1.22.4)
[ 4/30] github.com/matsuyoshi30/germanium/cmd/germanium (Already up-to-date: v1.2.2 / go1.22.4)
[ 5/30] github.com/onsi/ginkgo/ginkgo (Already up-to-date: v1.16.5 / go1.22.4)
[ 6/30] github.com/git-chglog/git-chglog/cmd/git-chglog (Already up-to-date: v0.15.1 / go1.22.4)
:
:指定したバイナリのみを更新したい場合は、複数のコマンド名をスペース区切りで指定します。
$ gup update subaru gup ubume
update binary under $GOPATH/bin or $GOBIN
[1/3] github.com/nao1215/gup (v0.7.0 to v0.7.1, go1.20.1 to go1.22.4)
[2/3] github.com/nao1215/subaru (Already up-to-date: v1.0.2 / go1.22.4)
[3/3] github.com/nao1215/ubume/cmd/ubume (Already up-to-date: v1.4.1 / go1.22.4)一部のバイナリを更新したくない場合は、スペースなしで「,」区切りを使用して、更新すべきでないバイナリを指定してください。 --dry-run オプションとの組み合わせでも動作します。
$ gup update --exclude=gopls,golangci-lint //--exclude または -e、この例では 'gopls' と 'golangci-lint' を除外しますバイナリごとに更新元を指定したい場合、以下のオプションを使用します。
--main(-m):@mainで更新(失敗時は@masterを試行)--master:@masterで更新--latest:@latestで更新
選択したチャネルは gup.json に保存され、次回以降の gup update でも再利用されます。
$ gup update --main=gup,lazygit --master=sqly --latest=airlistサブコマンドは$GOPATH/binまたは$GOBIN配下のコマンド情報を出力します。出力される情報は、コマンド名、パッケージパス、コマンドバージョンです。

$GOPATH/binまたは$GOBIN配下のコマンドを削除したい場合は、removeサブコマンドを使用します。removeサブコマンドは削除前に確認を行います。
$ gup remove subaru gal ubume
gup:CHECK: remove /home/nao/.go/bin/subaru? [Y/n] Y
removed /home/nao/.go/bin/subaru
gup:CHECK: remove /home/nao/.go/bin/gal? [Y/n] n
cancel removal /home/nao/.go/bin/gal
gup:CHECK: remove /home/nao/.go/bin/ubume? [Y/n] Y
removed /home/nao/.go/bin/ubume強制的に削除したい場合は、--forceオプションを使用してください。
$ gup remove --force gal
removed /home/nao/.go/bin/galバイナリが最新バージョンかどうかを知りたい場合は、checkサブコマンドを使用してください。checkサブコマンドはバイナリが最新バージョンかどうかをチェックし、更新が必要なバイナリの名前を表示します。
$ gup check
check binary under $GOPATH/bin or $GOBIN
[ 1/33] github.com/cheat/cheat (Already up-to-date: v0.0.0-20211009161301-12ffa4cb5c87 / go1.22.4)
[ 2/33] fyne.io/fyne/v2 (current: v2.1.3, latest: v2.1.4 / current: go1.20.2, installed: go1.22.4)
:
[33/33] github.com/nao1215/ubume (Already up-to-date: v1.5.0 / go1.22.4)
If you want to update binaries, the following command.
$ gup update fyne_demo gup mimixbox他のサブコマンドと同様、指定したバイナリのみをチェックすることもできます。
$ gup check lazygit mimixbox
check binary under $GOPATH/bin or $GOBIN
[1/2] github.com/jesseduffield/lazygit (Already up-to-date: v0.32.2 / go1.22.4)
[2/2] github.com/nao1215/mimixbox (current: v0.32.1, latest: v0.33.2 / go1.22.4)
If you want to update binaries, the following command.
$ gup update mimixbox複数のシステム間で同じGolangバイナリをインストールしたい場合は、export/importサブコマンドを使用します。
gup.json は import path、バイナリバージョン、更新チャネル(latest / main / master)を保存し、import はそのバージョンをそのままインストールします。
{
"schema_version": 1,
"packages": [
{
"name": "gal",
"import_path": "github.com/nao1215/gal/cmd/gal",
"version": "v1.1.1",
"channel": "latest"
},
{
"name": "posixer",
"import_path": "github.com/nao1215/posixer",
"version": "v0.1.0",
"channel": "main"
}
]
}デフォルトでは次の挙動です。
gup exportは$XDG_CONFIG_HOME/gup/gup.jsonに書き出します。gup importは設定ファイルを次の順で自動検出します。$XDG_CONFIG_HOME/gup/gup.json(存在する場合)./gup.json(存在する場合)
--file を使えば、読み書きする設定ファイルパスを明示指定できます。
※ 環境A (例: ubuntu)
$ gup export
Export /home/nao/.config/gup/gup.json
※ 環境B (例: debian)
$ gup importまた、exportサブコマンドは --output オプションを使用すると、gup.json と同じ内容をSTDOUTに出力できます。importサブコマンドは --file オプションを使用して読み込みファイルを指定できます。
※ 環境A (例: ubuntu)
$ gup export --output > gup.json
※ 環境B (例: debian)
$ gup import --file=gup.jsonmanサブコマンドは/usr/share/man/man1配下にmanページを生成します。
$ sudo gup man
Generate /usr/share/man/man1/gup-bug-report.1.gz
Generate /usr/share/man/man1/gup-check.1.gz
Generate /usr/share/man/man1/gup-completion.1.gz
Generate /usr/share/man/man1/gup-export.1.gz
Generate /usr/share/man/man1/gup-import.1.gz
Generate /usr/share/man/man1/gup-list.1.gz
Generate /usr/share/man/man1/gup-man.1.gz
Generate /usr/share/man/man1/gup-remove.1.gz
Generate /usr/share/man/man1/gup-update.1.gz
Generate /usr/share/man/man1/gup-version.1.gz
Generate /usr/share/man/man1/gup.1.gzcompletion はシェル名を引数で指定すると、標準出力に補完スクリプトを出力します。
bash/fish/zsh の補完ファイルをユーザー環境にインストールするには、--install を使用します。
PowerShell は出力を .ps1 ファイルにリダイレクトし、profile から読み込んでください。
$ gup completion bash > gup.bash
$ gup completion zsh > _gup
$ gup completion fish > gup.fish
$ gup completion powershell > gup.ps1
# 既定のユーザーパスに補完ファイルを自動インストール
$ gup completion --install--notifyオプションでgupを使用すると、更新完了後にgupコマンドがデスクトップで更新の成功・失敗を通知します。
$ gup update --notifyまず、貢献に時間を割いていただき、ありがとうございます!詳細については、CONTRIBUTING.mdをご覧ください。 開発フロー、品質チェックリスト、ツール管理の手順は CONTRIBUTING.md に記載しています。 貢献は開発に関連するものだけではありません。たとえば、GitHub Starは開発のモチベーションになります!
「バグを見つけた」や「追加機能のリクエスト」などのコメントを開発者に送りたい場合は、以下の連絡先をご利用ください。
bug-reportサブコマンドを使用してバグレポートを送信できます。
$ gup bug-report
※ デフォルトブラウザでGitHub issueページを開きます
gupプロジェクトはApache License 2.0の条件の下でライセンスされています。
これらの素晴らしい人々に感謝します(emoji key):
CHIKAMATSU Naohiro 💻 |
KEINOS 💻 |
mattn 💻 |
Justin Lecher 💻 |
Lincoln Nogueira 💻 |
Masaya Watanabe 💻 |
memreflect 💻 |
Akimo 💻 |
rkscv 💻 |
Ville Skyttä 💻 |
Zephyr Lykos 💻 |
iTrooz 💻 |
Tiago Peczenyj 💻 |
このプロジェクトはall-contributors仕様に従っています。どのような種類の貢献も歓迎します!


