Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
1
etckeeper を openSUSE の公式リポ
ジトリに入れたいぞ ! Ver.2
中野充敏 (@ItSANgo)
2
改版履歴
●
2014-Aug.-17 Ver.1 公開
●
2015-Jan.-10 Ver.2 発表
●
Ver.2 での追加・変更箇所は赤色で表示されている
よ。
Who am I
● 中野充敏 @ItSANgo
● http://d.hanena.ne.jp/Itisango/
● http://www.facebook.com/profile.php?id=100005833863069
● http...
4
予習
●
「 etckeeper を openSUSE の公式リポジトリ
に入れたいぞ ! 」
● http://www.slideshare.net/MitsutoshiNakano/etckeeper-38070309
●
予習してきま...
5
何を話すか
●
etckeeper について
●
2014 年 8 月から今日 (2015 年 01 月 10 日 ) ま
でに起こったことをかいつまんで
●
というか、資料流用しているよ、いい加減な奴
w
●
予習してこなかった人は黒い部...
6
etckeeper って何
●
Joey Hess が書いたユーティリティ
●
URL が変わりました。
● http://joeyh.name/code/etckeeper/
● → http://etckeeper.branchable...
7
でも
●
openSUSE の公式リポジトリにはない
●
非公式 (utilities) リポジトリにはある。
●
いちいち非公式リポジトリから取ってくるのも
面倒 ?
●
なら、公式リポジトリに入れてもらえるようお
願いすればいいんじゃね...
8
お願いするにはどうすればいいの
●
Debian の RFP(Request For Package) みたい
なのあるのかな ?
●
とりあえず日本語 ML で訊いてみた
● http://lists.opensuse.org/opens...
9
openFATE という方法と opensuse-
factory ML があるらしい
● openFATE (https://features.opensuse.org/)
●
package リクエストの投票システムのようなもの
●
あ...
10
opensuse-factory ML に投げてみた
● http://lists.opensuse.org/opensuse-factory/2014-06/msg00068.html
11
速攻で返事が返ってくる
● http://lists.opensuse.org/opensuse-factory/2014-06/msg00069.html
Greg Freemyer
12
超訳 ( 注 : TOEIC 355 点 )
●
君の文章は、誰か人に頼んでいる文体だけ
ど、 openSUSE はコミュニティなんだよ。
●
自分でやれ !
言い出しっぺの法則 !!!
13
何から始めればいいか ?
●
とりあえずそれも、教えて君になって訊いてみ
る。
● http://lists.opensuse.org/opensuse-factory/2014-06/msg00071.html
– openSUSE B...
14
イメージ
●
第 1 回 Open Build Service 道場 (P.17 参照 )
● http://www.slideshare.net/ftake/1-open-build-service
15
速攻で decline されました orz
●
機械的に decline の判断が下りました。
●
どうも spec ファイルが悪いらしい。
●
utilities の etckeeper の version も 1.7 と古い。
●
(...
16
そして初めてソースを見ました
●
Etckeeper-1.12 はシェルスクリプト ( 他 ) の塊
●
一つのスクリプトは 100 行程度、小さい。
●
etckeeper メインスクリプトがサブのスクリプトを呼び出
す。
– 全部で ...
17
対応していないと思っていた機能が
●
Debian(Ubuntu)/Fedora では APT/YUM を実行
した後、 etckeeper が自動起動する。
●
openSUSE では ZYpp を起動しても etckeeper
はスル...
18
あった
●
ls したら
● zypper-etckeeper.py
– あるやん ! (2012 年から )
– 今まで動いてなかっただけやん !
●
bug でした。
●
スクリプトに実行権限がついていませんでした。
●
実行権限をつ...
19
ここでいきなり etckeeper の使い方
● Usage: etckeeper [subcommand] [args...]
● eg. etckeeper commit
●
/etc/etckeeper/[subcommand].d...
20
じゃあ、こんなことをしてみたら
● etckeeper ../init restart
●
デーモンを再起動しようとする w
●
変じゃね ?
●
とりあえず、 [subcommand] に「 ../ 」が入っ
ていないかチェックする処理...
21
するとある方からご意見が
●
超訳 ( 注 : TOEIC355 点 )
●
etckeeper のバグではなく、使い方の問題だろう。
●
「 ../ 」を禁止すべきではない。
●
裏ワザだって技だ ! それが UNIX だ !
aler...
22
いきなりの緊張緩和 w
●
あっさり修正されました。
●
pullrequest したコードよりもより厳しいチェッ
クが入りました。
● egrep '[^-a-z_]'
23
その後様々な修正が pullrequest さ
れるのであった
●
その一部
● https://github.com/joeyh/etckeeper/pull/12 (decline)
● https://github.com/joey...
24
ZYpp プラグインが遅い (pull/17)
●
先述の実行権限をつけることで plugin は動き出した。
●
でも遅い。
●
zypper が 30 秒でタイムアウトを起こす。
●
調べてみた
●
etckeeper は APT/Y...
25
openSUSE の RPM が遅い
●
09 月 10 日に Joey から回答がありました。
● https://github.com/joeyh/etckeeper/pull/17#issuecomment-55059127
●
超...
26
なんで困るのか ?
●
ZYpp がプラグイン zypper-etckeeper.py を呼び
出す。
●
zypper-etckeeper.py が etckeeper を呼び出
し、 VCS(git) を起動する。
●
但し ZYpp...
27
皆さんに time rpm -qa | wc してもら
いました。
●
皆さんの環境でも再現するか否かを確認する意味も込めて
● http://lists.opensuse.org/opensuse-ja/2014-09/msg00012...
28
ZYpp だけでなく YUM にも対応し
たい (pull/18)
●
openSUSE は ZYpp だけではなく YUM にも一応対応している。
●
Fedora も YUM だけではなく DNF もあるし。
●
でも etckeep...
29
どうにか完成
●
2014 年 08 月 16 日 ( つまり Ver.1 発表前日 )
utilities に submitrequest
●
2014 年 08 月 17 日 (Ver.1 発表日 )
●
utilities は ac...
30
どんどん進化する etckeeper
●
DNF にも対応したよ。
●
Upstream の URL が変わったよ。
● http://etckeeper.branchable.com/
●
GitHub への pullrequest に...
31
http://etckeeper.branchable.com/
について
●
branchable.com は Ikiwiki で実装されているらしい。
● https://ikiwiki.info/
●
Ikiwiki は Wiki ...
32
ところで Joey Hess ってどんな人 ?
● http://joeyh.name/code/
●
なんと debhelper も Ikiwiki もこの人の作
●
多分お忙しいんですよね
●
dis ってごめんなさい
33
所感
●
言い出しっぺの法則こわい w
●
英語が解らなくても何とかなる。
●
思ったよりいけてない !
●
意外と泥臭い FLOSS の世界
●
逆に考えるんだ !
●
活躍の場はかえって大きいと言えるんじゃね ?
●
お気に入りのソフ...
34
最後に
●
ソースは友達 !
●
どうしようもなくなったら
ML 等で助けを求めよう !
●
もちろん詳細に説明する
必要はあるけどね
Upcoming SlideShare
Loading in …5
×

etckeeperをopenSUSEの公式リポジトリに入れたいぞ! Ver.2

759 views

Published on

This is a sequel to http://www.slideshare.net/MitsutoshiNakano/etckeeper-38070309 .
I gave the presentation in http://lilo.doorkeeper.jp/events/18987 .

Published in: Software
  • Be the first to comment

etckeeperをopenSUSEの公式リポジトリに入れたいぞ! Ver.2

  1. 1. 1 etckeeper を openSUSE の公式リポ ジトリに入れたいぞ ! Ver.2 中野充敏 (@ItSANgo)
  2. 2. 2 改版履歴 ● 2014-Aug.-17 Ver.1 公開 ● 2015-Jan.-10 Ver.2 発表 ● Ver.2 での追加・変更箇所は赤色で表示されている よ。
  3. 3. Who am I ● 中野充敏 @ItSANgo ● http://d.hanena.ne.jp/Itisango/ ● http://www.facebook.com/profile.php?id=100005833863069 ● https://plus.google.com/116024680042537520422/posts ● http://mixi.jp/show_profile.pl?id=789759 ● ただ今求職中 ● TOEIC 355 点 ( 有意性切れてます ) ● 英語は話せない ( はず )
  4. 4. 4 予習 ● 「 etckeeper を openSUSE の公式リポジトリ に入れたいぞ ! 」 ● http://www.slideshare.net/MitsutoshiNakano/etckeeper-38070309 ● 予習してきました ? ● 予習してないと何のことかわからないよ !
  5. 5. 5 何を話すか ● etckeeper について ● 2014 年 8 月から今日 (2015 年 01 月 10 日 ) ま でに起こったことをかいつまんで ● というか、資料流用しているよ、いい加減な奴 w ● 予習してこなかった人は黒い部分を読むといいよ。
  6. 6. 6 etckeeper って何 ● Joey Hess が書いたユーティリティ ● URL が変わりました。 ● http://joeyh.name/code/etckeeper/ ● → http://etckeeper.branchable.com/ ● /etc の下を (git など )VCS で管理 ● /etc をいじったら、手動で起動 ● cron で自動起動 ● YUM/APT/ZYpp/DNF と連携、自動起動 ● おかしくなったら旧バージョンと見比べてトラブルシュート ● @_hito_ さんもおすすめ ● 『 Ubuntu Server 実践バイブル 現場で即運用に役立つサービス設定のノウハウ』 ● http://www.amazon.co.jp/dp/4048866877 ● Debian/Ubuntu/Fedora で公式リポジトリに入っている
  7. 7. 7 でも ● openSUSE の公式リポジトリにはない ● 非公式 (utilities) リポジトリにはある。 ● いちいち非公式リポジトリから取ってくるのも 面倒 ? ● なら、公式リポジトリに入れてもらえるようお 願いすればいいんじゃね ?
  8. 8. 8 お願いするにはどうすればいいの ● Debian の RFP(Request For Package) みたい なのあるのかな ? ● とりあえず日本語 ML で訊いてみた ● http://lists.opensuse.org/opensuse-ja/2014-06/msg00031.html ● 回答 : http://lists.opensuse.org/opensuse-ja/2014-06/msg00032.html
  9. 9. 9 openFATE という方法と opensuse- factory ML があるらしい ● openFATE (https://features.opensuse.org/) ● package リクエストの投票システムのようなもの ● あまり機能していないらしい ● openSUSE Factory (http://ja.opensuse.org/Factory_Distribution) ● 要するに開発版 ● opensuse-factory ML ● openSUSE Factory について議論する ML
  10. 10. 10 opensuse-factory ML に投げてみた ● http://lists.opensuse.org/opensuse-factory/2014-06/msg00068.html
  11. 11. 11 速攻で返事が返ってくる ● http://lists.opensuse.org/opensuse-factory/2014-06/msg00069.html Greg Freemyer
  12. 12. 12 超訳 ( 注 : TOEIC 355 点 ) ● 君の文章は、誰か人に頼んでいる文体だけ ど、 openSUSE はコミュニティなんだよ。 ● 自分でやれ ! 言い出しっぺの法則 !!!
  13. 13. 13 何から始めればいいか ? ● とりあえずそれも、教えて君になって訊いてみ る。 ● http://lists.opensuse.org/opensuse-factory/2014-06/msg00071.html – openSUSE Build Service のアカウントを取る。 ( 取得済み ) – パッケージに対して role( 役割 : メンテナ・バグオーナ ) を申請する。 ● 今回は bug owner を申請した。 ● パッケージに bug があったら連絡が来る ( 損な役回り ?) – パッケージを Factory へ submitrequest する。
  14. 14. 14 イメージ ● 第 1 回 Open Build Service 道場 (P.17 参照 ) ● http://www.slideshare.net/ftake/1-open-build-service
  15. 15. 15 速攻で decline されました orz ● 機械的に decline の判断が下りました。 ● どうも spec ファイルが悪いらしい。 ● utilities の etckeeper の version も 1.7 と古い。 ● ( 当時 ) 最新は etckeeper-1.12 ● (2015-Jan.-09 現在 etckeeper-1.17) ● なら、最新版に更新するか…
  16. 16. 16 そして初めてソースを見ました ● Etckeeper-1.12 はシェルスクリプト ( 他 ) の塊 ● 一つのスクリプトは 100 行程度、小さい。 ● etckeeper メインスクリプトがサブのスクリプトを呼び出 す。 – 全部で 133 ファイル ( ディレクトリ含む ) ● サブスクリプトがメインスクリプトを再帰的に呼び出して たり…。 ● そこそこ複雑。 ● 意外な発見あり ● 対応していないと思っていた機能があったり
  17. 17. 17 対応していないと思っていた機能が ● Debian(Ubuntu)/Fedora では APT/YUM を実行 した後、 etckeeper が自動起動する。 ● openSUSE では ZYpp を起動しても etckeeper はスルー ● 仕様 ( 未対応 ) かと思っていたけど
  18. 18. 18 あった ● ls したら ● zypper-etckeeper.py – あるやん ! (2012 年から ) – 今まで動いてなかっただけやん ! ● bug でした。 ● スクリプトに実行権限がついていませんでした。 ● 実行権限をつけると動く。 – けど、まだなんかおかしい。 ● upstream に pullrequest ● 速攻で update されました w
  19. 19. 19 ここでいきなり etckeeper の使い方 ● Usage: etckeeper [subcommand] [args...] ● eg. etckeeper commit ● /etc/etckeeper/[subcommand].d/ ディレクトリ 配下のスクリプトを順番に実行する。
  20. 20. 20 じゃあ、こんなことをしてみたら ● etckeeper ../init restart ● デーモンを再起動しようとする w ● 変じゃね ? ● とりあえず、 [subcommand] に「 ../ 」が入っ ていないかチェックする処理を入れました。 ● pullrequest しました。 ● https://github.com/joeyh/etckeeper/pull/14
  21. 21. 21 するとある方からご意見が ● 超訳 ( 注 : TOEIC355 点 ) ● etckeeper のバグではなく、使い方の問題だろう。 ● 「 ../ 」を禁止すべきではない。 ● 裏ワザだって技だ ! それが UNIX だ ! alerque まさかの宗教戦争勃発か ?!
  22. 22. 22 いきなりの緊張緩和 w ● あっさり修正されました。 ● pullrequest したコードよりもより厳しいチェッ クが入りました。 ● egrep '[^-a-z_]'
  23. 23. 23 その後様々な修正が 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 (decline) ● https://github.com/joeyh/etckeeper/pull/18 (decline) ● 小さな変更は merge されるけど、大きな変更は pending になってし まう。 ● merge するとも decline とも伝えてくれない。 – 一応 decline されました。 (2014-Jan.-09 現在 ) ● mail には答えてもらえない。
  24. 24. 24 ZYpp プラグインが遅い (pull/17) ● 先述の実行権限をつけることで plugin は動き出した。 ● でも遅い。 ● zypper が 30 秒でタイムアウトを起こす。 ● 調べてみた ● etckeeper は APT/YUM/ZYpp の動作前後でパッケージのリストを取得す る。 (rpm -qa を前後 2 回 ) – 差分を取って追加・削除されたパッケージを VCS の log に残す。 – これが遅い、 30 秒以上かかる。 ● パッケージリストを log に残さない設定ができるように patch を書いた (pull/17) ● upstream には取り込まれず (decline) ● ひょっとすると openSUSE の rpm の bug かも ( ちょっと調べました )
  25. 25. 25 openSUSE の RPM が遅い ● 09 月 10 日に Joey から回答がありました。 ● https://github.com/joeyh/etckeeper/pull/17#issuecomment-55059127 ● 超訳 ( 注 :TOEIC355 点 ) – お前の言っていることの意味が解らん。 – 環境が悪いだけじゃないの ? ● Aleque さんからもコメントが… ● https://github.com/joeyh/etckeeper/pull/17#issuecomment-55078734 ● 超訳 : ( 小笠原さん ) – http://lists.opensuse.org/opensuse-ja/2014-09/msg00013.html – タイムアウトするってどういう意味(で、どういうシナリオでそれ が起きるの)? – それで etckeeper がなんで困るの?
  26. 26. 26 なんで困るのか ? ● ZYpp がプラグイン zypper-etckeeper.py を呼び 出す。 ● zypper-etckeeper.py が etckeeper を呼び出 し、 VCS(git) を起動する。 ● 但し ZYpp プラグインのタイムリミットは 30 秒 ( デフォルト ) ● 30 秒を過ぎるとプラグインごと SIGKILL される。 ● git commit の最中に SIGKILL されたら… ● 想像するのもヤダ w
  27. 27. 27 皆さんに time rpm -qa | wc してもら いました。 ● 皆さんの環境でも再現するか否かを確認する意味も込めて ● http://lists.opensuse.org/opensuse-ja/2014-09/msg00012.html ● http://lists.opensuse.org/opensuse-factory/2014-09/msg00223.html ● 一瞬で返ってくるマシンもあれば 1 分以上かかる環境もあり ● http://lists.opensuse.org/opensuse-factory/2014-09/msg00230.html ● 長いスレッドになりました。 ● DB 周りに問題があるらしく、 Bug 票も起こされました。 ● https://bugzilla.opensuse.org/show_bug.cgi?id=897353 – WONTFIX になってる orz ● openSUSE だけではなく RPM 系ディストリが共通に持っている問題の可能 性あり (pull/17)
  28. 28. 28 ZYpp だけでなく YUM にも対応し たい (pull/18) ● openSUSE は ZYpp だけではなく YUM にも一応対応している。 ● Fedora も YUM だけではなく DNF もあるし。 ● でも etckeeper は 2 つの packagemanager の混在を想定していな い。 ● 修正を書いた (pull/18) ● でも変更忘れのファイルがあるとして upstream には取り込まれず。 ● .spec ファイルの変更を忘れていると言われたんだけど… ● TODO には載った。 ● http://etckeeper.branchable.com/todo/multiple_highlevel_package_managers/ ● 変更作業はそのうちやります。 ( 但し後述 )
  29. 29. 29 どうにか完成 ● 2014 年 08 月 16 日 ( つまり Ver.1 発表前日 ) utilities に submitrequest ● 2014 年 08 月 17 日 (Ver.1 発表日 ) ● utilities は accept – 変更は utilities プロジェクトに取り込まれました。 ● 2014 年 08 月 17 日 ● Factory へ submitrequest – https://build.opensuse.org/request/show/245241 ● accept されました。 (08 月 25 日 ) – 2 回ほど decline されましたが、細かな修正で対応 ● openSUSE 13.2 には etckeeper-1.13 が入っています。
  30. 30. 30 どんどん進化する etckeeper ● DNF にも対応したよ。 ● Upstream の URL が変わったよ。 ● http://etckeeper.branchable.com/ ● GitHub への pullrequest に代わってこっちを使って ね !(Joey) ( 超訳 TOEIC355 点 ) ● でも使い方が解らん ( 私も alerque も ) – https://github.com/joeyh/etckeeper/pull/26#issuecomment-68162884 – 返事がない…。
  31. 31. 31 http://etckeeper.branchable.com/ について ● branchable.com は Ikiwiki で実装されているらしい。 ● https://ikiwiki.info/ ● Ikiwiki は Wiki を git で管理するシステムらしい。 ● Wiki そのものが git リポジトリになっているイメージ ● git clone git://etckeeper.branchable.com/ で etckeeper が落ちて くる。 ● Wiki の内容自体が doc/ ディレクトリに格納される。 ● TODO にコメントすると、 commit される。 ● Wiki にコメントされるたびにハッシュ値が変わるってどう よ ?
  32. 32. 32 ところで Joey Hess ってどんな人 ? ● http://joeyh.name/code/ ● なんと debhelper も Ikiwiki もこの人の作 ● 多分お忙しいんですよね ● dis ってごめんなさい
  33. 33. 33 所感 ● 言い出しっぺの法則こわい w ● 英語が解らなくても何とかなる。 ● 思ったよりいけてない ! ● 意外と泥臭い FLOSS の世界 ● 逆に考えるんだ ! ● 活躍の場はかえって大きいと言えるんじゃね ? ● お気に入りのソフトを見つけてソースを追っかけてみるといい よ。 ! ● openSUSE Build Service なら簡単に package 化することが できるよ ( 宣伝 )
  34. 34. 34 最後に ● ソースは友達 ! ● どうしようもなくなったら ML 等で助けを求めよう ! ● もちろん詳細に説明する 必要はあるけどね

×