我们都知道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
- 浏览 2040
- 评论(8)
- 论坛回复 / 浏览 (7 / 6266)
- 查看更多
相关推荐
德贝西读取 Debian/Ubuntu(DEB 格式)包文件属性的一种非常简单的方法。 通过这种方式,它是的 Debian/Ubuntu 伴侣。用法 require 'debeasy'pkg = Debeasy.read("/path/to/package.deb")puts pkg.architecture=> ...
下面介绍如何在 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风格的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 ...
简而言之,Homebrew是Mac Os的包管理工具,相当于Redhat Linux(Centos/RHEL/Fedora)的yum或者Debian Linux(Debian/Ubuntu)的apt-get。 如何安装Homebrew? 我们使用官网提供的统一安装方法,只需执行下面的命令即可...
本手册支持的非基于Debian的发行版(如Red Hat / CentOS,ArchLinux和其他版本)将具有模仿Debian / Ubuntu风格的配置,因为使用Chef可以更轻松地进行管理。 Debian风格的Apache配置使用脚本来管理模块和站点...
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 源代码和其他二进制文件 如果从源代码进行编译,则可
在RHEL/Ubuntu/Debian上从OS repo安装MongoDB或者从10gen repository
安装只需运行即可将Ruby / GSL安装为Ruby Gem 宝石安装rb-gsl 请注意,在可以安装Ruby / GSL之前,必须已经安装了GSL库: Debian / Ubuntu:+ libgsl0-dev + Fedora / SuSE:+ gsl-devel + Gentoo:+ sci-libs / gsl...
红外套件 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...
rvm使用mixed-mode安装进行安装:可由系统上的所有用户使用,并且在用户的$ HOME中具有孤立的Ruby/宝石集(请参阅更多); rvm已安装到/usr/share/rvm (按照Debian / Ubuntu约定); Ubuntu PPA提供的自动更新;...
apt_uri -ROS Debian / Ubuntu软件包的apt存储库的URI。 默认值: 'http://packages.ros.org/ros/ubuntu' : 'http://packages.ros.org/ros/ubuntu' apt_components -apt回购组件的数组。 默认值: ['main'] apt_...
它提供以下功能: SSH 公钥管理存储库管理Gitolite 管理存储库引导要求Ruby 2.x 一个有效的装置安装安装依赖项: # On Debian/Ubunturoot# apt-get install build-essential libssh2-1 libssh2-1-dev cmake libgpg-...
install https://github.com/rmagick/rmagick.gitDebian / Ubuntu sudo apt-get install git-core mailutils libopencv-highgui-dev ruby-rmagick ruby-dev ninja-build安装使用gem安装Ruby依赖项: sudo gem ...
对于Debian / Ubuntu系统,请使用: $ sudo apt install libvulkan-dev libsdl2-dev libglm-dev glslang-tools 将此行添加到您的应用程序的Gemfile中: gem 'blue_kitty' 然后执行: $ bun
重要的不要使用apt-get在Debian和Ubuntu上安装Ruby,Gems或Rails软件包。 该系统已过时,可能会引起头痛。 以下安装方法会在您的家庭中创建一种沙箱:〜/ .rvm。 是什么保证了更孤立的环境。要求/安装[Debian / ...
Debian / Ubuntu apt-get install libqt4-gui libqt4-dev cmake ruby-dev libssl-dev费朵拉百胜安装gcc-c ++ qt-devel cmake ruby-devel rubygems 请注意,Fedora 20上的默认GTK主题
电子商务 ,顶级开源电子商务平台的排行榜。 贡献 这里缺少电子商务平台吗? 只需分叉存储库,然后将平台作为<name>.md添加...Debian / Ubuntu sudo apt install ruby-bundler ruby-dev 其他 检查ruby是否可以编译na
先决条件基于Debian / Ubuntu的计算机。 尚未在任何其他操作系统上进行测试。 您还将需要获取所有必需的git子模块: $ git submodule update --init --recursive如果要保持“最新”状态,请确保不时更新本地子模块...