Gentio

Pythonあたりで、Gentooインストーラとか誰か作っていないものかな〜
例えば…

  1. CDとかFDでブート
  2. grub,isolinuxあたりで、シェルではなくインストーラを選択
  3. デフォルトの言語の選択
    1. キーボードのキーマップの選択(デフォから変える場合):インストール時と運用時のキーボードのマッピングが同じと仮定しておく
    2. タイムゾーンの選択(デフォから変える場合)
    3. 選んだ言語がcjkなら、USEフラグにcjkを加える
  4. 追加ハードウェアの認識
    1. RAID
    2. PCカード
    3. てゆーか、ブートオプションでやるべきか
  5. インストールメディアの選択
    1. CDから
    2. Gentooオフィシャルのミラーから
      1. GENTOO_MIRRORSの設定。デフォは選択言語から自動的に選んで、Y/nと聞く
      2. SYNCも言語から選ぶ。webrsyncを使うかも聞く
    3. どこかのディレクトリから
      1. どこかちゃんと聞く
    4. このインストーラ用のスクリプトから勝手に読み込む(あとは自動進行になる)
  6. ネットワークの設定(メディアより先かもしれない。選択制もあり?)
    1. ネットワークに繋がない
    2. DHCP
    3. 固定グローバルIP
    4. ADSLxDSL
    5. ISDN
    6. ダイヤルアップ
    7. 固定ローカルIP
    8. この設定は、インストール後も使用される
  7. パーティションの設定
    1. 勝手にやれ:まっさらにしてSWAPと/とかに適当に斬る
    2. cfdisk
    3. fdisk
  8. ファイルシステム&マウント
    1. 勝手にやる場合は飛ぶ。とりあえずext3
    2. フォーマットの有無とファイルシステム(デフォはext3で)
      1. xfsとかreiserfsとか選んだら、カーネルとかサポートツールも整合性を取るように考える
    3. マウントポジション
      1. / /boot /usr /var /tmp とかのテンプレートを用意すると便利になる?
      2. ちゃんと/etc/fstabに書かれる
      3. NFS,smbも含める?
  9. ホスト名、ドメイン名、NISドメイン
  10. rootのパスワードやら、通常使うユーザ名やらパスワードやら
  11. タイムゾーンの確認。
    1. 言語の所在地が/etc/localtimeにリンクが張られる。広い国の場合は首都がデフォ
    2. UTCではなくローカルにBIOS?の時計が合わせられる設定がデフォ
  12. make.confの確認
    1. USEフラグは、インストール時は、USE="-X -java nls (cjk)"で、インストール後は、-X -javaが取り除かれる。てゆーか、make.confには、nls cjkだけ書いてあって、USE="-X -java" emerge system で実行されるで良いかも
    2. USEフラグで追加があるなら手動とか
    3. 最適化 CFLAGS は、
      1. 暴走覚悟 -march=hoge -sse2 -O6 とか危険を顧みない*1
      2. 安定重視で CFLAGS="-mcpu=pentium3 -O3 -pipe -fomit-frame-pointer
      3. 標準的 -march=hoge -mmmx -O3 とか、危険そうなフラグは取り除いておく*2
      4. 安定重視 -mcpu=hoge -O3 -pipe -fomit-frame-pointer だけ
      5. 絶対安静 -mcpu=i586 -O2 だけ。pentium未満なら/proc/cpuinfoを見て自動補正
      6. カスタム 標準をベースに自分で書くか、選択制。
    4. CHOST は、自動的に設定される。
  13. カーネルコンパイル方法
    1. カーネルはデフォでは、gentoo-sourcesが選択されている。
    2. LiveCDのカーネルのバイナリをコピー(危険?)
    3. LiveCDの設定のコピー # make oldconfig とか、# cat /proc/config>/usr/src/linux/.config
    4. 自分で menuconfig
    5. LiveCDの設定をベースに menuconfig
  14. システムロガー
    1. syslog-ngとかmetalogとか導入しない?とかから選択
  15. CRON DAEMON
    1. vcronとかdcronとか…
  16. ブートローダ
    1. grub
    2. LILO
      1. 場所:MBR or PBR or NONE / FD or NONE から選択。
      2. 詳しくは他のLinuxインストーラ
  17. インストールstageの選択
    1. stage1から
    2. stage2から
    3. stage3から
    4. stage3+GRP
      1. GRP付きで、かつ、gnomekdeを入れた場合、自動ログイン機能の有無も聞いておく?
  18. インストール後の動作
    1. シェルに戻る
    2. 電源を落とす
    3. 再起動
  19. ここまで聞いたらお疲れ様でした?
  20. あとは自動的に scripts/bootstrap.sh && emerge system && emerge gentoo-sources && make oldconfig
  21. カーネルコンフィグを先に行えるなら楽になるのに
  22. 世界中の偉い人、誰か書いて〜
  23. わたしは面倒そうだから遠慮しておきます。pythonで書いたことないし
  24. 誰?「捨ててしまえ!  また、つまらぬものを切ってしまった。」で検索したのは?

*1:例:-march=pentium4 -mmmx -msse -msse2 -mfpmath=sse -O6 -pipe -fomit-frame-pointer -fforce-addr -fexpensive-optimizations -fpeephole -fgcse -funroll-loops -frerun-cse-after-loop -frerun-loop-opt -falign-functions=4 -ffast-math -fno-strength-reduce -fschedule-insns2"

*2:例:-march=pentium4 -mmmx -msse -mfpmath=sse -O3 -pipe -falign-functions=4 -fomit-frame-pointer