Articles of ruby,

如何在windows上将rubygems平台从x86-mingw32更改为x86-mswin32-60

我正在做一些在Windows中的Ruby脚本,其中涉及打开和closures浏览器。 为此,我需要一些特殊的gem来接口到本地的Windows系统调用。 但是当我尝试 > gem install sys-proctable ,它屈服了 ERROR: Could not find a valid gem ´sys-proctable´ (>= 0), here is why: Found sys-proctable (0.9.0), but was for platforms x86-darwin-8 ,x86-freebsd-7 ,x86-solaris-2.10 ,x86-linux ,x86-mswin32-60 问题是我的gem安装没有x86-mswin32-60 ruby​​gems平台 > gem environment RubyGems Environment: – RUBYGEMS VERSION: 1.3.7 – RUBY VERSION: 1.8.7 (2010-01-10 patchlevel 249) [i386-mingw32] … – RUBYGEMS […]

安装rvm结果bash:没有这样的文件或目录

我已经安装了cygwin的bash,curl等最新的二进制文件。 每次我运行命令curl -L https://get.rvm.io | bash -s stable curl -L https://get.rvm.io | bash -s stable ,我得到相同的结果: % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 184 100 184 0 0 114 0 0:00:01 0:00:01 –:–:– 136 100 22726 100 22726 0 0 12556 0 0:00:01 […]

在Ruby中观察Windows上的修改文件

我正在使用Win32-utils gem编写一个Windows服务。 该服务目前正常工作,但其中很大一部分function要求它知道文件何时被修改。 我目前正在做一个包含有关每个文件的数据的大散列,这对于相对较小的目录来说效果很好,但是当在包含〜50000个文件的文件夹上投入使用时,这会消耗大量内存,并且需要很长时间来检查更新。 代码如下所示: 首先运行(设置哈希): Find.find(@local_base) do |path| # Don't keep any directories in the hash if not FileTest.directory?(path) f = open(path) f.rewind @files[path.gsub(@local_base, "")] = DataFile.new(@local_base, path.gsub(@local_base, ""), Digest::MD5.hexdigest(f.read.gsub("\n", "\r\n")), f.mtime.to_i, @last_checked) end end 后续运行(检查更新): def check_for_updates # can't/shouldn't modified a hash while iterating, so set up temp storage tempHash = Hash.new Find.find(@local_base) […]

OpenSuse – RubyGems安装 – 错误的文件名称

我有一个全新的安装OpenSuse 13.1安装。 ruby -v – > ruby 2.0.0p247 (2013-06-27) [x86_64-linux] gem -v – > 2.3.0 运行gem env输出如下: EXECUTABLE DIRECTORY : /usr/bin 。 这也是我的$PATH 。 我尝试按照安装指南中的描述安装sass和compass : sudo gem install sass sudo gem install compass (我需要使用sudo因为它没有工作) 唯一的问题:既不运行sass命令也不运行compass 。 过了一会儿,我发现我不得不使用sass2.0和compass2.0来运行它们。 /usr/bin中的ruby脚本在文件名末尾用2.0命名。 为什么最后用2.0命名的ruby脚本? 我怎样才能防止这个? 我想在terminal使用compass和sass 。 我没有得到任何使用谷歌的结果。

Popen得到新运行过程的PID

我想在后台运行一些应用程序,然后用pid杀死它。 pipe = IO.popen("firefox 'some_url' 2>&1 &") pipe.pid 这段代码启动Firefox并返回一些PID,但不幸的是它不是Firefox的PID。 pipe = IO.popen("firefox") pipe.pid 这段代码启动Firefox并返回一些PID,Firefox的PID。 有没有解决scheme来启动外部应用程序并获得其pid? 火狐只是例如它可以是任何其他应用程序。 我也尝试使用库:Open3和Open4,但似乎是相同的效果。 我也想知道'$!' bashvariables是很好的解决scheme吗? 在后台运行一些东西,阅读“$!”,你觉得怎么样?

git post-receive hook没有运行bundle install

我无法运行post-receive hook,如下所示: #!/bin/sh unset $(git rev-parse –local-env-vars) cd ~/commodity git pull origin master bundle install bundle exec rake assets:precompile thin restart 我推从本地到远程,我得到这个错误: Counting objects: 5, done. Delta compression using up to 4 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 319 bytes, done. Total 3 (delta 2), reused 0 (delta 0) remote: From […]

在nohup下使用Ruby脚本可能的I / O同步问题?

在nohup下运行的Ruby脚本的输出有一个奇怪的问题。 基本上,写入日志文件或使用标准输出到nohup.out时会有严重的输出延迟。 你可以在这里看到原来的post,这个用例的答案是: StackOverflow – 问题19455667 有人build议我使用类似file_object.sync = true东西,但是我只关心脚本在nohup下的原因。 我猜测,nohup如何缓冲它自己的shell输出是一个更复杂的问题。 这样我可以实现更优雅的解决scheme,如果我有更详细的输出。 任何额外的资源赞赏。 规格:Ruby 1.8.7 Linux:在CentOS 5.4,5.6和Amazon Linux AMI版本2012.03上出现(与CentOS 6.2有点类似)Nohup:8.4

如何通过ssh在远程机器上使用ffmpeg

我的局域网上有三台电脑, 一个运行ubuntu , 一个运行openSuse 和我的服务器运行Archlinux 。 我只设法让ffmpeg在我的服务器上正常工作。 我想编写一个脚本,假装在本地机器上是ffmpeg安装,但实际上只是使用服务器的ffmpeg 。 例: 在openSuse电脑上,我想打电话给: ffmpeg -i file.avi out.flv 然后按照预期得到正常的输出, 但我想要它在archlinux上使用ffmpeg。 任何意见,如何我会得到这个工作。 (最好在Ruby中) 编辑:我已经扩展这个问题, 如何显示进度条通过ssh的shell命令

linux CLI:如何将阿拉伯文字渲染成位图

我想用命令行界面将阿拉伯语文本绘制成位图(bmp或png)。 我曾尝试imagemagick和RMagick,但我有RTL语言问题的问题。 我所有的渲染都保持不变。 而谷歌没有帮助。 要求: ./render "لوحة المفاتيح" out.png 会给一个位图: لوحةالمفاتيح 任何人都可以给我一些成功的结果?

有没有简单的方法来安装RMagick?

我正在尝试在我的slicehost(Linux Hardy)上安装RMagick,而不是从源代码编译,下面是我所做的: $ sudo aptitude install -y imagemagick $ sudo aptitude install -y libmagick9-dev $ sudo gem install rmagick 安装后,它读取GIF没有问题,但对于JPEG和PNG,我不断收到此错误: Magick::ImageMagickError: no decode delegate for this image format 我知道这可能是因为我没有libpng和libjpg库,但我没有find如何安装这些指南。 我从源代码编译libpng和libjpg,没有运气,文件在/ usr / lib,但我仍然得到错误。