rabbit-slide-kenhys-tokyodebian-d-i-netcfg-202503 2025.03.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 16a8f683df7a913a2cefaf461455edfc0e599426fcce00e57f6db517de35e173
4
+ data.tar.gz: 0602f9af498b5c4ca7fea3c0aaf2fd8435746a6dead5542ef25cbf8262f5bcea
5
+ SHA512:
6
+ metadata.gz: 341125266bf66a9a2714eac55686ac05e011ce082f0bedb1084c51fba36e02645afa8ec004fb0489a4baa6d6932c544f78f655de0054edcaba4c9c86591effbd
7
+ data.tar.gz: 1cda1f77fdd9383e6a9183924ad6ba918d8fe88eaca0f8e4032597b9664bf63073d43a74a0714a3a9b8ef104acbac95c8dea93f41c0c8627d8177376167f16f7
data/.rabbit ADDED
@@ -0,0 +1 @@
1
+ --size=1920,1080 d-i-netcfg.md
data/README.md ADDED
@@ -0,0 +1,16 @@
1
+ # Tokyo Debian Local Meeting Presentation 2025/03
2
+
3
+ ## How to show
4
+
5
+ % rabbit
6
+
7
+ ## How to install
8
+
9
+ % gem install rabbit-slide-kenhys-tokyodebian-d-i-netcfg
10
+
11
+ ## How to create PDF
12
+
13
+ % rake pdf
14
+
15
+ # References
16
+
data/Rakefile ADDED
@@ -0,0 +1,35 @@
1
+ require "rabbit/task/slide"
2
+
3
+ # Edit ./config.yaml to customize meta data
4
+
5
+ spec = nil
6
+ Rabbit::Task::Slide.new do |task|
7
+ spec = task.spec
8
+ # spec.files += Dir.glob("doc/**/*.*")
9
+ # spec.files -= Dir.glob("private/**/*.*")
10
+ # spec.add_runtime_dependency("rabbit-theme-YOUR-THEME")
11
+ end
12
+
13
+ desc "Preview"
14
+ task :preview do
15
+ sh("rabbit", "-w", "1024", "-h", "768")
16
+ end
17
+
18
+ desc "Tag #{spec.version}"
19
+ task :tag do
20
+ sh("git", "tag", "-a", spec.version.to_s, "-m", "Publish #{spec.version}")
21
+ sh("git", "push", "--tags")
22
+ end
23
+
24
+ desc "Extract slide as a image"
25
+ task :extract do
26
+ 9.times do |i|
27
+ sh("pdftk", "slides.pdf", "cat", "#{i+1}", "output", "images/slides#{i+1}.pdf")
28
+ sh("pdftocairo", "-png", "-singlefile", "images/slides#{i+1}.pdf", "images/slides#{i+1}")
29
+ end
30
+ end
31
+
32
+ desc "Show mini slide to preview"
33
+ task :minislide do
34
+ sh("rabbit", "-w", "960", "-h", "540")
35
+ end
data/config.yaml ADDED
@@ -0,0 +1,25 @@
1
+ ---
2
+ id: tokyodebian-d-i-netcfg-202503
3
+ base_name: d-i-netcfg
4
+ tags:
5
+ - rabbit
6
+ - debian
7
+ - debian-installer
8
+ presentation_date: 2025-03-15
9
+ presentation_start_time:
10
+ presentation_end_time:
11
+ slideshare_id:
12
+ version: 2025.03.15.1
13
+ licenses:
14
+ - CC-BY-SA-4.0
15
+ slideshare_id: kenhys
16
+ speaker_deck_id:
17
+ vimeo_id:
18
+ youtube_id:
19
+ author:
20
+ markup_language: :md
21
+ name: Kentaro Hayashi
22
+ email: kenhys@gmail.com
23
+ rubygems_user: kenhys
24
+ slideshare_user:
25
+ speaker_deck_user: kenhys
data/d-i-netcfg.md ADDED
@@ -0,0 +1,202 @@
1
+ # Debian Installerが\\nミラー選択で\\n刺さる問題をどうにかする
2
+
3
+ subtitle
4
+ : Debian installerとnetcfgとIPv6の話
5
+
6
+ author
7
+ : Kentaro Hayashi
8
+
9
+ institution
10
+ : ClearCode Inc.
11
+
12
+ content-source
13
+ : 2025年3月 東京エリア・関西合同Debian勉強会
14
+
15
+ allotted-time
16
+ : 15m
17
+
18
+ theme
19
+ : .
20
+
21
+ # スライドは\\nRabbit Slide Showにて公開済み
22
+
23
+ * Debian Installerがミラー選択で刺さる問題を解決する
24
+ * {::note}<https://slide.rabbit-shocker.org/authors/kenhys/tokyodebian-d-i-netcfg-202503>{:/note}
25
+
26
+ # 本日の内容
27
+
28
+ * 問題に気づいたきっかけ
29
+ * Debian Installerの問題の切り分け
30
+ * どう回避するのか
31
+ * 修正するにはどうするか
32
+
33
+ # 本日の内容
34
+
35
+ * **問題に気づいたきっかけ**
36
+ * Debian Installerの問題の切り分け
37
+ * どう回避するのか
38
+ * 修正するにはどうするか
39
+
40
+ # 問題に気づいたきっかけ(1)
41
+
42
+ * mozc: New upstream release available: 2.30.5544.102
43
+ * <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1085173#40>
44
+ * Mozcが2.28.4715.102+dfsg-2.3から2年くらい更新できてなかった問題😭
45
+ * 2024年11月 Debian勉強会「より新しい Mozc を Debian でも使いたい」
46
+ * <https://tokyodebian-team.pages.debian.net/2024-11.html>
47
+
48
+ # 問題に気づいたきっかけ(2)
49
+
50
+ * Mozc 2.29.5160.102+dfsg-1になんやかんやあって更新した🎉
51
+ * 各種デスクトップ環境で問題ないか確認するのにインストールが必要
52
+
53
+ # 実際にどのようなことが起きるか
54
+
55
+ * Weekly ISOイメージでGraphical Install
56
+ * ベースシステムインストール後、Debianアーカイブミラーとしてdeb.debian.orgを選択
57
+ * 「ミラーを検査しています...」の画面から進まない😱
58
+
59
+ # ミラー選択で刺さったときの\\nスクリーンショット
60
+
61
+ ![](images/mirror-deb-debian-org.png){:relative-height="100"}
62
+
63
+ # 本日の内容
64
+
65
+ * 問題に気づいたきっかけ
66
+ * **Debian Installerの問題の切り分け**
67
+ * どう回避するのか
68
+ * 修正するにはどうするか
69
+
70
+ # Debian Installerの問題の切り分け
71
+
72
+ * Debian Installer(d-i)の内部では何が発生しているのか?
73
+
74
+ * Ctrl+Alt+F2でコンソールに切り替え
75
+ * pingが通るか確認してみる
76
+
77
+ # ネットワークの疎通状況の\\nスクリーンショット
78
+
79
+ ![](images/d-i-ping-failure.png){:relative-height="100"}
80
+
81
+ # ネットワークの疎通状況
82
+
83
+ * ping -4 deb.debian.org
84
+ * ✅ IPv4では疎通できる
85
+ * ping -6 deb.debian.org
86
+ * ❌ IPv6では疎通できない
87
+ * wget http://deb.debian.org (--connection-timeoutあり)
88
+ * IPv6を優先して、IPv4へとフォールバックする挙動
89
+
90
+ # d-iを構成する関連コンポーネント
91
+
92
+ * <https://salsa.debian.org/installer-team/>
93
+ * netcfg
94
+ * ネットワークの設定
95
+ * choose-mirror
96
+ * ミラーの選択をユーザーにさせる
97
+
98
+ # choose-mirrorの内部実装の前提
99
+
100
+ * <https://salsa.debian.org/installer-team/choose-mirror/-/blob/master/choose-mirror.c?ref_type=heads#L274-295/>
101
+ * 前提条件: choose-mirrorでは**wget**を使って選択したミラーからファイルを取得し検証を実施する
102
+
103
+ # wgetのオプションを制御する\\nコードの抜粋
104
+
105
+ ```
106
+ char *get_wget_options(void) {
107
+ char *options;
108
+
109
+ if (wget_is_gnu()) {
110
+ options = strdup("--no-verbose");
111
+ if (strcasecmp(protocol, "https") == 0) {
112
+ debconf_get(debconf, "debian-installer/allow_unauthenticated_ssl");
113
+ if (strcmp(debconf->value, "true") == 0)
114
+ options = append(options, " --no-check-certificate");
115
+ }
116
+ } else {
117
+ if (strcasecmp(protocol, "https") == 0)
118
+ /* We shouldn't normally get here, but let's make it
119
+ * easier to debug in case somebody has hit us over
120
+ * the head with preseeding.
121
+ */
122
+ fputs("busybox wget does not support https\n", stderr);
123
+ options = strdup("-q");
124
+ }
125
+
126
+ return options;
127
+ }
128
+ ```
129
+
130
+ # wgetのオプションを制御するget_wget_options()の問題
131
+
132
+ * get_wget_options()ではタイムアウトオプションを指定していない
133
+ * ネットワークの問題はない前提
134
+ * 疎通できない場合、ただひたすら待つ
135
+ * wgetはIPv6から優先的に接続を試みる
136
+ * **IPv6で疎通できない場合、ただひたすら待つ**💀
137
+
138
+
139
+ # 本日の内容
140
+
141
+ * 問題に気づいたきっかけ
142
+ * Debian Installerの問題の切り分け
143
+ * **どう回避するのか**
144
+ * 修正するにはどうするか
145
+
146
+ # どう回避するのか
147
+
148
+ * choose-mirrorでできること
149
+ * wget --prefer-family=IPv4を指定したらIPv4を優先できる
150
+ * wget --connect-timeoutでタイムアウトしたらフォールバックさせる
151
+ * いずれも根本解決ではない
152
+
153
+ # 既知の問題だったりしないか?
154
+
155
+ * <https://www.virtualbox.org/ticket/22153>
156
+ * Bridge mode with WiFi interface: IPv6 does not work via router
157
+ * VirtualBoxでブリッジ接続した場合に疎通できない問題がある
158
+
159
+ # ひとまずの回避策
160
+
161
+ * ❌VirtualBox + ブリッジ接続(WiFi)
162
+ * ✅VirtualBox + NAT接続(WiFi)
163
+
164
+ # VirtualBox + ブリッジ接続環境での回避策
165
+
166
+ * <https://www.virtualbox.org/ticket/22153>
167
+ * Bridge mode with WiFi interface: IPv6 does not work via router
168
+ * VirtualBoxでブリッジ接続した場合に疎通できない問題がある
169
+ * **ルーターのグローバルアドレスへpingする**
170
+
171
+ # 回避策に関するデモ
172
+
173
+ * インストーラーを起動し回避策(ping)を試す
174
+ * d-i のmasterからビルドしたmini.iso (netboot-gtk)
175
+
176
+ # 本日の内容
177
+
178
+ * 問題に気づいたきっかけ
179
+ * Debian Installerの問題の切り分け
180
+ * どう回避するのか
181
+ * **修正するにはどうするか**
182
+
183
+ # 修正するにはどうするか
184
+
185
+ * choose-mirrorで頑張るのは筋が悪い
186
+ * netcfgで次のような対策をとる
187
+ * グローバルアドレスを頑張って取得して、pingする
188
+ * ip -6 routeやip -6 neighの結果を抽出して対処
189
+ * 複数のネットワークアダプタ有効にされていたりすると面倒🤔
190
+
191
+ # 修正版に関するデモ
192
+
193
+ * インストーラーを起動し修正版(ping)を試す
194
+ * d-i のmasterからビルドしたmini.iso (netboot-gtk)
195
+
196
+ # さいごに
197
+
198
+ * 有線LANでのインストールが安定
199
+ * WiFi環境でDebianインストールは
200
+ * VirtualBox + ブリッジ接続は問題あり
201
+ * VirtualBox + NAT接続が(現状)推奨
202
+ * or IPv4のみのミラー(ftp.jp.debian.org)を選択するとよい
Binary file
Binary file
data/theme.rb ADDED
@@ -0,0 +1,5 @@
1
+ @default_font = "Ubuntu"
2
+ @monospace_font = "Ubuntu"
3
+ include_theme("debian")
4
+ #@slide_show_span = 1300
5
+ @slide_show_loop = true
metadata ADDED
@@ -0,0 +1,66 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-kenhys-tokyodebian-d-i-netcfg-202503
3
+ version: !ruby/object:Gem::Version
4
+ version: 2025.03.15.1
5
+ platform: ruby
6
+ authors:
7
+ - Kentaro Hayashi
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2025-03-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rabbit
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.0.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.0.2
27
+ description: ''
28
+ email:
29
+ - kenhys@gmail.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".rabbit"
35
+ - README.md
36
+ - Rakefile
37
+ - config.yaml
38
+ - d-i-netcfg.md
39
+ - images/d-i-ping-failure.png
40
+ - images/mirror-deb-debian-org.png
41
+ - pdf/tokyodebian-d-i-netcfg-202503-d-i-netcfg.pdf
42
+ - theme.rb
43
+ homepage: https://slide.rabbit-shocker.org/authors/kenhys/tokyodebian-d-i-netcfg-202503/
44
+ licenses:
45
+ - CC-BY-SA-4.0
46
+ metadata: {}
47
+ post_install_message:
48
+ rdoc_options: []
49
+ require_paths:
50
+ - lib
51
+ required_ruby_version: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ required_rubygems_version: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ requirements: []
62
+ rubygems_version: 3.4.19
63
+ signing_key:
64
+ specification_version: 4
65
+ summary: Tokyo Debian Local Meeting Presentation 2025/03
66
+ test_files: []