Mais conteúdo relacionado
Semelhante a 野良ビルドから見たGentoo (20)
野良ビルドから見たGentoo
- 3. そう思っていると
思わぬおとしぁなが待っている
今日のメインテーマ
( 時代は cmake とかそういう話じゃないよ )
- 4. build process
●
unpack
●
(patch あてたりする )
●
./configure
●
make
●
(make test)
●
make install
●
いろいろする
- 5. unpack
●
特に注目するようなところはない
●
一応 unpack hoge fuga とかするだけで展開
するように
– gz
– xz
– bz2
- 6. configure
● econf コマンド
– ./configure
– --prefix=/usr
– --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu
– --mandir=/usr/share/man --infodir=/usr/share/info
– --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib
– --libdir=/usr/lib64
– --disable-dependency-tracking
– --disable-silent-rules
- 9. patch あてる
●
patch あてて build できたぞ !
=> 新しいバージョン出る
=> あれ、 patch どこいった ?
●
/etc/portage/patches
– <package name>
– <package name>-<version>
– <package name>-<revision>
- 10. make のおとしあな
●
Makefile がおかしい
– “cd hoge;make” とか書いている
– CFLAGS ・ LDFLAGS が反映されない
– gcc 直接よんでる
– リンクがおかしい
●
こっそり
– command not found
– file dose not exist
- 11. make 対策
●
ビルドログの監視
●
-frecord-gcc-switches
– .GCC.command.line section
●
--hash-style=gnu
– ELF でのシンボル・ルックアップ
– .hash section
●
ld.gold を使う
- 12. build log 監視
●
command not found 以外にも
●
gcc の警告
– Strict Aliasing
– Implicit Declarations
– Used Uninitialized
– Invalid X<=Y<=Z Comparisons
– Non-Null Required
– Truncating Pointers
- 15. --as-needed
Library
Program Bar
foo
Library
Nyoro
Link
Use
- 16. New nyoro
Library
Program Bar
foo
Rebuild
Library
Nyoro
Link
Use Library
Nyoro
- 18. underlinking 2/2
Library
Program Bar
foo
Broken
Library
Nyoro-1.0
Link
Use Library
Nyoro-2.0
- 19. underlinking 2/2
Library
Program Bar
foo
Broken Library
Nyoro-1.0
Link
Use Library
Nyoro-2.0
- 20. make install のおとしぁな
● root で実行されてる
– 変なとこさわるかも
● 突然 rm -r /usr されたりな
●
インストールしたバイナリがやばいかも
– RUNPATH ・ TEXTREL ・ EXECSTACK
– DT_NEEDED
– SONAME
– world writable
– debug 情報ついたまま
- 21. 他にもいろいろ
●
めっちゃ容量使うやつ
– /usr とか /var とかの容量事前確認
– メモリとかも
●
gcc のバージョン・カーネルの設定などの
チェック
●
ABI の更新による rebuild
- 27. 個別まとめ
●
Gentoo 使っている人むけまとめ
– portage 裏でいろいろやってるやべえ !
●
野良ビルドしている人むけまとめ
– いろいろおとしあな多いやばい !
– portage べんりかも !
●
なんかパッケージ書いてる人むけまとめ
– 頭の片隅において対策しとこう
●
とくに underlinking とか SONAME とか
●
他の distro の人
– うちの distro での build について次回発表するよ !
– Nix の patchelf とかおもしろそうなんだけど ( チラッ
- 28. 全体まとめ
●
コンパイルだからめんどい、わけではない
– いやたしかに時間はかかるんやけどね
●
むしろいろいろチェックしてくれててべんり
でよい
●
ビルドシステム極めてる
●
いまからインストールしてみよう
- 29. おまけ
●
Gentoo に興味あるけど・・・でも・・・
ブラウザで Gentoo 体験
http://bit.ly/9VG7xz