MIC安装:
1 使用root用户添加MIC2 repo:
首先到 http://repo.meego.com/tools/repos/得到一个版本库URL对应到你的Linux发行版本,然后安装它添加到你的repo或源码包里以便更新得到更高版本。
# cat <<REPO > /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) <build@moblin.org>"
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/ <version>/{netbook,handset,ivi}/images/<respective directory>/
4 repo
当创建镜像时,MIC2需要查询和下载packages,这个需要指明yum库;可以添加meego官方的repos,或者其他远程repos,当然也可以在自己的PC上
1 创建一个repo,指明你的开发机的本地目录
$ createrepo -d <local-dir>
#<local-dir>:在本地PC的路径,这个路径下是rpm包;
2 添加包和包族
例:
%packages
# Example adding pkg groups
@Core
@X for Netbooks
@Base
@Development Tools
@<my-PkgGroup1>
@<my-PkgGroup2>
# Example adding individual pkgs
kernel-netbook
xorg-x11-server-Xorg-setuid
carrick
xorg-x11-drv-evtouch
<my-pkg-1>
<my-pkg-2>
%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: <name>
Summary: <summary>
Epoch: 1
Version: <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;
mic-image-creator安装
最新推荐文章于 2013-07-01 08:48:23 发布