64 西 Debian
西 Debian
2012 9 23
64 西 Debian 2012 9
1 Introduction
Debian JP
西 Debian 勉強 Debian GNU/Linux さまなト (いパケー Debian 有のの仕
Debian です
的と次の考えす。
ML 掲示はな接顔せるの情の促
期的まれ
料の
れで楽しをお下さ
1
西Debian
1 Introduction 1
2 近の Debian 関係イベ 3
3 前課 4
4 clang よる 6
5 Debian Policy 6 文書 9
6 後の 15
7 16
2
64 西 Debian 強会 2012 9
2 Debian
Debian JP
2.1 63 西 Debian
63 目の西 Debian 会は 8 26 まし
Debian Kerberos Ralf Treinen さん News from EDOS: finding
outdated packagesた。
Ralf さんには DebConf12 のセ ンそのままに発表していただきちょっとした DebConf 体験ができたと思い
す。
2.2 92 Debian
92 目のリア Debian 9 8 OSC2012 Tokyo/Fall
ンで 次期安定版 Debian 7.0 ”Wheezy” の紹介」を行ない、ブースはインラフクスやチート
シートが好評で多くの方に立ちていただけたようです。 Grand Unified Debian(あんどきめんどでびあん
2012 )売し
2.3 0 Debian
9 22 楽天 0 Debian した
一日 Debian Debian すがし込 23 盛況
西でのよベンりたね。
3
64 西 Debian 強会 2012 9
3
Debian JP
回はの課題し.
1. Debian 使てやださ
加者さんは以りで
3.1
kvm よる WebServer の作
3.2
ろそ発な
3.3 yyatsuo
Debian 手段なくので無し
いてなら free 広めと。
3.4
訳とたい
て、 Debian 関係訳にる情とめとかいで
いう、かださによと近うちやるとにすよ
*
1
やば、やいよ! ずは DDTP !
3.5
数の Debian マシ分散パイ
できいいレベ^^;
AndroidOS 開発ていです
Android2.3 降、トボのソクリビルと、
時間るのれを Debian シンコンルし
間短きれな的
*
1
https://twitter.com/t3rkwd/status/248404019607904256
4
DTM DAW 環境して使たら
更なです VR サイペーーバなシムと
このドシです
3.6 lurdan
Debian 開発
3.7
由でプンの発
3.8
フト発作 Twitter, 作り PC 全般作りぼちちや
行きです
近、 Xen の準環境に挑、失ていこれ一つ
5
64 西 Debian 強会 2012 9
4 clang
わだ
4.1
Build of the Debian archive with clang [1] とい Debian のアーカイブ clang で再ビルするプロ
行なてい clang ケーをビるこ何がいのを紹ます
4.2 clang
clang
*
2
C/C++ Objective C/C++ を対象としたコンパイラです。 LLVM(Low Level Virtual Machine)
*
3
て使 LLVM してースいま
clang サイげらる機目的つかみる
ンパの高メモ使低減
切な
GCC
い規拠度
BSD イクセン
ールれたブラ
たとがあす。
在、開発ンパす。
4.3 Build of the Debian archive with clang
ロジ
clang 現実択肢るか (いか) 明す
なるパイ使てビドすことる異トウ
を向るこ
挙げてい
*
2
http://clang.llvm.org/
*
3
http://llvm.org/
6
して 2012 6 17710 ビル 2137
12.1% ビル失敗ますの結 clang 用いビル敗しノー sid 境でビル
に成たもまり clang のバ思わのはれてん。
た、には clang2.9 clang3.0 を用ビルてい
clang Ver ケー 失敗たパ 敗し
2.9 2011/09 16398 2372 14.5%
3.0 2012/01 15658 1381 8.8%
3.1 2012/06 17710 2137 12.1%
4.4
ロジルドトアれてす。を用るこ単にして
とがますしてう。
ただし、セトアプコードを見ていただければ分かりますが/usr/bin{g++,gcc,cpp}-VERSION を一旦削除し
clang シンき換とにます環境実行ほうでし
こで pbuilder て追てみ
pbuilder は環境を変更するための手段として hook 用意されています。そこで、先のセトアコードを hook
してみ既 pbuilder を壊とな clang ビルのセプがきるしま
$ mkdir ~/clanghook
$ cd ~/clanghook
$ cat << EOS > A10replaceclang
#!/bin/sh
echo "Install of clang"
#apt-get update
apt-get install --yes --no-install-recommends clang -t unstable
echo "Replace gcc, g++ & cpp by clang"
VERSION=4.7
cd /usr/bin
rm g++-$VERSION gcc-$VERSION cpp-$VERSION
ln -s clang++ g++-$VERSION
ln -s clang gcc-$VERSION
ln -s clang cpp-$VERSION
cd -
echo "Block the installation of new gcc version"
echo "gcc-4.6 hold"|dpkg --set-selections
echo "cpp-4.6 hold"|dpkg --set-selections
echo "g++-4.6 hold"|dpkg --set-selections
echo "gcc-4.7 hold"|dpkg --set-selections
echo "cpp-4.7 hold"|dpkg --set-selections
echo "g++-4.7 hold"|dpkg --set-selections
echo "Check if gcc, g++ & cpp are actually clang"
gcc --version|grep clang > /dev/null || exit 1
EOS
$ chmod +x A10replaceclang
$ ln -s A10replaceclang F10replaceclang
ンボする login たは execute 時にきま
たの pbuilder でパケー時に hook 定す clang 使てビ
るよなり
$ sudo pbuilder --build --hookdir ~/clanghook hello_2.8-2.dsc
くつかのジを試してみましたがかに clang 用いたビルド方がエラクが厳しいようで。し
gcc 出力されてい警告 clang では出力されなくるケース
*
4
ありました。このりはコンパイラへオプ
*
4
sl 3.03-17
7
によてくのかれま
4.5 libc++
libc++ clang 同じ LLVM プロクト C++11 をターゲトにした C++ ライラリです。新しい
C++11 clang clang C++11
場合 libc++ た場 libstdc++ チをたもなるす。 [2]
libc++ 使うことはプロクト展望 libc++ libstdc++ 代替として提供する」 [3] て含まれてい
。この試みは順調に進んでおり 2012/07/31 libc++ experimental 入りまし。ま libc++ に問
が多うでれな使えす。
ケー i386 amd64 しかれて試し思わ apt-line experimental
加し libc++-dev libc++abi-dev ールくだ
$ sudo apt-get -t experimental libc++-dev libc++abi-dev
して、適当に C++ コーを書いて、コンパイラオプンで標準ライブラリに libc++ 定してビルドしま
来上イル ldd libstdc++ libc++ がリクさ
す。 [4]
$ clang++ -stdlib=libc++ foo.cpp -o foo
$ ldd foo|grep c\\+\\+
ldd foo|grep c\\+\\+
libc++.so.1 => /usr/lib/x86_64-linux-gnu/libc++.so.1 (0x00007f8b5ec60000)
$ g++ -nostdlib -lc++ -lc++abi -std=c++11 \
/usr/lib/x86_64-linux-gnu/crt1.o \
/usr/lib/x86_64-linux-gnu/crti.o \
/usr/lib/x86_64-linux-gnu/crtn.o \
-isystem /usr/include/c++/v1 -lc -lgcc_s \
foo.cpp -o foo
$ ldd foo|grep c\\+\\+
ldd foo|grep c\\+\\+
libc++.so.1 => /usr/lib/x86_64-linux-gnu/libc++.so.1 (0x00007f5098ce8000)
libc++abi.so.1 => /usr/lib/x86_64-linux-gnu/libc++abi.so.1 (0x00007f5098a9a000)
C++11 を使てみようと思方は 8 の東エリ Debian 会の料を考にしてして
くだ
[1] Build of the Debian archive with clang, http://clang.debian.net/
[2] C++98 and C++11 Support in Clang, http://clang.llvm.org/cxx_status.html
[3] Provide an alternative to libstdc++ with libc++, http://wiki.debian.org/SummerOfCode2012/
Projects#Provide_an_alternative_to_libstdc.2B-.2B-_with_libc.2B-.2B-
[4] Article complet: libc++: New C++ standard library in Debian, http://sylvestre.ledru.info/blog/
sylvestre/2012/08/15/libc_new_c_standard_library_in_debian
8
64 西 Debian 強会 2012 9
5 Debian Policy 6
野孝
Debian ーザもな今回当とした
は第 12 文書てでのソにはアルの文して
すし、文書のからなるジもあります (debian-policy 体がまさそうです)。また、マニル類のほ
定フ歴、権情りま
5.1 (man )
ル研 Unix が誕したころ、文処理システムいう口実で予を取ていたりて、 Unix の文書といえ
roff した
*
5
本章 man ジのに多いて
5.1.1
roff イル gzip -9 で圧縮して、/usr/share/man 以下の適切な場所にインストールします。英語マニルは
/usr/share/man 下、それ以外 /usr/share/man/locale 下の、セン別のデトリ (man1, man2, ...,
man9) 置き詳細 FHS いい FHS とはよう異がす。
語マルは /usr/share/man/en 下でなく /usr/share/man 直下に置く。 (FHS これが許され
は、マニ)
クシ 9 (FHS 1 8 )
man ページの整形には時間がかかるので、整形済みのマニアルをあらかじめインストールしておけば
*
6
、いきな
ページーで表示することができて快適になりますが、パケージが整形済みマニルをインストールしてはいけま
ん。
5.1.2
man ページ以外の文書は、 foo-doc のようにソフトウア本体と別ケージに分離することがありますが、 man
ージフトのがです
プログラムのマアルが存在しない場合、それはバグとして扱われます。上流にマニルを追加してもらうか、
Debian ケージで独自にマルを加する必要がありますといても info れ」 この URL 見れだけ
マニ
*
7
も可
*
5
History of UNIX Manpages http://manpages.bsd.lv/history.html が参になりま
*
6
FreeBSD スシステなどでは整形みのマニが標準で布されてます
*
7
ようなマアルの実例としては、 (いずれも上流由来すが) GNU cpio netpbm ます
9
5.1.3
grep, fgrep, egrep ようじマで参れるあり
Linux Man Page Howto
*
8
(クを) roff .so マク使
も望ましとされていますが Debian では必ずンボリンクがあるため、原則として .so ロを使わ
にシクリクを使うよだし上流 .so を使は、理にンボ
クに必要ませ
grep (GNU grep) egrep.1.gz, fgrep.1.gz はい grep.1.gz
います。う、 manpages-ja ージにはこれらの () 語訳がありますが、こちらでは egrep.1
fgrep.1 .so ロを使 grep.1
なお、これとは逆に、複数の異なるマアルが同じ名前で参照されることがあります。たとえば vim nvi は、
通常どちらも vi という名前で参照されます。本章では言及されていませんが、これ Appendix F で説明されている
update-alternatives た、 editor(1) pager(1) につ 11 言及てい
5.1.4 アル
マニアル以外の文書にも翻訳はありますが debian-policy ではマニアルについてのみ翻訳に触れています。マ
ガン新さのでても古く。利が古翻訳
にしよう訳が可能いてたりよういま
apt ど、 Debian 自ツルのアル訳で po4a 使て翻訳し (訳が古くた場合、その部分は原
表示されるよにな)、かつ注書きをするこで、この針が守られてるようで。一方、 manpages-ja
、上翻訳マニようます
ンコ UTF-8 部のーエーデ ( EUC-JP) 使
*
9
5.2 info
info 書にて述ます info 必須りま
info 書は /usr/share/info
gzip -9 圧縮
install-info のセ報を
5.3
man, info 外の文書れて合の述べます
info /usr/share/doc/package
容量要性文書るべ
フト /usr/share/doc/package 以下イル存しけな
/usr/share/doc/package 自体シン (
が、 copyright ルをに抽きるあり)
/usr/doc /usr/share/doc への関す
*
10
*
8
http://www.schweikhardt.net/man_page_howto.html (JF 古い日本語訳あり)
*
9
man ンコに関する論は Bug#440420 参照
*
10
脚注にも説明がありますが FSSTND 1.2 では、 man doc 等は/usr/ 直下に置くこととなていました。 FHS 2.0 (1997 ) で、
BSD 流儀を取り入/usr/share/ 下にくよう改られていす。 Debian potato していま。当の議論は 1999
debian-ctte リングリトのログ見ることがでます
10
5.4
DocBook とにじ文供すケーがあうな合は能な HTML
ストしま HTML の形どうはメナーにまてい
5.5
ージに含まれるものの著作権、ライセンスに関する文 (copyright ) いについて述べています。
のフ
Debian ージでは debian/copyright に含めておき/usr/share/doc/package/copyright にインスト
しま
イル作権報を含め (ただ GPL
使われセン /usr/share/common-licenses あらじめれてもの照すにし)
の改はも、文形式換もはいせんた、イル圧縮たりボリ
てはませ
copyright 作権イセ報の以下報を必要ます
流のスの
者名
た、の情めるす。
Debian 関与 Debian テナ (3.9.3.0 れま; 後述)
(contrib, non-free ) Debian と、潔な
5.6
定フ場合いをいま
/usr/share/doc/package/examples
存の/usr/lib/package/examples
ンクる。
述の /usr/share/doc てはこに
グラら参はい
foo-examples のよ例そするケーケーもの /usr/share/doc/package
インールよい
5.7 Changelog
更履扱いて述ます
Debian 来でケー、上更履 Debian 歴をるこ求めす。
Debian debian/changelog /usr/share/doc/package/changelog.Debian.gz
してセスようけれらな
流の changelog がある場合は、プレインテキスト形式で/usr/share/doc/package/changelog.gz して
クセきるすべ
changelog ルが HTML 形式の場合は/usr/share/doc/package/changelog.html.gz で参照できる
11
うにき。
イルて、イルけなので Lynx
使 HTML をプンテに変たも /changelog.gz すべ
gzip -9 圧縮
5.8
本語があ Version 3.9.1.0 Version 3.9.4.0 でにれた点をておう。
5.8.1 Version 3.9.2.0
Debian GNU/Linux ストリビーシン」が Debian ストリビーシン」と改められました。
(Bug#594656)
debmake れる man サンルにいて及さていした lenny では debmake
るたこの削除した
5.8.2 Version 3.9.3.0
copyright Debian のメテナを記するととれてましが、 changelog
に書ていなの copyright なくまし (Bug#593533)
Version 3.9.2.0 policy.sgml:9771
In addition, the copyright file must say where the up-
stream sources (if any) were obtained. It should name
the original authors of the package and the Debian
maintainer(s) who were involved with its creation.
た、著作情報イル中に元とた上流のース
どこからに入れたを記載しなければなりません。
ケージの原作の名前とジ作成に与し
Debian ンテ名前るべ
Version 3.9.3.0 policy.sgml:9863
In addition, the copyright file must say where the
upstream sources (if any) were obtained, and should
name the original authors.
た、著作情報イル中に元とた上流のース
どこからに入れたを記載しなければなりませんし
者のを載きで
12
械的に抽出」できるようにするもの (copyright イル) を指しているかが、明確に記述されるよ
りま (Bug#617516)
Version 3.9.2.0 policy.sgml:9704
/usr/share/doc/package may be a symbolic link to
another directory in /usr/share/doc only if the two
packages both come from the same source and the
first package Depends on the second. These rules are
important b ecause copyrights must b e extractable by
mechanical means.
/usr/share/doc/package /usr/share/doc
の他のデレクトリ中のシンボリクリンクの相手先と
じソースから作成れたものあることおよ
び相手先に対し”Depends” で依存していることが宣
れていると、の二の条件を満たすときのみ、シン
ンクとすことがでます。こ規則は、作権
連フイルが機的に抽出きるようするため大切
なるす。
Version 3.9.3.0 policy.sgml:9796
/usr/share/doc/package may be a symbolic link to
another directory in /usr/share/doc only if the two
packages both come from the same source and the first
package Depends on the second. These rules are im-
portant because copyright files must be extractable
by mechanical means.
/usr/share/doc/package /usr/share/doc
の他のデレクトリ中のシンボリクリンクの相手先と
同じソース イルから作成されたものであること、お
よび相手先に対して”Depends” で依存していることが
言されていること、の二つの条件を満たすときのみ、シ
ンボリクリンクとすることができます。この規則は
copyright ルが機械的に抽出できるようにするた
に大るも
械可著作報フ追加ましライス衝などを自的に
できとがきま今のろは
Version 3.9.3.0 policy.sgml:9928
Machine-readable copyright information
A specification for a standard, machine-readable for-
mat for debian/copyright files is maintained as part
of the debian-policy package. This document may be
found in the copyright-format files in the debian-
policy package. It is also available from the De-
bian web mirrors at http://www.debian.org/doc/
packaging-manuals/copyright-format/1.0/.
Use of this format is optional.
械可作権
debian/copyright ファ debian-policy
パッ
debian-policy copyright-format
De-
bian web http://www.debian.org/doc/
packaging-manuals/copyright-format/1.0/
りま
の形使うかは任す。
13
5.8.3 Version 3.9.3.1
(更な)
5.8.4 Version 3.9.4.0
copyright ーデれま (Bug#661933)
Version 3.9.1.0 policy.sgml:10673
All copyright files must be encoded in UTF-8.
copyright はすべて UTF-8 でエンコードしな
ばなん。
5.9
回の Debian Policy
14
64 西 Debian 強会 2012 9
6
Debian JP
6.1 西 Debian
回、 65 西 Debian 会は 10 28 () 区民ターいま
の第 66 西 Debian は、 11 9 () 10 () われ西オプンース 2012
ます
6.2 Debian
10 20 () 93 京エ Debian が開れま
15
64 西 Debian 強会 2012 9
7
16
17
18
西Debian
Debian
2012 9 23 1
西 Debian
19