存档

2014年2月 的存档

解决 redmine 启动报错 uninitialized constant Gem::SourceIndex (NameError)

2014年2月24日 没有评论

公司内网机房掉电(至于为啥没有ups,这里不讨论),redmine服务器启动后服务没有自启动,上去手动启动了下服务,报错如下,google了把后说是版本冲突,期间应该是有同事升级过这台的gem版本,运行gem update –system引起

root@OPS:/data/htdocs/redmine/redmine-1.4# /usr/local/services/ruby/bin/ruby /data/htdocs/redmine/redmine-1.4/script/server webrick -e production -d
/usr/local/services/ruby/lib/ruby/gems/1.9.1/gems/bundler-1.1.5/lib/bundler/rubygems_integration.rb:187:in stub_source_index170': uninitialized constant Gem::SourceIndex (NameError)
from /usr/local/services/ruby/lib/ruby/gems/1.9.1/gems/bundler-1.1.5/lib/bundler/rubygems_integration.rb:353:in
stub_rubygems’
from /usr/local/services/ruby/lib/ruby/gems/1.9.1/gems/bundler-1.1.5/lib/bundler/rubygems_integration.rb:250:in replace_entrypoints'
from /usr/local/services/ruby/lib/ruby/gems/1.9.1/gems/bundler-1.1.5/lib/bundler/runtime.rb:14:in
setup’
from /usr/local/services/ruby/lib/ruby/gems/1.9.1/gems/bundler-1.1.5/lib/bundler.rb:107:in setup'
from /data/htdocs/redmine/redmine-1.4/config/preinitializer.rb:16:in

from /data/htdocs/redmine/redmine-1.4/config/boot.rb:33:in load'
from /data/htdocs/redmine/redmine-1.4/config/boot.rb:33:in
preinitialize’
from /data/htdocs/redmine/redmine-1.4/config/boot.rb:15:in boot!'
from /data/htdocs/redmine/redmine-1.4/config/boot.rb:124:in

from /usr/local/services/ruby/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in require'
from /usr/local/services/ruby/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in
require’
from /data/htdocs/redmine/redmine-1.4/script/server:2:in `

root@OPS:/data/htdocs/redmine/redmine-1.4# gem –version
2.1.11
root@OPS:/data/htdocs/redmine/redmine-1.4# ruby –version
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]

root@OPS:/data/htdocs/redmine/redmine-1.4# rails –version
Rails 2.3.14

root@OPS:/data/htdocs/redmine/redmine-1.4# bundle –version
Bundler version 1.1.5

解决方案:
首先升级了bundle为最新,gem update bundle 失败告终。

最后接近办法是将gem 版本降级 gem update –system 1.8.25

linux下源码包自动生存RPM包工具checkinstall

2014年2月24日 没有评论

Checkinstall 是一个能从 tar.gz 类的源代码自动生成 RPM/Debian 或Slackware 安装包的程序。通过 CheckInstall,你就能用几乎所有的 tar.gz 类的源代码来生成“干净”的安装或者卸载包。

最近在测试ansible,对软件安装包进行部署的时候,发现编译安装开始不适合批量状态管理,将软件打成rpm后放入yum源可以快速安装,卸载,升级软件等操作。

 

1.安装checkinstall

 2.安装过程中遇到的问题记录

  • 这里make的时候会出现报错

解决方案:

  • 继续make会报另外一个错 msgfmt not found

解决方案:

  • 继续make又报了个错

vim installwatch/installwatch.c

将101行处修改

将121行处修改:

2941行修改

 

 

将3080行修改:

将 3692行修改:

完成后make,直接make install 虽然不会报错但是在使用checkinstall 的时候,会报错

  • 安装好后,使用过程中还有个问题,解决方案如下

 checkinstall 使用

如果用checkinstall 这个工具后   安装一个软件后 不需要最后的make install 了  前2步搞完了  直接 用checkinstall 来搞就行

例如打一个zabbix rpm包

cd  zabbix-2.0.5

./configure –prefix=/usr/local/zabbix –enable-server –enable-agent –with-mysql –with-net-snmp –with-libcurl

make

checkinstall

然后用 checkinstall 工具会有向导提示,由于比较简单就不截图了。

 

附录
如果报这个错,rpm安装下  yum install rpm-build

*** The “rpmbuild” program is not in your PATH!

 

这里我提供下我打好的checkinstall-1.6.2-1.x86_64.rpm

http://pan.baidu.com/s/1gdpEhsJ