東京エリア Debian 勉強会
第 128 回 2015 年 7 月度
野島貴英2015 年 7 月 25 日

設営準備にご協力ください。

会場設営よろしくおねがいします。

Agenda

注意事項
写真はセミナールーム内のみ可です。
出入りは自由でないので、もし外出したい方は、野島まで一声くださいませ。

事前課題発表最近あった Debian 関連のイベント報告
第 127 回 東京エリ
ア Debian 勉強会

Debian Trivia Quiz
Debian で HTTP/2 を試す
今後のイベント
今日の宴会場所

事前課題

野島

1

Q.hack time に何をしますか？
A. 性懲りもなく Nook HD+の Debian 化。

2(オプション)Q. 何について聞きたい／参加者と話をしたいですか？
A. 夏休みに Debian で何をする！
？

issei1

Q.hack time に何をしますか？
A. Hurd をインストール

wskoka

1

Q.hack time に何をしますか？
A. tilegx への移植

2(オプション)Q. どこで今回の勉強会の開催を知りましたか？
A. その他

dictoss1

Q.hack time に何をしますか？
A. jessie で動作確認用の lxc コンテナを作って動かしてみる

2(オプション)Q. どこで今回の勉強会の開催を知りましたか？
A. Twitter (debianjp)

nametake1

Q.hack time に何をしますか？
A. Debian 環境構築

2(オプション)Q. どこで今回の勉強会の開催を知りましたか？
A. その他

yy y ja jp

1

Q.hack time に何をしますか？
A. DDTSS2(オプション)Q. 何について聞きたい／参加者と話をしたいですか？
A. DDTSS

koedoyoshida1

Q.hack time に何をしますか？
A. あんどきゅめんてっどでびあん編集

2(オプション)Q. どこで今回の勉強会の開催を知りましたか？
A. その他

イベント報告第 127 回東京エリア Debian 勉強会

場所はスクウェア・エニックスさんのセミナルームをお借りしての開催でした。
参加者は 6 名でした。
セミナ内容は野島さんによる「Debian と脆弱性対応のあれこれ」でした。
残りの時間で hack time を行い、成果発表をしました。
宴会の代わりに、「まいどおおきに食堂」で夕食会をやりました。

第 127 回東京エリア Debian 勉強会 (つづき)

セミナは野島さんより、Debian と脆弱性対応について諸々発表がありました。内容としては、すでに公開されている昨今の件のサマリとなりましたが、会場ではいろいろ議論や、追加の情報をいただくことが出来非常に有意義でした。
また、debian のセキュリティチームから CVE、他のディストリビューションまで OSS の脆弱性の連絡体制ができているのは、さすが沢山の人に支えられているディストリビューションなだけあると思います。

DebianTrivia QuizDebian Trivia Quiz

Debian の常識、もちろん知ってますよね? 知らないなんて恥ずかしくて、知らないとは言えないあんなことやこんなこと、みんなで確認してみましょう。
今回の出題範囲は
debian-devel-announce@lists.debian.org,debian-news@lists.debian.org に投稿された内容などからです。

問題 1. 6/22 にて、backport のチームが、特定の条件を満たすパッケージをごっそり消したのは、どの backports?

A squeeze-backports

B wheezy-backports

C jessie-backports

問題 1. 6/22 にて、backport のチームが、特定の条件を満たすパッケージをごっそり消したのは、どの backports?
答えは:A squeeze-backports

B wheezy-backports

C jessie-backportsB問題 1. 6/22 にて、backport のチームが、特定の条件を満たすパッケージをごっそり消したのは、どの backports?

解説：jessie で利用できないパッケージを、wheezy-backportsからごっそり消したとのことです。backports に含まれるどのパッケージがどうなっているか？どうして欲しいか？については、freeze の期間と freeze 後のわずかな期間の間に、backport 担当から backports チームに自発的にタイムリーに相談して来て欲しいとの勧告も行われました。

問題 2. 7/7 にて、sid では、特定バージョンのGCC と libstdc++でコンパイル・動作出来るようにして欲しい旨のアナウンスが流れました。
どの組み合わせ？

A gcc 6/libstdc++6

B gcc 4/libstdc++5

C gcc 5/libstdc++6

問題 2. 7/7 にて、sid では、特定バージョンのGCC と libstdc++でコンパイル・動作出来るようにして欲しい旨のアナウンスが流れました。
どの組み合わせ？
答えは:A gcc 6/libstdc++6

B gcc 4/libstdc++5

C gcc 5/libstdc++6C問題 2. 7/7 にて、sid では、特定バージョンのGCC と libstdc++でコンパイル・動作出来るようにして欲しい旨のアナウンスが流れました。
どの組み合わせ？
解説：まずは、Debian sid では、gcc 5/libstdc++6 でコンパイル・動作出来るようにパッケージメンテナの方は修正対応をして欲しい旨のアナウンスがありました。今回、ABIベースでも変更になったり、C++11 に対応となったりで影響が諸々発生します。また、この影響で、GFortran 側もmodule 14 へ移行となるので、GFortran を使っているパッケージメンテナも対応が必要とのことです。

問題 3. 7/8 にて、複数の upstream から提供されている libav*群のライブラリについて、提供元の upstream を変更するとの連絡がありました。
どの upstream に変更となったのでしょうか？

A FFmpeg

B libav.org

C VideoLAN

問題 3. 7/8 にて、複数の upstream から提供されている libav*群のライブラリについて、提供元の upstream を変更するとの連絡がありました。
どの upstream に変更となったのでしょうか？
答えは:

A FFmpeg

B libav.org

C VideoLAN

A

問題 3. 7/8 にて、複数の upstream から提供されている libav*群のライブラリについて、提供元の upstream を変更するとの連絡がありました。
どの upstream に変更となったのでしょうか？

解説：libav*というマルチメディアのデータを扱うライブラ
リなのですが、一旦 libav.org が提供しているものに変更となったのですが、また FFmpeg が提供しているものに戻ってきた状況です。議論のサマリはhttps://wiki.debian.org/Debate/libav-provider/ﬀmpeg

問題 4. DPL の Neil MacGovern が reddit に開いた「DPL だけど、何か質問ある？」というスレで、DPL にとっても凄いと思うディストリビューションとしてあげられてたものはどれ？

A 当然 Debianっしょ！

B ArchLinuxC ubuntu

問題 4. DPL の Neil MacGovern が reddit に開いた「DPL だけど、何か質問ある？」というスレで、DPL にとっても凄いと思うディストリビューションとしてあげられてたものはどれ？
答えは:A 当然 Debianっしょ！

B ArchLinuxC ubuntu

B問題 4. DPL の Neil MacGovern が reddit に開いた「DPL だけど、何か質問ある？」というスレで、DPL にとっても凄いと思うディストリビューションとしてあげられてたものはどれ？

解説：スレの住人の質問に、DPL が ArchLinux が凄いと答えていました。wiki の充実ぶりがとにかく素晴らしいとのこと。

問題 5. 7/20 に dgit の新しいバージョンのものがリリースされました。どのバージョンになった？

A 0.1

B 0.3

C 1.0

問題 5. 7/20 に dgit の新しいバージョンのものがリリースされました。どのバージョンになった？
答えは:

A 0.1

B 0.3

C 1.0

C

問題 5. 7/20 に dgit の新しいバージョンのものがリリースされました。どのバージョンになった？

解説：Debian アーカイブを git で操作できるツールの dgit が1.0 がリリースされたとのことです。早速 debian sid に収録されています。dgit clone package 名とすると、https://git.dgit.debian.org/ で管理されているものが手元にclone されます。

問題 6. 7/21 に Debian Installer Stretch Alpha 1がリリースされました。変更点は以下のどれ？

A UEFI ブートを搭載
B ネットワーク IF が MAC アドレスになる
C インストール時の UI が text
モードから graphical モードになった

問題 6. 7/21 に Debian Installer Stretch Alpha 1がリリースされました。変更点は以下のどれ？
答えは:

A UEFI ブートを搭載
B ネットワーク IF が MAC アドレスになる
C インストール時の UI が text
モードから graphical モードになったC

問題 6. 7/21 に Debian Installer Stretch Alpha 1がリリースされました。変更点は以下のどれ？

解説：Strech で利用されるであろう、インストーラプログラ
ムのα 1 がリリースされました。もちろん、Strech がリリースされたわけではないので注意。変更点は数々あり、デフォルトの CPU アーキテクチャが amd64 になったりした。詳し
くは debian-devel-announce を参照

Debian でHTTP/2 を試す

はじめに2015/5 に HTTP/2 が RFC7540 として遂に文章化されました。また、最近でも、ほうぼうで WEB ページあるいはサービスについて、HTTP/2 の対応度合いについて聞かれるようになってきました 1 。
ここでは、Debian で、HTTP/2 の環境をちょっと作って試してみました。

1

某有名携帯電話イベントで HTTP/2 をアプリ開発者に全力推奨している件を見てマヂ慌てたりしたのは秘密...

ところで HTTP/2って？（その 1)

WEB ブラウザがサーバと通信する際に、HTTP/1.x(x は 0,1の数字）が長年 (HTTP/1.1 は 15 年以上も！) 使われています。しかしながら、昨今の WEB ページは、HTTP/1.x が策定された頃に比べて格段にリッチなページとなっており、１ページを表示する為に必要な通信量は格段に増えています。

HTTP/1.x のままでは、WEB の通信が非効率となってしまいました。

ところで HTTP/2って？（その 2)

こちらの欠点を克服するために、google 社で SPDY が開発され、さらに SPDY を参考にして、沢山の人の貢献により、次世代の HTTP 通信規格が策定されました。

これが HTTP/2 となります。

HTTP/2 の特徴 (その 1)

テキスト電文ベースではなく、バイナリ電文を使います。
１本の TCP コネクション上で、複数のリクエスト・レスポンスを多重化してやりとりできるように設計されています。

HTTP/2 の特徴 (その 2)
リクエスト・レスポンスに使われるヘッダ情報を無駄の無い電文にし、さらに圧縮し、より効率的に通信できるようにしています。実はモバイル端末などでは、パケットの往復にかかる時間が長いので、リクエスト・レスポンスの開始１パケット目にできるだけ情報を詰め込むことは通信時間を縮めるのに非常に有効です。
１つのリクエストで、ブラウザが続けて必要とするデータをまとめてレスポンスできる機能が入りました（サーバプッシュという機能。)
詳しくは「初めての HTTP/2 サーバプッシュ」
http://labs.gree.jp/blog/2014/12/11987/

HTTP/2 さらに詳しく
これ以上プロトコルについて、詳しく調べたい人は、

HTTP/2 本家
https://http2.github.io/
高速・大規模ネットワーク時代に向けて改良された
HTTP/2 プロトコル http://www.atmarkit.co.jp/ait/articles/1409/18/news135.html
twitter の#http2study タグ
http/2 Advent Calender 2014
http://qiita.com/advent-calendar/2014/http2などなど、多数ありますので是非。

Debian 勉強会なので、これ以上は割愛!
（笑）

参考：論より証拠

論より証拠。どれだけ、HTTP/2 が優れているか？を試せる非常に良いデモサイトがあります。是非お試しあれ！
（Debian sid の chromium/iceweasel で動作確認済）
https://http2.golang.org/gophertiles

参考：HTTP/2 にブラウザでアクセスする時はTLS でHTTP/2 を使ってブラウザからアクセスするとき、現状、TLS の ALPN/NPN で HTTP/2 を指定して、やりとりを開始するやり方しか現行ブラウザには実装されていません。というわけで、事実上、HTTP/2 のサイトは、全部フル SSL化されている状況となります。
参考：wikipedia HTTP/2
https://ja.wikipedia.org/wiki/HTTP/2

参考：HTTP/2 に非 TLS でアクセスする方法

TLS を使わない場合、HTTP/1.1 のリクエストヘッダに特別なヘッダを混ぜることにより、HTTP/2 へアップグレードして、以降 HTTP/2 でやり取りをするという手法もありますが、残念ながらブラウザが対応していません。
参考：HTTP/2 プロトコルネゴシエーション方法と ATS での実装
http://techblog.yahoo.co.jp/infrastructure/http2/
ats_http2_pn/

Debian で HTTP/2 をお手軽に楽しむには！

HTTP/2 をお手軽に楽しむには以下の環境を用意します。
クライアント側準備
chromium か、iceweasel
サーバー側準備
nghttp2,Apache Traﬃc Server 等などクライアント側準備 (chromium 編。その 1)

chromium を Debian に導入します。
$ sudo apt-get install chromium

次に、chromium を起動して左隅みに現れる「Apps」→「Web Store」をアクセスし、「HTTP/2 and SPDY indicator」を導入してください。

クライアント側準備 (chromium 編。その 2)以上の操作を行った chromium で HTTP/2 対応のサイトにアクセスすると、青い稲妻マークがアドレスバーに表示されるようになります。

Figure: HTTP/2 のサイトにアクセスした時クライアント側準備 (iceweasel 編。その 1)

iceweasel と、xul-ext-spdy-indicator を Debian に導入します。
$ sudo apt-get install iceweasel xul-ext-spdy-indicatorクライアント側準備 (iceweasel 編。その 2)以上の操作を行った iceweasel で HTTP/2 対応のサイトにアクセスすると、青い稲妻マークがアドレスバーに表示されるようになります。

Figure: HTTP/2 のサイトにアクセスした時

HTTP/2 に対応しているサーバ

どんなサーバが HTTP/2 に対応しているかは、
Implementations
https://github.com/http2/http2-spec/wiki/Implementations
を参照ください。

サーバ側準備（nghttp2 その 1）

Debian sid にて、HTTP/2 対応サーバとして、nghttp2 があります。
$ sudo apt-get install nghttp2 ssl-cert

サーバ側準備（nghttp2 その 2）

ここでは、groﬀ の付属 html マニュアルをドキュメントルートにした HTTP/2 サーバを立ててみます。
なお、*-snakeoil.*というファイルは、ssl-crt パッケージを導入すると勝手に作成される自己証明書ファイルとなります。
$ sudo nghttpd -D -d /usr/share/doc/groff-base/html/ \443 /etc/ssl/private/ssl-cert-snakeoil.key \/etc/ssl/certs/ssl-cert-snakeoil.pem

実際に HTTP/2 でアクセスしてみる

早速、先ほど用意したブラウザで、アクセスしてみます。
アクセス先：https://localhost/pic-6.html

chromium の結果

iceweasel の結果

Figure: iceweasel でアクセス

結果

無事 HTTP/2 でアクセスできてます。

proxy サーバで既存サイトの HTTP/2 化をやってみる

さて、nghttpd は軽量の HTTP/2 対応 WEB サーバではあるのですが、やっぱり apache のような高機能な WEB サー
バを使って HTTP/2 を実現したいというニーズがあると思います。（例：php のサイトを HTTP/2 化したい等）
今度は、apache をバックエンドにして、nghttp2 付属のproxy サーバを使い、サイトの HTTP/2 化を行ってみます。

概念図

Figure: proxy サーバで HTTP/2 化やってみるproxy サーバで HTTP/2 やってみる（その 1)

手順：

Step 1. sudo apt-get install apache2 nghttp2 ssl-cert
Step 2. sudo a2enmod userdir
Step 3. cd /home/yours/; mkdir public html
Step 4. cd public html; cp -a/usr/share/doc/groﬀ-base/html .

proxy サーバで HTTP/2 やってみる（その 2)
手順つづき：

Step 5. sudo vi /etc/nghttpx/nghttpx.conf—-nghttpx.conf の中身ここから—frontend=0.0.0.0,443
backend=127.0.0.1,80
private-key-file=/etc/ssl/private/ssl-certsnakeoil.key
certificate-file=/etc/ssl/certs/ssl-certsnakeoil.pem
workers=1—-ここまで—Step 6. sudo systemctl start apache2.service
Step 7. sudo nghttpx -D –conf /etc/nghttpx/nghttpx.conf

proxy サーバで HTTP/2 やってみる（その 3)

アクセス先：http://localhost/~yours/html/pic.html

無事 HTTP/2 でアクセスできましたおわりにHTTP/2 も Debian を使えば簡単に実験できます。是非おた
めしあれ！

今後のイベント

今後のイベント

関西エリア Debian 勉強会
東京エリア Debian 勉強会 (8/22(土)?)今日の宴会場所

今日の宴会場所

未定