Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
I want to package The etckeeper to The openSUSE...
Search
Mitsutoshi NAKANO
August 17, 2014
Technology
90
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
I want to package The etckeeper to The openSUSE (version 1).
Mitsutoshi NAKANO
August 17, 2014
More Decks by Mitsutoshi NAKANO
See All by Mitsutoshi NAKANO
FreeWnn に patch が送られてきた、どうしよう
mitsutoshinakano
1
330
What is LPIC
mitsutoshinakano
0
170
Managed your slides by Git and upload them
mitsutoshinakano
0
220
I want to package The etckeeper to The openSUSE (version 2).
mitsutoshinakano
0
110
Tests and bugreports
mitsutoshinakano
0
45
When I investigated the problem of crashing Google Chrome, I met the bug in libgcrypt.
mitsutoshinakano
0
120
Other Decks in Technology
See All in Technology
最適な自走を最小限の支援で — M&Aで拡大する組織で少人数SREが挑んだ1年 / SRE NEXT 2026
genda
0
710
証券システムを10年Scalaで作り続けるということ - 関数型まつり2026
krrrr38
3
790
しぶいSRE: サーバから見えない障害にどう向き合うか。ラストワンマイルのデバッグ実践 / Shibui SRE
kanny
12
5.5k
CSに"SLO"は要らない、経営層に"99.9%"は伝わらない - SREを全社に"翻訳"する3原則
cscengineer
PRO
1
4.1k
“ID沼入口” - 基本とセキュリティから始める、考え続けるためのID管理技術勉強会 告知&イントロ
ritou
0
450
『AIに負けない』より『AIと遊ぶ』」〜ワクワクが最強のテスト・QA学習戦略_公開用
odan611
2
550
cccccc
moznion
0
1.8k
[2026-07-15] AI Ready なはずだったアーキテクチャと、見えてきた課題・次に目指す状態
wxyzzz
2
550
「ちゃんとやっている」は独りよがりだった ― 不安に寄り添うインシデント対応へ / Towards incident response that addresses anxieties
chmikata
1
4.3k
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
8.4k
Control Planeで育てるBtoB SaaSの認証基盤 - SRE NEXT 2026
pokohide
1
2k
アカウントが増えてからでは遅い? ~ マルチアカウント統制の勘所 ~
kenichinakamura
0
210
Featured
See All Featured
My Coaching Mixtape
mlcsv
0
170
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
460
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
180
From π to Pie charts
rasagy
0
230
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
600
Odyssey Design
rkendrick25
PRO
2
730
Writing Fast Ruby
sferik
630
63k
Building AI with AI
inesmontani
PRO
1
1.1k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
330
Color Theory Basics | Prateek | Gurzu
gurzu
0
380
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Transcript
etckeeper を openSUSE の公式リポ ジトリに入れたいぞ ! @ItSANgo
Who am I • @ItSANgo • http://d.hanena.ne.jp/Itisango/ • http://mixi.jp/show_profile.pl?id=789759 •
http://www.facebook.com/profile.php?id=1000 05833863069 • TOEIC 355 点 ( 有意性切れてます ) • 英語は話せない ( はず )
何を話すか • etckeeper について • 6 月から今日までに起こったことをかいつまん で • というか、資料作るの間に合わんかった
!
etckeeper って何 • Joey Hess が書いたユーティリティ • http://joeyh.name/code/etckeeper/ • /etc
の下を (git など )VCS で管理 • /etc をいじったら、手動で起動 • cron で自動起動 • YUM/APT と連携、自動起動 • おかしくなったら旧バージョンと見比べてトラブルシュー ト • @_hito_ さんもおすすめ • http://www.amazon.co.jp/dp/4048866877 • Debian/Ubuntu/Fedora で公式リポジトリに入っている
でも • openSUSE の公式リポジトリにはない • 非公式 (utilities) リポジトリにはある。 • いちいち非公式リポジトリから取ってくるのも
面倒 ? • なら、公式リポジトリに入れてもらえるようお 願いすればいいんじゃね ?
お願いするにはどうすればいいの • Debian の RFP(Request For Package) みたいな のあるのかな ?
• とりあえず日本語 ML で訊いてみた • http://lists.opensuse.org/opensuse-ja/2014-06/msg 00031.html • 回答 : http://lists.opensuse.org/opensuse-ja/2014-06/msg 00032.html
openFATE という方法と opensuse- factory ML があるらしい • openFATE (https://features.opensuse.org/) •
package リクエストの投票システムのようなもの • あまり機能していないらしい • openSUSE Factory (http://ja.opensuse.org/Factory_Distribution) • 要するに開発版 • opensuse-factory ML • openSUSE Factory について議論する ML
opensuse-factory ML に投げてみた • http://lists.opensuse.org/opensuse-factory/201 4-06/msg00068.html
速攻で返事が返ってくる • http://lists.opensuse.org/opensuse-factory/201 4-06/msg00069.html Greg Freemyer
超訳 ( 注 : TOEIC 355 点 ) • 君の文章は、誰か人に頼んでいる文体だけ
ど、 openSUSE はコミュニティなんだよ。 • 自分でやれ ! 言い出しっぺの法則 !!!
何から始めればいいか ? • とりあえずそれも、教えて君になって訊いてみ る。 • http://lists.opensuse.org/opensuse-factory/2014- 06/msg00071.html – openSUSE
Build Service のアカウントを取る。 ( 取得済み ) – パッケージに対して role( 役割 : メンテナ・バグオーナ ) を申請する。 • 今回は bug owner を申請した。 • パッケージに bug があったら連絡が来る ( 損な役回り ?) – パッケージを Factory へ submitrequest する。
イメージ • 第 1 回 Open Build Service 道場 (P.17
参照 ) • http://www.slideshare.net/ftake/1-open-build-service
速攻で decline されました orz • 機械的に decline の判断が下りました。 • どうも
spec ファイルが悪いらしい。 • utilities の etckeeper の version も 1.7 と古い。 • ( 当時 ) 最新は etckeeper-1.12 • なら、最新版に更新するか…
そして初めてソースを見ました • etckeeper はシェルスクリプト ( 他 ) の塊 • 一つのスクリプトは
100 行程度、小さい。 • etckeeper メインスクリプトがサブのスクリプトを呼び出 す。 – 全部で 133 ファイル ( ディレクトリ含む ) • サブスクリプトがメインスクリプトを再帰的に呼び出して たり…。 • そこそこ複雑。 • 意外な発見あり • 対応していないと思っていた機能があったり
対応していないと思っていた機能が • Debian(Ubuntu)/Fedora では APT/YUM を実行 した後、 etckeeper が自動起動する。 •
openSUSE では ZYpp を起動しても etckeeper はスルー • 仕様 ( 未対応 ) かと思っていたけど
あった • ls したら • zypper-etckeeper.py – あるやん ! (2012
年から ) – 今まで動いてなかっただけやん ! • bug でした。 • スクリプトに実行権限がついていませんでした。 • 実行権限をつけると動く。 – けど、まだなんかおかしい。 • upstream に pullrequest • 速攻で update されました w
ここでいきなり etckeeper の使い方 • Usage: etckeeper [subcommand] [args...] • eg.
etckeeper commit • /etc/etckeeper/[subcommand].d/ ディレクトリ 配下のスクリプトを順番に実行する。
じゃあ、こんなことをしてみたら • etckeeper ../init restart • デーモンを再起動しようとする w • 変じゃね
? • とりあえず、 [subcommand] に「 ../ 」が入っ ていないかチェックする処理を入れました。 • pullrequest しました。 • https://github.com/joeyh/etckeeper/pull/14
するとある方からご意見が • 超訳 ( 注 : TOEIC355 点 ) •
etckeeper のバグではなく、使い方の問題だろう。 • 「 ../ 」を禁止すべきではない。 • 裏ワザだって技だ ! それが UNIX だ ! alerque まさかの宗教戦争勃発か ?!
いきなりの緊張緩和 w • あっさり修正されました。 • pullrequest したコードよりもより厳しいチェッ クが入りました。 • egrep
'[^-a-z_]'
その後様々な修正が pullrequest さ れるのであった • その一部 • https://github.com/joeyh/etckeeper/pull/12 (decline) •
https://github.com/joeyh/etckeeper/pull/14 (merged) • https://github.com/joeyh/etckeeper/pull/15 (merged) (rpmlint) • https://github.com/joeyh/etckeeper/pull/16 (merged) (rpmlint) • https://github.com/joeyh/etckeeper/pull/17 (pending) • https://github.com/joeyh/etckeeper/pull/18 (pending) • 小さな変更は merge されるけど、大きな変更は pending に なってしまう。 • merge するとも decline とも伝えてくれない。 • mail には答えてもらえない。
ZYpp プラグインが遅い • 先述の実行権限をつけることで plugin は動き出した。 • でも遅い。 • zypper
が 30 秒でタイムアウトを起こす。 • 調べてみた • etckeeper は APT/YUM/ZYpp の動作前後でパッケージのリストを取得す る。 (rpm -qa を前後 2 回 ) – 差分を取って追加・削除されたパッケージを VCS の log に残す。 – これが遅い、 30 秒以上かかる。 • パッケージリストを log に残さない設定ができるように patch を書いた (pull/17) • upstream には取り込まれず (pending) • ひょっとすると openSUSE の rpm の bug かも ( 未調査 )
ZYpp だけでなく YUM にも対応し たい • openSUSE は ZYpp だけではなく
YUM にも一 応対応している。 • でも etckeeper は 2 つの packagemanager の混 在を想定していない。 • 修正を書いた (pull/18) • でも ( 変更が大きすぎて )upstream には取り込 まれず。
どうにか完成 • 2014 年 08 月 16 日 ( つまり昨日
) utilities に submitrequest • 2014 年 08 月 17 日 ( 今日 ) • utilities は accept – 変更は utilities プロジェクトに取り込まれました。 • 2014 年 08 月 17 日 • Factory へ submitrequest • 現在審査中
ところで Joey Hess ってどんな人 ? • http://joeyh.name/code/ • なんと debhelper
もこの人の作 • 多分お忙しいんですよね • dis ってごめんなさい
所感 • 言い出しっぺの法則こわい w • 英語が解らなくても何とかなる。 • 思ったよりいけてない ! •
意外と泥臭い FLOSS の世界 • 逆に考えるんだ ! • 活躍の場はかえって大きいと言えるんじゃね ? • お気に入りのソフトを見つけてソースを追っか けてみるといいよ。 !
最後に •ソースは友達 !
参考資料 •