我们都知道Debian/Ubuntu通过apt-get安装的ruby包很慢(参考:各种Ruby实现的性能评测修正版本
)
通常我们都是通过自己从www.ruby-lang.org上下载源码并编译安装ruby来绕过这个问题,并且自己编译还可以打上各种补丁,比如这个(解决ruby
内存泄漏的超级大补丁发布啦
)
但是自己编译的ruby不能被dpkg -l识别,debian/ubuntu系统中有些包是依赖于ruby包的,安装这些软件包会要求安装ruby包,这样系统中就有两个(或者更多)ruby。虽然这在大部分情况下都不是问题,但是有些脚本在开头不是使用env来获得ruby而是hardcode #/usr/bin/ruby,这个时候就有问题了。
debian/ubuntu apt-get得到的ruby(v1.8.7.72)
之所以会有性能问题(慢50%),是因为仓库中的是debug版本,而且编译目标是i486平台,拖累了性能,我们可以通过去掉调试标志,指定到i686平台,重新编译deb包来解决这个问题。
1) 准备编译依赖包:
sudo apt-get build-dep ruby1.8
2) 取得deb包源码:
mkdir -p ~/build && cd ~/build
apt-get source ruby1.8
3) 修改编译参数:
cd ~/build/ruby1.8-1.8.7.72/debian
修改rule文件,去掉CFLAGS中的"-g
", 并在头部加上:
export DEB_BUILD_GNU_TYPE=i686-linux-gnu
export DEB_BUILD_GNU_CPU=i686
export DEB_HOST_GNU_CPU=i686
export DEB_HOST_GNU_TYPE=i686-linux-gnu
4) 编译:
cd ~/build/ruby1.8-1.8.7.72 && debuild -uc -us
5) 安装:
cd ~/build && sudo dpkg -i *.deb
如果要打其他补丁(如MBARI补丁),可以在步骤3和4之间进行。
这样,系统中就只有一份本地编译优化过的ruby,所有使用到ruby的包都将受益。
分享到:
- 2008-12-30 19:27
- 浏览 2091
- 评论(8)
- 论坛回复 / 浏览 (7 / 6304)
- 查看更多
相关推荐
德贝西读取 Debian/Ubuntu(DEB 格式)包文件属性的一种非常简单的方法。 通过这种方式,它是的 Debian/Ubuntu 伴侣。用法 require 'debeasy'pkg = Debeasy.read("/path/to/package.deb")puts pkg.architecture=> ...
1. 更新系统软件包:确保你的系统是最新的,可以通过运行`sudo apt-get update`(Ubuntu/Debian)或`brew update`(macOS,需要Homebrew)来完成。 2. 安装依赖:在Ubuntu/Debian上,需要安装`curl`和`gpg`,使用`...
下面介绍如何在 Debian/Ubuntu 和 Centos 下搭建配置 GitLab。 安装依赖 Debian/Ubuntu下: 代码如下: sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev ...
对于基于Debian或Ubuntu的系统,你可以使用`apt`包管理器来安装Ruby。首先,需要添加`ppa:ubuntu-toolchain-r/test`仓库,这个仓库包含较新的GCC版本,Ruby 2.5.3可能需要这个版本来编译: ```bash sudo add-apt-...
描述本菜谱提供了完整的Debian / Ubuntu风格的Apache HTTPD配置。 本手册支持的非基于Debian的发行版(如Red Hat / CentOS,ArchLinux和其他版本)将具有模仿Debian / Ubuntu风格的配置,因为使用Chef可以更轻松地...
Debian / Ubuntu # ruby installation stuff: sudo apt remove ruby # um ruby einmal zu deinstallieren, eigentlich nicht nötig im idealfall sudo apt install ruby # oder sudo apt --upgrade ruby # read ...
sudo apt-get install mysql-server libmysqlclient-dev # 对于Ubuntu/Debian sudo yum install mysql-server mysql-devel # 对于CentOS/RHEL sudo /usr/local/ruby/bin/gem install mysql2 ``` 最后,安装RoR框架...
在Ubuntu或Debian系统上,可以使用以下命令安装: ```bash sudo apt-get update sudo apt-get install build-essential zlib1g-dev libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev ...
简而言之,Homebrew是Mac Os的包管理工具,相当于Redhat Linux(Centos/RHEL/Fedora)的yum或者Debian Linux(Debian/Ubuntu)的apt-get。 如何安装Homebrew? 我们使用官网提供的统一安装方法,只需执行下面的命令即可...
这些可以通过包管理器(如apt-get for Debian/Ubuntu或yum for CentOS/RHEL)来安装。 2. **下载源码**:从Ruby官方网站或者通过git克隆获取Ruby-2.3.0的源代码。压缩包文件"ruby-2.3.0"包含了所有源代码文件。 3....
本手册支持的非基于Debian的发行版(如Red Hat / CentOS,ArchLinux和其他版本)将具有模仿Debian / Ubuntu风格的配置,因为使用Chef可以更轻松地进行管理。 Debian风格的Apache配置使用脚本来管理模块和站点...
**对于 Debian 或 Ubuntu 系统:** ```bash sudo apt-get install ruby-full ``` **对于 macOS 系统:** ```bash brew install ruby ``` **2. 验证安装** 安装完成后,使用 `ruby -v` 命令验证 Ruby ...
sudo apt-get install sqlite3 libsqlite3-dev # 对于 Debian/Ubuntu sudo yum install sqlite-devel # 对于 CentOS/RHEL ``` 如果你遇到了特定版本的需求,例如压缩包文件名中提到的 `sqlite3-ruby-1.2.1-...
Debian / Ubuntu基地 $ sudo apt update $ sudo apt install nodejs $ sudo apt install npm Mac OSX 安装家庭酿造 $ /usr/bin/ruby -e "$(curl -fsSL ...
Ruby-LLVM Ruby-LLVM是一种与LLVM编译器基础...Debian / Ubuntu 自制酒 LLVM可以通过执行brew install llvm --shared与Homebrew一起brew install llvm --shared 源代码和其他二进制文件 如果从源代码进行编译,则可
安装只需运行即可将Ruby / GSL安装为Ruby Gem 宝石安装rb-gsl 请注意,在可以安装Ruby / GSL之前,必须已经安装了GSL库: Debian / Ubuntu:+ libgsl0-dev + Fedora / SuSE:+ gsl-devel + Gentoo:+ sci-libs / gsl...
例如,在Ubuntu或Debian上可以通过`sudo apt-get install ruby-full`进行安装。 #### 从源码构建 对于高级用户或者特定需求,可以从源码编译Ruby: 1. **下载源码**: 从Ruby官方网站下载最新的源码包。 2. **配置**...
红外套件 Ruby客户端 要求Ruby2.0 + Mac OSX或Linux安装对于Mac % gem install irkit适用于Debian / Ubuntu Linux % sudo apt-get install libavahi-compat-libdnssd-dev% gem install irkitirkit命令% irkit --help...
总结,安装MongoDB在RHEL/Ubuntu/Debian系统上主要涉及添加repository、安装软件包、启动服务以及在Ruby环境中使用MongoDB驱动。通过掌握这些步骤,你可以在开发过程中便捷地集成和使用MongoDB作为数据存储。
rvm使用mixed-mode安装进行安装:可由系统上的所有用户使用,并且在用户的$ HOME中具有孤立的Ruby/宝石集(请参阅更多); rvm已安装到/usr/share/rvm (按照Debian / Ubuntu约定); Ubuntu PPA提供的自动更新;...