首页 > 代码库 > 开发日志-14-07-30

开发日志-14-07-30

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

== 源码目录结构 ==

  1. 接口:pyanaconda/ui/

    • gui/:图形界面接口实现代码。
    • tui/:字符界面及命令行界面实现代码。
    • _init_.py 及 common.py:定义了gui和tui通用的基类(base class)
    • communication.py:负责UI中类的通信。
  2. 自定义组件:widgets/

    • data/:存放时区地图组件的图片。
    • glade/及python/:让用户接口构建器知道组件的存在及实现python的自省。
    • src/:实现各组件。
  3. 分区:python-blivet包

  4. Bootloader: pyanaconda/bootloader.py

  5. 各个步骤的配置:

    • pyanaconda/desktop.py
    • pyanaconda/keyboard.py
    • pyanaconda/localization.py
    • pyanaconda/network.py
    • pyanaconda/ntp.py
    • pyanaconda/timezone.py
    • pyanaconda/users.py
  6. 安装软件包:

    • pyanaconda/packaging/
    • scripts/anaconda-yum
  7. 安装类: 不同的发行版可以定义不同的安装类。

    • pyanaconda/installclass.py
    • pyanaconda/installclasses/
    • pyanaconda/product.py
  8. 无人值守安装:pyanaconda/kickstart.py

  9. liveCD:

    • data/icons/
    • data/liveinst/
  10. 错误处理:

    • pyanaconda/errors.py
    • pyanaconda/exception.py
  11. 安装控制库

    • pyanaconda/install.py:控制安装步骤。
    • pyanaconda/progress.py:控制进度条。
    • pyanaconda/queue.py:控制通信队列。
    • pyanaconda/threads.py:多线程支持。
  12. 库:提供一些工具如获得用户位置,安装日志等。

    • 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
  13. 主程序anaconda:由systemd在系统启动后调用,设置环境、VNC等。

  14. 启动

    • data/systemd/
    • dracut/
  15. 内存监控

    • scripts/anaconda-cleanup:监控安装过程中的内存状态,并记录到/tmp/memory.dat文件中。
    • scripts/instperf及scripts/instperf.p:利用memory.dat文件生成相应的图表。
  16. 升级工具

    • scripts/makebumpver
    • scripts/makeupdates