mic-image-creator安装

MIC安装:
    1 使用root用户添加MIC2 repo:
        首先到 http://repo.meego.com/tools/repos/得到一个版本库URL对应到你的Linux发行版本,然后安装它添加到你的repo或源码包里以便更新得到更高版本。
        # cat < /etc/yum.repos.d/meego-tools.repo
          [meego-tools]
          name=MeeGo Tools for Fedora
          baseurl=http://repo.meego.com/MeeGo/tools/repos/fedora//$releasever
          enabled=1
          gpgcheck=1
          gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-meego
          REPO
    2 添加gpg key:
        # gpg2 --keyserver subkeys.pgp.net --recv 0BC7BEC479FC1F8A
        # gpg2 --export --armor 0BC7BEC479FC1F8A > /etc/pki/rpm-gpg/RPM-GPG-KEY-meego

    3 安装mic2:
        # yum install mic2
        可能会提示是否导入key:输入y:
            warning: rpmts_HdrFromFdno: Header V3 DSA/SHA1 Signature, key ID 79fc1f8a: NOKEY
            meego-fedora/gpgkey                                       | 3.3 kB     00:00 ...
            Importing GPG key 0x79FC1F8A:
             Userid: "Moblin Build (Moblin Build User) "
             From  : /etc/pki/rpm-gpg/RPM-GPG-KEY-meego
            Is this ok [y/N]: y
    4 更新mic:
        yum update mic2

MIC使用:
    1 使用--help查看选项:
        sudo mic-image-creator --help
    2 创建kvm镜像类型文件:
        可以使用qemu或其他模拟器运行:
        sudo mic-image-creator --config=default.ks --format=raw --cache=mycache
        文件夹meego-1.0-default-XX被创建,文件夹内名为meego-1.0-default-XX-sda.raw镜像文件被创建;
        (这个镜像使用Xephyr模拟器运行;启动方法见meego-sdk搭建)
          其他镜像制作方法见:http://wiki.meego.com/Image_Creation#Running_mic-image-creator
    3 .ks配置文件 (KickStart Files)
        MIC2通过KickStart配置文件创建特定的镜像,KickStart文件详细指明ropos下载源,被包含的包,需要运行的脚本,需要创建的镜像类型;
        KickStart文件格式的详细说明:http://fedoraproject.org/wiki/Anaconda/Kickstart
        官方meego KickStart文件:
                For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ /{netbook,handset,ivi}/images//
    4 repo
        当创建镜像时,MIC2需要查询和下载packages,这个需要指明yum库;可以添加meego官方的repos,或者其他远程repos,当然也可以在自己的PC上
        1 创建一个repo,指明你的开发机的本地目录
        $ createrepo -d
        #:在本地PC的路径,这个路径下是rpm包;
        2 添加包和包族
        例:
            %packages

            # Example adding pkg groups

            @Core
            @X for Netbooks
            @Base
            @Development Tools
            @
            @

            # Example adding individual pkgs

            kernel-netbook
            xorg-x11-server-Xorg-setuid
            carrick
            xorg-x11-drv-evtouch
           
           
            %end

        明确指定的文件将被编辑到镜像里,包组在@前指明,在repo的repodata部分声明;在comps*.xml文件下面; 在里面定义包组名,包组包括packages的情况;标准的meego packages不能被改变,但你可以把需要用的自己的包组定义到你自己的meego repos里;

#######################################################
MIC2在不同版的包有效时如何打包:
一个普遍的问题是一个包的多个版本同事存在repos,这个repos在.ks文件内也被指定编译,那么MIC2怎么知道编译哪个呢?
例如:
    packageA-1.0
    packageA-2.0
    packageA-3.0
MIC2将会编译packageA的最高版本,在这个例子里是packageA-3.0;
有一个方法可以避免这个这样,在package的.spec文件种设置Epoch的版本;
    Example (works in both .spec and .yaml file)
    Name:
    Summary:


    Epoch: 1
    Version:
MIC2首先比较包的Epoch版本,所有meeog的官方包都没有Epoch,所以如果你在自己的.spec文件添加任何正整数,不管你的包的版本多小,和官方的包来选择,MIC2将选择你的包,而不去选择官方包;
如果你的两个版本的包的Epoch都设置了,那么MIC2选择版本高的;
    Example
    PackageA-1.0 (Epoch=100)
    PackageA-2.0 (Epoch = 1)
    PackageA-3.0 (Epoch not set)
    MIC2将选择packageA-1.0;

删除packages
如果你确定一个package不许要被编译到镜像内的话,可以在包的名字前面加上 “-”;
    %packages
    # Example pkg groups
    @Core
    # Example adding individual pkgs
    kernel-netbook
    # Example removing individual pkgs
    -carrick
    -package-xyz
    %end
'carrick' 和 'package-xyz' 将不被编译到镜像内;

脚本:
你可以明确脚本在镜像安装之后被运行;
例:
    %post
    # Example - saving some space
    rm -f /boot/initrd*
    rm -f /core*
    # Example - Install working xorg.conf
    if [ -f /usr/share/my.conf ]; then
        cp /usr/share/my.conf /etc/X11/xorg.conf
    fi
    # Example - Tell alsa the correct audio card to use for your platform
    echo -e "options snd-hda-intel index=0/noptions snd-timbi2s index=1" > /etc/modp
    robe.d/alsa.conf
    %end


MIC2配置文件;
    MIC2的配置选项可以在全局的配置文件/etc/mic/mic2.conf 和本地配置文件$HOME/.mic2.conf 这两个文件内配置;
        *库的配置
        *代理配置
        *缓存目录和
        *其他变量
例:    [main]
    cachedir=/home/user1/mycache
    tmpdir=/home/user1/mystorage/tmp
    outdir=/home/user1/mystorage
    proxy=http://my.proxy.com:911/
    no_proxy=localhost,127.0.0.0/8,.mysite.com,172.16.0.0/16
具体属性查:http://wiki.meego.com/Image_Creation#MIC2_Configuration_file


---------------------------
use bootstrap
running mic-image-write
running mic-image-convertor
running mic-chroot

本文节选于meego.wiki;

你可能感兴趣的:(meego)