用york建立fedora-cn的chroot编译环境(FC-6 only now)

14 views
Skip to first unread message

ZC Miao

unread,
Dec 3, 2006, 4:43:16 AM12/3/06
to fedora-...@googlegroups.com
步骤:

1、安装fedora-cn FC-6 源,装以下软件:
ybuild
ybuild-developer
ftpsync

2、ybuild*安装后会增加一个用户组ybuilder,把需要运行ybuild工具的用户加到
ybuilder组中(组更新需要重新登录shell/X才能对子shell生效)。

3、解压附件,进入fedora-cn-fc6-york/ybuild/目录,执行
./bootstrap
该步骤同步ftp://ftp.fedora.cn/pub/fedora-cn/yrepos/FC-6的git
repository,然后git clone该repo——这个有点绕了,如果有http服务器则直接可
以clone http服务器上的git repository。
原git repo : fedora-cn-fc6-york/ybuild/yrepos.orig
cloned repo : fedora-cn-fc6-york/ybuild/yrepos

4、(可选)修改其中的ybuildsys-yum.conf,如果你需要做一些适当修改的话。
(可选)修改ybuild.conf

5、运行
york --yorkdir="/path/to/fedora-cn-fc6-york" shell
就可进入chroot shell
默认不会打印日志,日志在/path/to/fedora-cn-fc6-york/result/*中
如果需要直接看日志而不保存为文件,执行:
york --nolog --yorkdir="/path/to/fedora-cn-fc6-york" shell

出了shell命令还有就是build命令了
另外如果你不想每次都指定yorkdir则可以export环境变量:YORKDIR
export YORKDIR=/data/share/softwares/fedora-cn/york/fedora-cn-FC6-uni/
york build fedora-cn-release

6、其他
如果你还需要mount特定的目录到chroot环境,则用
$YORKDIR/ybuild/mount.lst文件,用于在chroot前执行mount,并在chroot结束后
umount,例如:
(
[undef,['bind'],'/data/share/softwares/fedora-cn/distfiles','ybuild/distfiles'],
)
就用于bind distfiles目录。

另外joyfun说要为我们编译x86_64的包,再次特别感谢以下,建立x86_64的应该也
这么弄,在这之前需要重新编译这些包:
perl-RPM2,这个是arch depend的,希望不会有问题
perl-Ybuild, 除了/usr/sbin/ybuild-helper,其他都是noarch的,应该不会有问

ybuild ybuild-developer是noarch的
ybuildsys-build ybuildsys-macros也是noarch的
ftpsync : noarch
这样x86_64的编译环境就可以bootstrap起来了。

--
http://hellwolf.cublog.cn
gpg --keyserver pgp.mit.edu --recv-key 0x6B174C6F

Words are the voice of the heart.

fedora-cn-fc6-york.tar.gz

cnjo...@gmail.com

unread,
Dec 3, 2006, 8:53:13 AM12/3/06
to fedora-cn开发者邮件列表
perl-RPM2,这个是arch depend的,希望不会有问题
就是这个出了问题 编译没通过

cnjo...@gmail.com

unread,
Dec 4, 2006, 2:31:32 AM12/4/06
to fedora-cn开发者邮件列表
尝试了一下 发现 ybuildsys-yum.conf 文件应该修改一下
以适应各个平台 修改后的 文件应该为
──────────────────────────────────────────
[main]
cachedir=/var/cache/yum
keepcache=1
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
tolerant=0
exactarch=1
metadata_expire=0
obsoletes=1
gpgcheck=0

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
reposdir=''

[ybuildsys]
name=ybuildsys rpms
#baseurl=ftp://ftp.fedora.cn/pub/fedora-cn/linux/6/i386/
baseurl=ftp://ftp.fedora.cn/pub/fedora-cn/linux/6/$basearch/
[core]
name=core
baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/6/$basearch/os/

[updates]
name=updates
baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/6/$basearch/

[extras]
name=extras
baseurl=http://download.fedora.redhat.com/pub/fedora/linux/extras/6/$basearch/

──────────────────────────────────────
顺便说一下 由于 ftp.fedora.cn 没有x86这个文件夹
更新会出错
ftp://ftp.fedora.cn/pub/fedora-cn/linux/6/x86_64/repodata/repomd.xml:
[Errno 4] IOError: [Errno ftp error] 550 Failed to change directory.
Trying other mirror.

ZC Miao

unread,
Dec 4, 2006, 7:31:16 PM12/4/06
to fedora-cn开发者邮件列表
这是一个bootstrap过程阿,你不是编译了那些SRPM的么,用createrepo作一下,然后ybuildsys的repo设置为:
baseurl=file://file/to/your/repo

等所有编译好后就可以上传到服务器,然后就可以改回去了.先有鸡还是蛋的问题啊.

On 12月4日, 下午3时31分, "cnjoy...@gmail.com"

> baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/6/$ba...


>
> [extras]
> name=extras
> baseurl=http://download.fedora.redhat.com/pub/fedora/linux/extras/6/$basearch/
>
> ──────────────────────────────────────
> 顺便说一下 由于 ftp.fedora.cn 没有x86这个文件夹

> 更新会出错ftp://ftp.fedora.cn/pub/fedora-cn/linux/6/x86_64/repodata/repomd.xml:

fun joy

unread,
Dec 5, 2006, 1:56:37 AM12/5/06
to fedora-...@googlegroups.com
也就是说我把包在本地编译好了 然后 creatrepo 最后上传到 ftp.fedora.cn ? spec文件就用ftp.fedora.cn 上的那些文件 和distfile?
那个ybuild 怎么用 搜了半天 只找到fedora-cn是基于ybuild的 其他的就没有了

在06-12-5,ZC Miao <hellwol...@gmail.com> 写道:
这是一个bootstrap过程阿,你不是编译了那些SRPM的么,用createrepo作一下,然后ybuildsys的repo设置为:
baseurl=file://file/to/your/repo

等所有编译好后就可以上传到服务器,然后就可以改回去了.先有鸡还是蛋的问题啊.

On 12月4日, 下午3时31分, " cnjoy...@gmail.com"
<cnjoy...@gmail.com> wrote:
> 尝试了一下 发现 ybuildsys-yum.conf 文件应该修改一下
> 以适应各个平台  修改后的 文件应该为
> ──────────────────────────────────────────
> [main]
> cachedir=/var/cache/yum
> keepcache=1
> debuglevel=2
> logfile=/var/log/yum.log
> pkgpolicy=newest
> tolerant=0
> exactarch=1
> metadata_expire=0
> obsoletes=1
> gpgcheck=0
>
> # PUT YOUR REPOS HERE OR IN separate files named file.repo
> # in /etc/yum.repos.d
> reposdir=''
>
> [ybuildsys]
> name=ybuildsys rpms

ZC Miao

unread,
Dec 6, 2006, 11:02:27 PM12/6/06
to fedora-...@googlegroups.com
On Tue, 2006-12-05 at 14:56 +0800, fun joy wrote:
> 也就是说我把包在本地编译好了 然后 creatrepo 最后上传到 ftp.fedora.cn ?
> spec文件就用ftp.fedora.cn 上的那些文件 和distfile?
恩,我现在关心的是你york成功否?

> 那个ybuild 怎么用 搜了半天 只找到fedora-cn是基于ybuild的 其他的就没有
> 了
等york成功了再说。
>
>
--
http://hellwolf.cublog.cn
gpg --keyserver pgp.mit.edu --recv-key 0x6B174C6F

WHOA!! Ken and Barbie are having TOO MUCH FUN!! It must be the
NEGATIVE IONS!!
signature.asc

fun joy

unread,
Dec 9, 2006, 1:58:09 AM12/9/06
to fedora-...@googlegroups.com
好的 目前大部分包都已经编译完了  怎么上传?
realplayer  64位的目前还有点问题  不过gentoo版有人已经编译成功了 过几天有时间我再试试
acroread  也是是32位的  感觉其实还没有evinve(FC默认就安装了)好用
zhcon 源在64位编译有问题 我在gentoo64 下emerge也是同样的问题 要改源码
zsnes 编译有问题  估计也是要patch的
sopcast提供的本来是32位的bin 如果能提供32位的libstdc++.so.0.5 好像也可以正常工作 (没有尝试 手头没有这个32位的lib FC6默认的 是libstdc++.so.0.6  ln过去不行  )
gsopcast 编译成功 如果sopcast能正常运行 它就没有问题
编译完了怎么上传 ?
附list
────────────────────────
x86_64
chmsee-0.9.6-6.x86_64.rpm           gsopcast-0.2.8-1.x86_64.rpm   sopcast-client-0.9.8-3.x86_64.rpm  ybuild-0.3.0-1.x86_64.rpm
filezilla-3.0.0.beta2-1.x86_64.rpm  multiget-1.0-1.x86_64.rpm     sopcast-client-1.0.2-3.x86_64.rpm  ybuild-developer-0.3.0-1.x86_64.rpm
ftpsync-1.2.30-2.x86_64.rpm         perl-RPM2-0.66-10.x86_64.rpm  win32codecs-20060611-4.x86_64.rpm
────────────────────────────────────-

2006/12/7, ZC Miao <hellwol...@gmail.com>:

ZC Miao

unread,
Dec 29, 2006, 9:06:49 AM12/29/06
to fedora-...@googlegroups.com
On Sat, 2006-12-09 at 14:58 +0800, fun joy wrote:
> 好的 目前大部分包都已经编译完了 怎么上传?
> realplayer 64位的目前还有点问题 不过gentoo版有人已经编译成功了 过几
> 天有时间我再试试
> acroread 也是是32位的 感觉其实还没有evinve(FC默认就安装了)好用
> zhcon 源在64位编译有问题 我在gentoo64 下emerge也是同样的问题 要改源码
> zsnes 编译有问题 估计也是要patch的
> sopcast提供的本来是32位的bin 如果能提供32位的libstdc++.so.0.5 好像也可
> 以正常工作 (没有尝试 手头没有这个32位的lib FC6默认的 是libstdc
> ++.so.0.6 ln过去不行 )
> gsopcast 编译成功 如果sopcast能正常运行 它就没有问题
> 编译完了怎么上传 ?
> 附list
> ────────────────────────
> x86_64
> chmsee-0.9.6-6.x86_64.rpm gsopcast-0.2.8-1.x86_64.rpm
> sopcast-client-0.9.8-3.x86_64.rpm ybuild-0.3.0-1.x86_64.rpm
> filezilla-3.0.0.beta2-1.x86_64.rpm multiget-1.0-1.x86_64.rpm
> sopcast-client-1.0.2-3.x86_64.rpm ybuild-developer-0.3.0-1.x86_64.rpm
> ftpsync-1.2.30-2.x86_64.rpm perl-RPM2-0.66-10.x86_64.rpm
> win32codecs-20060611-4.x86_64.rpm
哎,最近烦各种各样的事情阿~,一看都这么老的贴都还没回,:(
怎么出来的包是这样的?你用啥子编译的阿?

You know, 最近ftp出了点小问题,我在论坛里承诺是半个月恢复的,其实我也没
把握,也不知道我是否能在半个月内抽出时间来,郁闷,只怪我一直没把整个编译
过程流程详细做成文档:(。不过,还是要感谢joyfun的努力。
至于全面的恢复,一切只能争取……争取

>
--
http://hellwolf.cublog.cn
gpg --keyserver pgp.mit.edu --recv-key 0x6B174C6F

Sun in the night, everyone is together,
Ascending into the heavens, life is forever.
-- Brand X, "Moroccan Roll/Sun in the Night"
signature.asc

fun joy

unread,
Dec 31, 2006, 3:41:16 AM12/31/06
to fedora-...@googlegroups.com
我直接用rpmbuild -bb * 编译的 然后 creatrepo 上传那个ybuild 不知道怎么用
gmail这几天也很慢

 
在06-12-29,ZC Miao <hellwol...@gmail.com> 写道:
Reply all
Reply to author
Forward
0 new messages