`
rubynroll
  • 浏览: 204560 次
  • 性别: Icon_minigender_1
  • 来自: Wgt
社区版块
存档分类
最新评论

交叉编译Ruby傻瓜指南

阅读更多

最近看到有人在交叉编译ruby的时候似乎碰到了许多问题(http://www.iteye.com/topic/322718 )。其实交叉编译ruby原本应该是很简单的一个过程,希望这个“傻瓜指南”可以让新手也能够轻而易举地进行操作。

注 1: 本文以Arm-linux为目标平台,其他平台需要调整到对应的工具链。
注 2: 本文的编译平台是Linux (Debian/Ubuntu),如果在Cygwin下进行交叉编译可能会遇到困难。编译之前请确定bison和flex这两个程序已安装好。

 

交叉编译ruby-1.8.6:


第1步: 准备

  mkdir -p ~/build
  mkdir -p ~/bin

 

第2步: 下载交叉编译工具

  cd ~/bin
  wget http://www.codesourcery.com/gnu_toolchains/arm/portal/package3696/public/arm-none-linux-gnueabi/arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
  tar -jxvf arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
 


第3步: 下载ruby源码

  cd ~/build
  wget ftp://www.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6.tar.bz2
  tar -jxvf ruby-1.8.6.tar.bz2
 


第4步: 打补丁
  把本文附件中的ruby-configure.patch.tar.bz2和fakeruby.patch.tar.bz2下载到~/build中,并解压:

  tar -jxvf ruby-configure.patch.tar.bz2
  tar -jxvf fakeruby.patch.tar.bz2
  cd ruby-1.8.6
  patch < ../ruby-configure.patch
  patch < ../fakeruby.patch

 


第5步: 配置

  cd ~/build/ruby-1.8.6
  export CC=~/bin/arm-2008q3/bin/arm-none-linux-gnueabi-gcc
  autoreconf
  mkdir -p /opt/arm-linux-ruby
  ./configure --host=arm-linux --target=arm-linux --disable-pthread --enable-shared --prefix=/opt/arm-linux-ruby 2>&1 | tee config.out



第6步: 编译,安装

  make 2>&1 | tee make.out
  make install 2>&1 | tee install.out


大功告成。现在,在/opt/arm-linux-ruby下可以看到交叉编译好的ruby,你可以根据需要自己再裁减,或者用strip来对可执行文件与库文件进行“廋身”,然后下载到目标板上即可。

 

 

 

交叉编译ruby-1.8.7-p72:

 

 

1.  首先,要对codesourcery的交叉编译工具进行一个小改动:

把本文附件fix-compiler.rb.tar.bz2解开,然后运行:

    ruby fix-compiler.rb ~/bin/arm-2008q3/bin
 

 

2.  对ruby源码打补丁时,除了文中提到的两个补丁外,还需打上extmk.patch

 

 

3.  在配置1.8.7-p72之前,把交叉工具的路径添入当前路径:

export PATH=~/bin/arm-2008q3/bin:$PATH
 

 

其余步骤和1.8.6版本一样不再重复。

 

交叉编译ruby-1.9.1-p0:

 

基本步骤与交叉编译ruby-1.8.7-p71一样,只是那个extmk.patch不用打了,1.9.1里面已经修正了这个错误。ruby-configure.patch和fakeruby.patch这两个补丁仍然需要打。真不敢相信, setpgrp (被ruby-configure.patch修正) 和fake-ruby(被fakeruby.patch修正) 这两个bug从ruby 1.8.2开始就存在,一直到ruby 1.9都还没被修正

 

另外还需注意的是,在交叉编译ruby-1.9之前,编译机器上必须先安装ruby-1.9,确保在编译之前ruby -v输出是版本1.9。

 

 

-----------------------------------

Acknowledgement: 本文采用的'ruby-configure.patch'补丁来自于Debian。

 

 

 

 

分享到:
评论
1 楼 geyiju 2011-08-03  
 

相关推荐

    【工作点滴】用VS 2010 编译 Ruby 1.9.1

    标题“【工作点滴】用VS 2010 编译 Ruby 1.9.1”涉及的是在Visual Studio 2010环境下编译Ruby编程语言的1.9.1版本。这是一个关于软件开发过程中的实践操作,尤其是针对Windows平台上的C/C++开发。在Windows上编译...

    编译ruby用到依赖模块(for windows)

    此外,注意不同Ruby版本可能对编译环境有不同的要求,所以务必查阅官方文档或社区的编译指南。 10. **社区支持**: 遇到问题时,Ruby社区是一个宝贵的资源。Stack Overflow、GitHub的issue追踪器、Ruby论坛等都是...

    银河麒麟V10系统+飞腾CPU交叉编译Qt5.15

    在本文中,我们将深入探讨如何在银河麒麟V10操作系统上,使用飞腾CPU进行Qt 5.15.2的交叉编译。这个过程涉及到多个步骤,包括环境准备、依赖库的安装以及编译与安装Qt框架。首先,我们从准备工作开始。 ### 一、...

    Ruby用户指南

    Ruby用户初级学习指南

    《Ruby用户指南》中文版

    《Ruby用户指南》中文版是一本深入浅出的Ruby编程语言教程,旨在帮助读者全面理解和掌握这门动态、灵活的编程语言。Ruby以其简洁、优雅的语法和强大的元编程能力著称,是许多开发者首选的脚本语言。本书将带你走进...

    Ruby-RuboCop是Ruby静态代码分析器基于社区Ruby风格指南

    作为一款静态代码分析器,它的主要任务是对Ruby代码进行检查,找出不符合社区广泛接受的Ruby风格指南的代码片段。Ruby风格指南是由社区成员共同维护的一系列规则,旨在提高代码可读性、可维护性和团队合作效率。 ...

    Ruby黑客指南(Minero Aoki)Ruby Hacking Guide (Minero Aoki)

    《Ruby黑客指南》是由Minero Aoki撰写的书籍,旨在深入探讨Ruby解释器——即Ruby语言的官方C语言实现——的内部工作原理。为了充分理解本书内容,读者需要具备扎实的C语言和Ruby语言知识。本书不仅涵盖了Ruby语言的...

    Ruby 学习指南.rar

    本"Ruby学习指南"旨在帮助初学者快速掌握Ruby的基础知识,同时也为有一定经验的开发者提供深入学习的资源。 1. **Ruby基础** - 变量:Ruby有五种变量类型,包括局部变量、实例变量、类变量、全局变量和常量,它们...

    Ruby-Ruby样式指南带有linter和自动代码修复程序

    "Ruby-Ruby样式指南带有linter和自动代码修复程序"是一个资源,旨在帮助开发者遵循最佳实践,提升代码质量。这里我们将详细探讨Ruby代码风格指南、linter以及自动代码修复工具。 1. **Ruby代码风格指南**: Ruby...

    Ruby-rubybuild编译和安装Ruby

    总结来说,`Ruby-rubybuild`是Ruby开发中非常实用的环境管理工具,通过`ruby-build`我们可以方便地编译和安装各种版本的Ruby,配合`rbenv`实现多版本的灵活切换,确保项目的稳定性和兼容性。无论你是初学者还是经验...

    Ruby风格指南的最佳实践,以便现实世界的 Ruby 程序员可以编写可由其他现实世界的 Ruby 程序员维护的代码

    本 Ruby 风格指南推荐了最佳实践,以便现实世界的 Ruby 程序员可以编写可由其他现实世界的 Ruby 程序员维护的代码。一个反映现实世界使用情况的风格指南被使用,而一个坚持被它应该帮助的人拒绝的理想的风格指南则有...

    Ruby编程,实用程序员指南Programming Ruby, The Pragmatic Programmer's Guide

    《Ruby编程,实用程序员指南》是一本针对Ruby语言的学习教程与参考手册,旨在为程序员提供一个全面、深入的Ruby语言学习资源。本书不仅适合初学者快速入门,也适合具有一定经验的开发者进阶学习。 ### 一、Ruby语言...

    Ruby Airbnb风格指南

    Ruby Airbnb风格指南

    Ruby On Rails 官方指南

    原文在此http://guides.ruby-china.org/index.html 我只是把html拷贝到word里面罢了 然而只拷贝到了Rails 安全指南这一章,后面的太多就没拷贝了 初学者只需打印到368页即可

    为什么是(Poignant)Ruby指南Why's (Poignant) Guide to Ruby

    《为什么是(Poignant)Ruby指南Why's (Poignant) Guide to Ruby》是一本非常独特且内容丰富的Ruby编程语言教程。这本书由Why所编写,并以其幽默的语言风格和深入浅出的解释方式闻名于Ruby社区。它不仅仅是一本技术...

    Ruby on Rails中文指南

    在Ruby on Rails中文指南中,你将全面学习到如何利用这个强大的框架来构建动态的、数据驱动的Web应用程序。 首先,让我们深入理解Rails的核心概念: 1. **路由(Routes)**:Rails的路由系统是应用程序的导航蓝图...

    Ruby不完全读书指南.rar

    本不完全读书指南将深入介绍Ruby的核心概念和特性,帮助初学者快速入门并理解其精髓。 Ruby由日本人松本行弘于1993年创建,其目标是创造一种易于理解和使用的编程语言,同时又具有高度的灵活性和表达能力。Ruby在...

    Ruby2.5.3编译后的文件+其他文件

    在你提供的压缩包“Ruby2.5.3编译后的文件+其他文件”中,我们可以推测包含的是Ruby 2.5.3的编译产物。这些编译产物通常包括以下部分: 1. **动态库**:动态链接库(Dynamic Link Library,简称DLL)是Windows操作...

    ruby and watir 安装指南

    ### Ruby 和 Watir 的安装指南 #### 背景与问题描述 在尝试安装 Watir 时遇到问题,尤其是在服务器 2003 上。主要问题是 Watir 的依赖包 `activesupport` 需要 Ruby 版本 &gt;= 1.8.7,而当前系统上安装的是 Ruby ...

Global site tag (gtag.js) - Google Analytics