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
January 10, 2015
Technology
110
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 2).
Mitsutoshi NAKANO
January 10, 2015
More Decks by Mitsutoshi NAKANO
See All by Mitsutoshi NAKANO
FreeWnn に patch が送られてきた、どうしよう
mitsutoshinakano
1
330
What is LPIC
mitsutoshinakano
0
160
Managed your slides by Git and upload them
mitsutoshinakano
0
220
I want to package The etckeeper to The openSUSE (version 1).
mitsutoshinakano
0
87
Tests and bugreports
mitsutoshinakano
0
44
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
社内 AI エージェント Synapse と セマンティックレイヤーの育て方
hiroakis
2
1.6k
Disciplined Vibes: Scaling AI-Assisted Engineering
sheharyar
0
120
AIの性能が向上しても未解決な組織の重大問題は何か?/An Unsolved Organizational Problem in the Age of AI
moriyuya
3
590
やさしいA2A入門
minorun365
PRO
10
1.6k
白金鉱業Meetup_Vol.24_「AIエージェントは分けるほど良い」は本当か? / Is it true that “the more you divide AI agents, the better”?
brainpadpr
1
200
Chainlitで作るお手軽チャットUI
ynt0485
0
110
AGENTS.mdとSkillsで始めるAIエージェント活用
sonoda_mj
2
190
中期計画、2回作ってみた ~業務委託と正社員、両方の視点から~
demaecan
1
620
AAIFに入ってみた ~内から見えるコミュニティ動向~
sato4
0
130
個人最適 から 全体最適 へ AI情報共有会・AIギルド・AI-DLC で進める カンリーの組織展開
rfdnxbro
0
2.2k
手塩にかけりゃいいってもんじゃない
ming_ayami
0
210
小さく始める AI 活用推進 ― 日経電子版 Web チームの事例/nikkei-tech-talk47
nikkei_engineer_recruiting
0
150
Featured
See All Featured
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
330
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
A Modern Web Designer's Workflow
chriscoyier
698
190k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
200
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
1.7k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.9k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
Making the Leap to Tech Lead
cromwellryan
135
9.9k
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
Transcript
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
• https://plus.google.com/116024680042537520422/posts • http://mixi.jp/show_profile.pl?id=789759 • ただ今求職中 • TOEIC 355 点 ( 有意性切れてます ) • 英語は話せない ( はず )
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.com/ • /etc の下を (git など )VCS で管理 • /etc をいじったら、手動で起動 • cron で自動起動 • YUM/APT/ZYpp/DNF と連携、自動起動 • おかしくなったら旧バージョンと見比べてトラブルシュート • @_hito_ さんもおすすめ • 『 Ubuntu Server 実践バイブル 現場で即運用に役立つサービス設定のノウハウ』 • http://www.amazon.co.jp/dp/4048866877 • Debian/Ubuntu/Fedora で公式リポジトリに入っている
7 でも • openSUSE の公式リポジトリにはない • 非公式 (utilities) リポジトリにはある。 •
いちいち非公式リポジトリから取ってくるのも 面倒 ? • なら、公式リポジトリに入れてもらえるようお 願いすればいいんじゃね ?
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 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 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
Build Service のアカウントを取る。 ( 取得済み ) – パッケージに対して role( 役割 : メンテナ・バグオーナ ) を申請する。 • 今回は bug owner を申請した。 • パッケージに bug があったら連絡が来る ( 損な役回り ?) – パッケージを Factory へ submitrequest する。
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 と古い。 • ( 当時 ) 最新は etckeeper-1.12 • (2015-Jan.-09 現在 etckeeper-1.17) • なら、最新版に更新するか…
16 そして初めてソースを見ました • Etckeeper-1.12 はシェルスクリプト ( 他 ) の塊 •
一つのスクリプトは 100 行程度、小さい。 • etckeeper メインスクリプトがサブのスクリプトを呼び出 す。 – 全部で 133 ファイル ( ディレクトリ含む ) • サブスクリプトがメインスクリプトを再帰的に呼び出して たり…。 • そこそこ複雑。 • 意外な発見あり • 対応していないと思っていた機能があったり
17 対応していないと思っていた機能が • Debian(Ubuntu)/Fedora では APT/YUM を実行 した後、 etckeeper が自動起動する。
• openSUSE では ZYpp を起動しても etckeeper はスルー • 仕様 ( 未対応 ) かと思っていたけど
18 あった • ls したら • zypper-etckeeper.py – あるやん !
(2012 年から ) – 今まで動いてなかっただけやん ! • bug でした。 • スクリプトに実行権限がついていませんでした。 • 実行権限をつけると動く。 – けど、まだなんかおかしい。 • upstream に pullrequest • 速攻で update されました w
19 ここでいきなり etckeeper の使い方 • Usage: etckeeper [subcommand] [args...] •
eg. etckeeper commit • /etc/etckeeper/[subcommand].d/ ディレクトリ 配下のスクリプトを順番に実行する。
20 じゃあ、こんなことをしてみたら • etckeeper ../init restart • デーモンを再起動しようとする w •
変じゃね ? • とりあえず、 [subcommand] に「 ../ 」が入っ ていないかチェックする処理を入れました。 • pullrequest しました。 • https://github.com/joeyh/etckeeper/pull/14
21 するとある方からご意見が • 超訳 ( 注 : TOEIC355 点 )
• etckeeper のバグではなく、使い方の問題だろう。 • 「 ../ 」を禁止すべきではない。 • 裏ワザだって技だ ! それが UNIX だ ! alerque まさかの宗教戦争勃発か ?!
22 いきなりの緊張緩和 w • あっさり修正されました。 • pullrequest したコードよりもより厳しいチェッ クが入りました。 •
egrep '[^-a-z_]'
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 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 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 なんで困るのか ? • ZYpp がプラグイン zypper-etckeeper.py を呼び 出す。 •
zypper-etckeeper.py が etckeeper を呼び出 し、 VCS(git) を起動する。 • 但し ZYpp プラグインのタイムリミットは 30 秒 ( デフォルト ) • 30 秒を過ぎるとプラグインごと SIGKILL される。 • git commit の最中に SIGKILL されたら… • 想像するのもヤダ w
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 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 どうにか完成 • 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 どんどん進化する etckeeper • DNF にも対応したよ。 • Upstream の URL
が変わったよ。 • http://etckeeper.branchable.com/ • GitHub への pullrequest に代わってこっちを使って ね !(Joey) ( 超訳 TOEIC355 点 ) • でも使い方が解らん ( 私も alerque も ) – https://github.com/joeyh/etckeeper/pull/26#issuecomment-68162884 – 返事がない…。
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 ところで Joey Hess ってどんな人 ? • http://joeyh.name/code/ • なんと
debhelper も Ikiwiki もこの人の作 • 多分お忙しいんですよね • dis ってごめんなさい
33 所感 • 言い出しっぺの法則こわい w • 英語が解らなくても何とかなる。 • 思ったよりいけてない !
• 意外と泥臭い FLOSS の世界 • 逆に考えるんだ ! • 活躍の場はかえって大きいと言えるんじゃね ? • お気に入りのソフトを見つけてソースを追っかけてみるといい よ。 ! • openSUSE Build Service なら簡単に package 化することが できるよ ( 宣伝 )
34 最後に • ソースは友達 ! • どうしようもなくなったら ML 等で助けを求めよう !
• もちろん詳細に説明する 必要はあるけどね