上一文中讲到了在windows 7下如何编译firefox4.0, 今天换了一个平台,在Fedora13下编译。
那么就开始吧。
主要参考:
《Simple Firefox build》
《linux下编译Firefox 3.0浏览器全过程》
依然是一篇官方的英文文章,一篇中文文章。
1. [可选]替换yum的软件源
因为默认的官方的源在国内很慢,用的很让人崩溃,如果你的比较快,那么恭喜咯。
我用的是163的源。
使用方法在163的帮助里面有讲的很清楚。
下载fedora-163.repo 和fedora-updates-163.repo , 放入/etc/yum.repos.d/
运行yum makecache生成缓存。
我是先删除了原来的源的配置文件。
2. 安装相关的编译工具
sudo yum groupinstall 'Development Tools' 'Development Libraries' 'GNOME Software Development' sudo yum install mercurial autoconf213 glibc-static
3.安装glib库。
#cd /usr/src/
#mkdir firefox
#cd firefox
#tar xf glib-2.24.0.tar.bz2
#cd glib-2.24.0
#mkdir /usr/local/lib/glib-2.24.0
#./configure --prefix=/usr/local/lib/glib-2.24.0
#make
#make install
#export PKG_CONFIG_PATH=/usr/local/lib/glib-2.24.0/lib/pkgconfig:/usr/lib/pkgconfig #不知道是不是必须的
3. 同步源代码
#hg clone http://hg.mozilla.org/mozilla-central/
#cd mozilla-central
4. 编写mozconfig配置文件
#touch mozconfig
#vim mozconfig
添加以下内容
###### mozconfig file start ######### . $topsrcdir/browser/config/mozconfig mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj-@CONFIG_GUESS@ mk_add_options MOZ_MAKE_FLAGS="-j4" #ac_add_options --enable-debug #ac_add_options --disable-optimize #ac_add_options --disable-necko-wiki ###### mozconfig file end #########
解释一下这个配置
- . $topsrcdir/browser/config/mozconfig,执行源文件中的一个默认配置,其实就是把两个mozconfig相加。其中的$topsrcdir就是你mozilla-center目录,也就是firefox源代码根目录。
- mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj-@CONFIG_GUESS@,make add options,make命令添加选项。MOZ_OBJDIR是编译之后生成的目标目录位置,@TOPSRCDIR就是之前说的mozilla-center目录,这样的配置就是说我们编译之后生成的目标目录在mozilla-center的上一级的以obj-开头,以版本号结尾的目录里。
- mk_add_options MOZ_MAKE_FLAGS="-j4",表示编译的时候同时以4个线程进行,这样会比较快,如果你的CPU够快的话可以充分利用计算资源,我尝试过,加了这个参数之后30分钟,不加参数大概2个小时。
- #ac_add_options --enable-debug
- #ac_add_options --disable-optimize
- 这两个参数是用于你在debug编译时使用的,我们不用,只希望编译的快一点。
- #ac_add_options --disable-necko-wiki,这个参数是在如果你缺少一个关于wifi的库的话用于忽略的,但我试过,貌似没有起作用。我是用yum安装了这个库,库的名字不记得了,但编译信息中会有提示你。
4.最后就是编译了,很简单的命令,根windows里一样。
#make -f client.mk
但问题是,在check的时候可能会提示你缺少上文所说的wifi的库,我说过了,自己用yum装一个就行了。然后再重新执行这个编译命令。
5. 启动新的firefox。
编译之后的firefox在我的/usr/src/firefox/obj-i686-pc-linux-gnu/dist/bin/firefox的位置,双击以下就可以运行。
但问题来了,在我的机器上firefox在调用glib库的时候被SELinux拦了下来,我对Redhat搞的这个东西不太明白,索性关掉了,关闭的命令是
#setenforce 0
然后在运行firefox就OK了,以下是截图
界面上的改动不大,默认是根3.6一模一样的,但可以将标签栏和导航栏换个位置,截图中已经换了。
OK, the End.
本人新博客:tuoxie.me