Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
jiro4989
PDF, PPTX
218 views
GitHub Releasesからインストールしたコマンドを管理する
GitHub Releasesからインストールしたコマンドを管理するツール、relmaを自作しました。使い方とその背景、仕組みを話します。
Software
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 25
2
/ 25
3
/ 25
4
/ 25
5
/ 25
6
/ 25
7
/ 25
8
/ 25
9
/ 25
10
/ 25
11
/ 25
12
/ 25
13
/ 25
14
/ 25
15
/ 25
16
/ 25
17
/ 25
18
/ 25
19
/ 25
20
/ 25
21
/ 25
22
/ 25
23
/ 25
24
/ 25
25
/ 25
More Related Content
PDF
Git lev 3 -おひとりさまでブランチを-
by
Kentarou Kurashige
PDF
Git lev 1-おひとりさま用-
by
Kentarou Kurashige
PPTX
Gitの勉強 紹介編-
by
Kentarou Kurashige
PDF
Git lev 4 -みんなでGit-
by
Kentarou Kurashige
PDF
Gitの設定
by
Kentarou Kurashige
PDF
GitHubでプロジェクトを共有してみよう (1)
by
俊道 末包
PDF
GitHubでプロジェクトを共有してみよう
by
Toshimichi Suekane
PDF
Git 初心者講座 by forkwell
by
sinsoku listy
Git lev 3 -おひとりさまでブランチを-
by
Kentarou Kurashige
Git lev 1-おひとりさま用-
by
Kentarou Kurashige
Gitの勉強 紹介編-
by
Kentarou Kurashige
Git lev 4 -みんなでGit-
by
Kentarou Kurashige
Gitの設定
by
Kentarou Kurashige
GitHubでプロジェクトを共有してみよう (1)
by
俊道 末包
GitHubでプロジェクトを共有してみよう
by
Toshimichi Suekane
Git 初心者講座 by forkwell
by
sinsoku listy
What's hot
PDF
Google App Engine で ChatOps やっていき
by
Satoru Takanami
PDF
Github と仲良くなろう!
by
Kentaro Ohkouchi
PDF
Shizudev git hub宿題
by
Tadahiro Ishisaka
PDF
猫にはわからないGit講座
by
Yusei Yamanaka
PDF
Githubを使いこなす(・ω・)
by
Kazuki Takahashi
KEY
日本androidの会 中国支部 29回勉強会 github
by
Tomohiko Himura
PPTX
githubハンズオン
by
Ayaka Ueda
PDF
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
by
Taisuke Inoue
PDF
GitLab/GitLab.com勉強会 第2回
by
NaohiroHamada
PDF
デザイナー、フロントエンジニア向けgithub勉強会ワークショップ資料
by
ichikaway
PDF
Github勉強会~Git・Githubを用いて共同開発・バージョン管理をしよう~
by
DoshishaUniv ProntiatVR
PDF
Git & ブランチモデルで学ぶ バージョン管理入門
by
kazuki kuriyama
PDF
git ~start PullRequest~
by
Souichirou Andou
PDF
Bitbucket and git
by
Ryo Katsumata
PPTX
GitLabを16万8千光年ワープさせた話(改)
by
Wataru NOGUCHI
PDF
Git地図
by
yoshiaki iwanaga
PDF
医療データ解析者へ向けた Git・GitHub 入門
by
Yui Tomo
PPTX
2018 07-18 git-hub講座
by
Takahito Sueda
PPT
Gitの紹介
by
Shoot Morii
PDF
@s_ssk13さん向けGitHub入門
by
Takashi Imagire
Google App Engine で ChatOps やっていき
by
Satoru Takanami
Github と仲良くなろう!
by
Kentaro Ohkouchi
Shizudev git hub宿題
by
Tadahiro Ishisaka
猫にはわからないGit講座
by
Yusei Yamanaka
Githubを使いこなす(・ω・)
by
Kazuki Takahashi
日本androidの会 中国支部 29回勉強会 github
by
Tomohiko Himura
githubハンズオン
by
Ayaka Ueda
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
by
Taisuke Inoue
GitLab/GitLab.com勉強会 第2回
by
NaohiroHamada
デザイナー、フロントエンジニア向けgithub勉強会ワークショップ資料
by
ichikaway
Github勉強会~Git・Githubを用いて共同開発・バージョン管理をしよう~
by
DoshishaUniv ProntiatVR
Git & ブランチモデルで学ぶ バージョン管理入門
by
kazuki kuriyama
git ~start PullRequest~
by
Souichirou Andou
Bitbucket and git
by
Ryo Katsumata
GitLabを16万8千光年ワープさせた話(改)
by
Wataru NOGUCHI
Git地図
by
yoshiaki iwanaga
医療データ解析者へ向けた Git・GitHub 入門
by
Yui Tomo
2018 07-18 git-hub講座
by
Takahito Sueda
Gitの紹介
by
Shoot Morii
@s_ssk13さん向けGitHub入門
by
Takashi Imagire
Similar to GitHub Releasesからインストールしたコマンドを管理する
PPTX
いいこんぶGitマニュアル
by
Kaito Yuuki
KEY
Yapc2012資料
by
matsuo kenji
PPTX
Git/GitHub
by
Nariaki Tateiwa
PDF
Gitとローカル環境
by
Atsushi Ito
PPTX
Gitの基本コマンド
by
晋 小沼
PDF
ソフトウェア工学2023 08 GitHub
by
Toru Tamaki
PPTX
GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)
by
Game Tools & Middleware Forum
PDF
ソフトウェア工学2023 07 バージョン管理
by
Toru Tamaki
PDF
git-webtouchmeeting
by
Tomohiko Himura
PDF
ゆるふわっGit入門
by
Keisuke Oohata
PDF
超簡単! GitをWindowsにインストール
by
Shin Tanigawa
KEY
Git tutorial
by
Hiroki Kouchi
PDF
バージョン管理Git
by
松本 雄貴
PDF
Git_GitHub 入門者向けスライド.pdf
by
Yoshiki Tanaka
PPTX
Git @ NNCT programming workshop
by
NNCT programming study group
いいこんぶGitマニュアル
by
Kaito Yuuki
Yapc2012資料
by
matsuo kenji
Git/GitHub
by
Nariaki Tateiwa
Gitとローカル環境
by
Atsushi Ito
Gitの基本コマンド
by
晋 小沼
ソフトウェア工学2023 08 GitHub
by
Toru Tamaki
GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)
by
Game Tools & Middleware Forum
ソフトウェア工学2023 07 バージョン管理
by
Toru Tamaki
git-webtouchmeeting
by
Tomohiko Himura
ゆるふわっGit入門
by
Keisuke Oohata
超簡単! GitをWindowsにインストール
by
Shin Tanigawa
Git tutorial
by
Hiroki Kouchi
バージョン管理Git
by
松本 雄貴
Git_GitHub 入門者向けスライド.pdf
by
Yoshiki Tanaka
Git @ NNCT programming workshop
by
NNCT programming study group
GitHub Releasesからインストールしたコマンドを管理する
1.
GitHub Releasesからインストールしたコマンドを管 理する 発表者: 次郎
(@jiro_saburomaru)
2.
⽬次 1. ⾃⼰紹介 2. GitHub
Releasesとローカルでの管理 3. relma の使い⽅ 4. relma の仕組み 5. まとめ
3.
⾃⼰紹介 Key Value 名前 次郎 Twitter
@jiro_saburomaru 職業 サーバサイドエンジニア
4.
GitHub Releasesとローカルでの管理
5.
皆様はGitHub Releasesを使ってますか︖ GitHub Releases便利なので、僕は⼤変活⽤させてもらっています。 GitHub
Releasesは開発者にとっても、リポジトリを訪れた⼈(以降ユーザ)にとって も、⼿軽に使える素晴らしい機能だと感じています。
6.
GitHub Releasesご存知ない⽅のために軽く説明すると GitHubのリポジトリに紐づく、任意のファイルをユーザに提供できる機能 リポジトリのリリースを管理する -
GitHub Docs 「タグを付与された時点でのリリース物」として利⽤される場合がほとんど 例: タグ v1.0.1 のリリース物 よくあるリリース物は以下 各OS⽤の実⾏可能ファイル コードから⽣成したフォントファイル 圧縮ファイル (zip, tar.gz) の場合が多い たまにバイナリそのまま
7.
参考
8.
なにが便利か 開発者 無料で使える リリースファイルのアップロードが容易 CI (GitHub Actions,
Travis CIなど)と連携して⾃動リリース可能 ユーザ 無料で使える 簡単にダウンロードできる
9.
僕は主にGitHub Releasesにだけ公開されているコマンドのダウンロードに使っていま す 有名なコマンドなどは apt
install できたりするものもありますが、 GitHub Releasesだけに公開されているコマンドも多いです。
10.
管理に悩む こういったGitHub Releasesから取得するタイプのコマンドをインストールする時、僕 は以下のようなコマンドを実⾏します。 cd /tmp wget
https://github.com/jiro4989/nimjson/releases/download/v1.2.8/nimjson_linux.tar.gz tar xzf nimjson_linux.tar.gz mkdir -p ~/bin install -m 0755 ./nimjson_linux/bin/nimjson ~/bin/ インストールする時は特にこれで不便ありません。
11.
ですが、コマンドをアップグレードしたくなった時に困りました。 主に以下の問題に遭遇しました。 このコマンドどこから取得したっけ︖ どうやってインストールしたっけ︖ そもそも新しいバージョン出てるんだっけ︖ この問題はGitHub Releasesから取得するコマンドが増えるほど⼤きくなりました
12.
「debianパッケージみたいに apt install
でインストールできて、 apt update して apt upgrade でバージョン更新できたらいいのになぁ...」と感じるよ うになりました。 ですがGitHub Releasesはタグに紐づくリリース物を公開する機能であって、 リリース物をユーザがどう管理するかについては責務外と思います。 僕の「debianパッケージみたいに管理したい」がそもそも責務外の無茶な要求という ものです。
13.
ということで、作りました。 GitHub Releasesでインストールしたコマンドの⼀括アップグレードを可能にするコマ ンドです。 名前は relma
(レルマ) としました。 https://github.com/jiro4989/relma 実装にはGo⾔語を使⽤しました。 Windowsでも動作します(管理者権限が必要ですが)。
14.
relma の使い⽅
15.
インストール⽅法 最初に init で初期化して、
install にリリース物のURLを渡してあげるだけです。 これでリリース物の圧縮ファイルを展開して $HOME/relma/bin に実⾏可能ファイルの シンボリックリンクが配置されます。 relma init relma install https://github.com/jiro4989/nimjson/releases/download/v1.2.8/nimjson_linux.tar.gz
16.
アップグレード⽅法 以下の様に update して
upgrade するだけです。 update では最新バージョンの有無をチェックし、バージョン情報をローカルに保存 します。 upgrade を実⾏するとアップグレード可能なパッケージをすべてアップグレードしま す。 relma update relma upgrade
17.
インストールしたパッケージの確認⽅法 relma でインストールしたパッケージの⼀覧を確認する場合は list
を実⾏します。 relma list
18.
relma の仕組み
19.
インストール⽅法 relma install に渡したURLのファイルをローカルに落し、所定のパスに展開してシ ンボリックリンクを作ります。 $HOME/ relma/ bin/ command.exe
# シンボリックリンク releases/ $OWNER/ $REPO/ $VERSION/ $RELEASE_FILE.tar.gz assets/ command.exe # 実体
20.
リリースファイルの展開後のディレクトリ構造にはある程度パターンがあります。 ⼤体は以下の 3 パターンのいずれかだろう、と考えました。 これらの展開後のディレクトリ構造を判別して実⾏可能ファイルのパスを特定し、 $HOME/relma/bin
配下にシンボリックリンクを作成します。 release_v1.0.0.zip/ command.exe # コマンドだけ配置されるケース release_v1.0.0.zip/ release_v1.0.0/ command.exe # 圧縮ファイル名のディレクトリ配下に # コマンドが配置されるケース release_v1.0.0.zip/ release_v1.0.0/ bin/ command.exe # 圧縮ファイル名のディレクトリ配下に # bin ディレクトリが配置され、 # その下にコマンドが配置されるケース
21.
アップグレード時のインストールURLの特定⽅法 GitHub Releasesで公開されているコマンドの多くは、リリース⼿順を⾃動化されてい ます。 ローカルで⼿動で叩くコマンドか、あるいはCIからか、⼿段は違えど⼤なり⼩なり⾃ 動化されている場合が多いです。 また、リリースファイルの命名も、リポジトリごとに違えど、概ね命名が決まってい て、「リリースファイル名に含まれるバージョン番号だけが異なる」という点で共通 点があります。
22.
よって、 relma install
に指定したURLのバージョン番号をリリースのタグ番号で差 し替えれば、次のバージョンのリリースファイルを取得するURLが特定できるので は、と考えました。 https://github.com/jiro4989/nimjson/releases/download/${VERSION}/nimjson_${VERSION}_linux.tar.gz
23.
しかし、開発者が毎回⼿動でリリースファイルを作っていて、命名が不規則だった り、タグとバージョン番号が不⼀致になるケースもあると思います これは対象外としました。 あらゆるリポジトリをサポートするつもりはないですし、命名が不規則なのはリポジ トリのオーナーの管理の問題と考えます。 8割くらいのリポジトリをカバーできれば、僕は満⾜です。
24.
実際に操作を⾒てみます。 (ここで実際に操作)
25.
まとめ GitHub Releasesの話をしました relma コマンドの使い⽅を説明しました relma
コマンドの仕組みを説明しました 皆様のお役に⽴てば幸いです。 以上
Download