Anaconda
== Build ==
- 获取源码:git clone git://git.fedorahosted.org/git/anaconda.git
- 安装依赖包: sudo yum install libtool $(grep ^BuildRequires: anaconda.spec.in | awk ‘{print $2}‘)
- 安装、配置transifex:sudo yum install transifex-client;tx init /tmp
- ./autogen.sh && ./configure && make po-pull && make
== 源码目录结构 ==
接口:pyanaconda/ui/
- gui/:图形界面接口实现代码。
- tui/:字符界面及命令行界面实现代码。
- _init_.py 及 common.py:定义了gui和tui通用的基类(base class)
- communication.py:负责UI中类的通信。
自定义组件:widgets/
- data/:存放时区地图组件的图片。
- glade/及python/:让用户接口构建器知道组件的存在及实现python的自省。
- src/:实现各组件。
分区:python-blivet包
Bootloader: pyanaconda/bootloader.py
各个步骤的配置:
- pyanaconda/desktop.py
- pyanaconda/keyboard.py
- pyanaconda/localization.py
- pyanaconda/network.py
- pyanaconda/ntp.py
- pyanaconda/timezone.py
- pyanaconda/users.py
安装软件包:
- pyanaconda/packaging/
- scripts/anaconda-yum
安装类: 不同的发行版可以定义不同的安装类。
- pyanaconda/installclass.py
- pyanaconda/installclasses/
- pyanaconda/product.py
无人值守安装:pyanaconda/kickstart.py
liveCD:
- data/icons/
- data/liveinst/
错误处理:
- pyanaconda/errors.py
- pyanaconda/exception.py
安装控制库
- pyanaconda/install.py:控制安装步骤。
- pyanaconda/progress.py:控制进度条。
- pyanaconda/queue.py:控制通信队列。
- pyanaconda/threads.py:多线程支持。
库:提供一些工具如获得用户位置,安装日志等。
- pyanaconda/init.py
- pyanaconda/addons.py
- pyanaconda/anaconda_log.py
- pyanaconda/anaconda_optparse.py
- pyanaconda/constants.py
- pyanaconda/flags.py
- pyanaconda/geoloc.py
- pyanaconda/i18n.py
- pyanaconda/image.py
- pyanaconda/indexed_dict.py
- pyanaconda/isys/
- pyanaconda/iutil.py
- pyanaconda/nm.py
- pyanaconda/safe_dbus.py
- pyanaconda/simpleconfig.py
- pyanaconda/sitecustoimze.py
主程序anaconda:由systemd在系统启动后调用,设置环境、VNC等。
启动
内存监控
- scripts/anaconda-cleanup:监控安装过程中的内存状态,并记录到/tmp/memory.dat文件中。
- scripts/instperf及scripts/instperf.p:利用memory.dat文件生成相应的图表。
升级工具
- scripts/makebumpver
- scripts/makeupdates
开发日志-14-07-30,布布扣,bubuko.com
开发日志-14-07-30
原文:http://my.oschina.net/kelvinxupt/blog/296529