Articles of ruby

bundler:找不到命令:unicorn_rails

重新启动gitlab时,我得到这个: Starting both the GitLab Unicorn and Sidekiqbundler: command not found: unicorn_rails Install missing gem executables with `bundle install 我安装gitlab 6.3.0与ruby1.9.3在我6.3分钟6.3。 我试图从用户'git': 捆绑安装 – 无需开发testingpgsql – 不需要部署 我得到这个: input您的密码以将捆绑的RubyGems安装到您的系统中: 这是要求sudo特权。 然后它为许多包(gem),并失败。 An error occurred while installing i18n (0.6.5), and Bundler cannot continue. Make sure that `gem install i18n -v '0.6.5'` succeeds before bundling. 任何帮助将不胜感激。 谢谢。 […]

(111:连接被拒绝),同时连接到上游 – Opsworks Rails 4

我在OpsWorks(Ubuntu 14.04,nginx和unicorn)中部署了一个rails 4应用程序,当我打开主页的时候,我得到一个502错误的网关错误。 在nginx / error.log中我可以看到这个错误: 2015/01/25 06:19:42 [error] 3652#0: *1 connect() to unix:/srv/www/app/shared/sockets/unicorn.sock failed (111: Connection refused) while connecting to upstream, client: IP, server: app$ 在这里你可以看到我的nginx.conf的更多信息: user www-data; worker_processes 10; error_log /var/log/nginx/error.log; pid /run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout […]

Logstash事件@timestamp调整

我有标准的Windows IIS日志文件与事件date/时间戳记信息和timetaken(以毫秒为单位)。 我希望能够通过减去“timetaken”来调整事件时间(@timestamp),以便能够logging事件何时开始,而不是什么时候完成。 我已经看过使用ruby插件,但我的ruby知识是零。 我的第一个尝试是这样的: ruby { code => "event['@timestamp_adj'] = (event['@timestamp'].to_f – (event['timetaken'].to_f/1000)))" } 但是,这将时间戳转换为数字,如何将其返回到date? 一些样本date:(与敏感数据的redactions和mangles) { "@timestamp" => "2015-10-22T22:59:49.000Z", "timestamp" => "2015-10-22 23:59:49", "method" => "GET", "page" => "/spacer.gif", "response" => "200", "timetaken" => "2120", "@timestamp_adj" => 1445554789.0 } 在这个(组成)的情况下,事件时间是22:59:49.000,花了2.120秒(2,120毫秒)来完成。 我想要的是@timestamp_adjlogging22:59:48.880 或者: 如何将现在的“数字”时间戳转换回Elasticsearch将识别的时间string? 或者如何做date/时间math而不破坏date/时间编码? 提前致谢。

Postfix的最佳设置和优化VPS上的自定义传送脚本

所以我在Linode 1080 VPS上部署了Postfix + saslauthd + Courier-IMAP。 我们是一个小公司,我们有大约30个账户(为了方便+ Maildirs使用物理* nix用户,请参阅后面的内容),但是我们广泛使用Courier的共享文件夹(对于多个账户)使用自定义脚本I在Ruby中写道。 它通过Spamassassin过滤电子邮件,用一些规则读取YAML文件,然后执行几个检查,看看在我们的复杂结构中电子邮件的位置。 Maildirs和phyiscal用户为我提供了所需的灵活性。 邮件被接收,然后传递给我的脚本,该脚本在其主目录中的用户的.forward文件中定义。 总而言之,该脚本需要大约2秒钟才能完成。 现在,我们没有相对较高的电子邮件数量(我估计大约每小时30-50封电子邮件),但是我正在寻找方法加快速度,同时确保我们的电子邮件负载变得更高(或者我们发现“垃圾邮件风暴'),我们的服务器不会突然出现内存不足等问题。我的问题是: 在传递给我的脚本之前,通过spamassassin 守护进程 (而不是每次收到邮件时都会启动应用程序)来过滤电子邮件的方式是什么? 猜猜现在这样做是不好的做法。 有没有办法限制postfix同时传递给我的脚本的电子邮件数量? 我不想最终有10个脚本在同一时间运行。 我怎么能把我的脚本变成一个守护进程? 这会让事情变得更快吗? 提前致谢。 PS:电子邮件(以及/ home)存储在一个单独的XFS分区上,并挂载noatime。

价格合理的Ruby / Rails / Redmine + Subversion托pipe?

我正在寻找一个可靠的托pipe公司,我可以委托我的代码以一些Subversion版本库的forms,以及Redmine项目pipe理工具的副本。 我正在寻找一些可以支付一年或两年的东西,并不是太昂贵。 我不在乎公司的位置,只要它是值得信赖和坚实的。 有人知道好的build议吗? 最好从自己的,个人的,好的经验。 我曾经看过CVSDude / Codesion ,虽然他们当然是伟大的,但他们当然不提供Redmine,而且似乎主要是针对更大的组织。 我需要什么: 2-5 Gig的空间最小,SVN和Redmine附件之间可自由分配 无限数量的Subversion项目 访问控制(团队成员/结帐专用帐户/等)我不介意configurationsvn设置文件的基础上我自己 我需要将自定义域映射到其他位置托pipe的包的可能性 频繁备份和通过FTP或其他方式访问这些备份 到目前为止,我一直在为自己的虚拟服务器运行,但是我不想要麻烦,特别是在安全方面,而我可能并不总是通过互联网来解决可能出现的问题。

不能用Nginx安装乘客

我有一个机架应用程序,我想从Ruby 1.8.7 + Apache +乘客迁移到Ruby 1.9.1 + Nginx +乘客。 我已经编写了一个快速安装以下脚本,并引发错误… 这里是安装脚本:(基本的一个,我需要在Ubuntu 10.04 Lucid Lynx新鲜的盒子上安装所有的步骤) Nginx的源码 cd / tmp wget http://nginx.org/download/nginx-0.7.66.tar.gz tar xzf nginx-0.7.66.tar.gz cd nginx-0.7.66 openssl是SSL / TLS所必需的 sudo apt-get install openssl sudo apt-get install libssl-dev 编译的东西 sudo apt-get zlib1g-dev Ruby解释器1.9.1 sudo apt-get install ruby​​1.9.1 ruby​​1.9.1-dev ruby​​gems1.9.1 irb1.9.1 ri1.9.1 rdoc1.9.1 build-essential nginx libopenssl-ruby1.9.1 确保默认的ruby使用版本1.9.1 sudo […]

对于不熟悉Ruby的木偶用户,是否有Ruby / ERB备忘单?

我仍然正在处理木偶,开始混淆基于Ruby的ERB系统的模板。 我一般不熟悉Ruby,有没有人知道ERB的备忘单,还是需要弄脏我的手,学习一些Ruby的基础知识?

如何获得Apache的www数据识别RVm?

问题:Apache / Passenger不识别RVM 我有一个多用户安装的RVM,按照规范说明: http : //beginrescueend.com/rvm/install/ 然后,我编辑了/etc/profile.d/rvm.sh以包含以下行,以便Ruby 1.9是用于login的所有用户的版本: rvm use –default 1.9.2 我的系统中至less有3个用户: ubuntu (我用来执行所有交互式任务的默认用户) 乘客 (这是用户部署任务) www-data (这大概是我设置的服务httpd请求的用户) 以交互方式login到Ubuntu和乘客时 ,以下内容可以正确返回: $ ruby -v ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux] 但是,实际提供这些请求的www-data用户从来不会执行/etc/profile.d/rvm.sh(或者profile.d中的任何内容)。 因此,以www数据用户身份login时总是会发生以下情况: $ ruby -v ruby 1.8.7 (2010-08-16 patchlevel 302) [x86_64-linux] 由于这个原因,Bundler在我的开发沙箱上运行正确的Ruby版本,但在运行时出现了“无法在Ruby 1.8上安装Gem”types的错误: $ cap deploy <snip> * executing "cd /var/www/app/releases/20111031001406 && bundle install […]

Puppet模板和undefined / nilvariables

我经常想在Puppet模板中包含默认值。 我希望给这样一个class: class myclass ($a_variable=undef) { file { '/tmp/myfile': content => template('myclass/myfile.erb'), } } 我可以做一个这样的模板: a_variable = <%= a_variable || "a default value" %> 不幸的是,Puppet中的undef没有在模板的上下文中翻译成Ruby nil值,所以这实际上并不起作用。 在Puppet模板中处理默认值的规范方式是什么? 我可以将默认值设置为空string,然后使用empty? testing… a variable = <%= a_variable.empty? ? "a default value" : a_variable %> 但是,这似乎有点笨重。

如何使Chef-Server在Ubuntu上使用Ruby 1.9?

我已经使用官方说明在Ubuntu 12.04上安装了Chef Server,它使用embedded了ruby 1.8.7的“omnibus installer”。 我试图安装刀窗 ,但是当我运行gem install knife-windows我得到这个错误: ERROR: Error installing knife-windows: gssapi requires Ruby version >= 1.9.1. 我尝试安装RVM和1.9.3,但我得到这个错误,并退还: /opt/vagrant_ruby/lib/ruby/site_ruby/1.8/rubygems.rb:900:in `report_activate_error': Could not find RubyGem chef (>= 0) (Gem::LoadError) from /opt/vagrant_ruby/lib/ruby/site_ruby/1.8/rubygems.rb:248:in `activate' from /opt/vagrant_ruby/lib/ruby/site_ruby/1.8/rubygems.rb:1276:in `gem' from /opt/vagrant_ruby/bin/knife:18 用Ruby 1.9.x安装Chef server&knife的正确方法是什么?