Install macruby to specific directory? - ruby

Normally macruby wants to install to /usr/local via 'rake install'
I want it in another location. How do I do this?

Running rake -T gives the options (duh, stupid me)
It tells me
rake install sym_instdir=/some/place
Is the trick to install to another directory and this does in fact work.
EDIT: I spoke too soon.
This makes the symlinks, but there is the framework_instdir option as well, but changing that doesn't seem to make any difference...

$ DESTDIR = /some/place rake install
Look at the nightly built rake task for a more concrete example.
Matt

Related

How to package go project for homebrew

We're developing runscripts and try to support something like brew install runscripts.
It's written in golang and have some dependencies which required to go get. Now I have no idea to write the Formula to setup GOPATH and run go get. Our project can be compiled into an binary but we need run --init to install it.
Can anyone helps to give an example about a homebrew Formula of go project?
Fork homebrew, look at the content of Library/Formula/consul.rb. You don't need to manually generate all the resources. Use homebrew-go-resources. A more complete intro could be found here.
I have refer to termshare.rb and it seems we can simply go get and homebrew will handle anything about GOPATH for us.
That's great and I think my problem is solved.
The best I could find is how docker-swarm is added to brew: https://github.com/Homebrew/homebrew/blob/4c6857b0e337b2d5afd49dcf7209b6b5091709f4/Library/Formula/docker-swarm.rb
It's relatively clean and simple to follow.
You can use goreleaser to generate the formula automatically: https://goreleaser.com/customization/homebrew/
Here is a possible work around creating a build directory within the checkout as the GOPATH:
...
def install
system "mkdir -p build/src"
system "ln -s `pwd` build/src/repo"
system "GOPATH=`pwd`/build go get repo/mytool"
bin.install "build/bin/mytool"
...
end
...

Upgrading to Ruby 2.0, overwrite executables without prompt

When upgrading from ruby 1.9.3 to ruby 2.0 on linux (at least 12.04) you get an unexpected prompt.
rdoc's executable "rdoc" conflicts with /path/bin/rdoc
Overwrite the executable? [yN]
It works fine to overwrite it manually but I'm looking for a way that my scripts will auto reply yes without halting.
Just found this issue on rubygems from a year ago. I'm using gem install in a script so I think I can somewhat easily add yes | gem install
Edit:
Tried yes | gem install rdoc but it fails with:
ERROR: Error installing rdoc:
"rdoc" from rdoc conflicts with /usr/local/rubies/2.0.0-p0/bin/rdoc
You can prepend
yes |
yes just enters y over and over again, which gets piped to to standard input.
(thanks #adamdunson)
--force worked for me:
gem install --force rdoc
Disclaimer: this is not what --force is for, and I don't know why yes | doesn't work.
For me with Ubuntu and Ruby 2.0 the yes | prepend solution as described above did NOT work as described in my automated build script (using sprinkle gem).
I therefore added a step to the build script to rename (in my case) /usr/local/bin/rdoc and /usr/local/bin/ri before the install is executed.
Consequently the install recreates these files without the pesky prompt which I just couldnt somehow seem to avoid. Personally I think the suggestion at https://github.com/rubygems/rubygems/pull/280 is a good one although this doesnt seem to have been embraced by the community with open arms.
My solution is a somewhat crude workaround but may help others until there is a more elegant fix.
actually, you shouldn't say yes. This is currently a bug right now for Ruby 2.0. My own fix (which I do go with, anyway, even if this is not a problem!) is to use a gemset handler (I'm using rbenv-gemset, with rbenv right now).
Prefixing yes | did not work in my case (rubygems verifies that input is tty). What works for me:
expect <<-DONE
set timeout -1
spawn gem update
expect {
"Overwrite the executable?" { send -- "y\r"; exp_continue }
eof
}
DONE

Building CompassApp (jruby app) executable from source on Windows

I would like to build the executable of CompassApp, a GUI application that lets webdesigners compile stylesheets by using SASS and Compass without using the command line.
The source can be found on GitHub here: https://github.com/handlino/CompassApp.
CompassApp is a an application developed in Jruby.
From the GitHub webpage of the project:
If you want to build your own copy, you will need JRuby and rawr
I am using Windows 7 as operating system for my webdesign projects. I never built a jruby app from source. It seems on linux it's easier to install the required things, anyway i'm using Windows now.
First i cloned the GitHub repository.
Then i installed jruby.
Now i should install rawr (https://github.com/rawr/rawr)
It seems that rawr also requires javac and rake
I saw that rawr and rake are 2 ruby gems.
So how do i install those 2 ruby gems for jruby on Windows?
And how do i build CompassApp from source after i have everything i need?
I would need a step by step guide from the install of the requirements
to the build of the application.
(i never used jruby in the past).
If someone of you develops apps in jruby i think that can help me easily.
I thank you in advance.
#Fabio Hi, we made Compass.app and Fire.app :-)
It is easy to build Compass.app on OS X or Linux. We have a (almost) step by step guide about building Fire.app on the GitHub wiki and it can be applied to Compass.app too: https://github.com/handlino/FireApp/wiki
We have never tried to build it on Windows, and do not think it can be done easily.
I'm trying to do a similar thing, but in my case only package the gems in a self-contained executable jar. the docs are not very descriptive and some are outdated.
I tried rawr but managed to get further with warbler
here's what I did: I created a folder named jrcompass and installed compass into it:
c:\test\jrcompass>%JRUBY%\jruby -S gem install compass -i .
I installed warbler and then ran the warble command in that folder:
C:\test\jrcompass>c:\apps\jruby\bin\jruby -S warble
that created a ~20MB jar file named jrcompass.jar which is farther than I got with rawr.
now I'm trying to execute the jar with:
C:\test\jrcompass>java -jar jrcompass.jar
and I get the following error below. I hope that this will help you make progress. please let me know if you figure it out.
Gem::LoadError: Could not find compass (>= 0) amongst [rake-0.9.2.2]
to_specs at jar:file:/C:/Users/Admin/AppData/Local/Temp/jruby1564362137331239458extract/jruby-stdlib-1.7.1.jar!/META-INF/jruby.home/lib/ruby/shared/rubygems/dependency.rb:247
to_spec at jar:file:/C:/Users/Admin/AppData/Local/Temp/jruby1564362137331239458extract/jruby-stdlib-1.7.1.jar!/META-INF/jruby.home/lib/ruby/shared/rubygems/dependency.rb:256
gem at jar:file:/C:/Users/Admin/AppData/Local/Temp/jruby1564362137331239458extract/jruby-stdlib-1.7.1.jar!/META-INF/jruby.home/lib/ruby/shared/rubygems.rb:1231
(root) at file:/C:/Apps/test/jrcompass/jrcompass.jar!/jrcompass/bin/compass:22
load at org/jruby/RubyKernel.java:1046
(root) at file:/C:/Apps/test/jrcompass/jrcompass.jar!/META-INF/main.rb:1
require at org/jruby/RubyKernel.java:1027
(root) at file:/C:/Apps/test/jrcompass/jrcompass.jar!/META-INF/main.rb:1
(root) at jar:file:/C:/Users/Admin/AppData/Local/Temp/jruby1564362137331239458extract/jruby-stdlib-1.7.1.jar!/META-INF/jruby.home/lib/ruby/shared/rubygems/custom_require.rb:1

Rubygems auto install from source code

I was wondering if there was a solution to automatically - from my ruby source code - ask Gem to install various librairies my code my require to work?
From what i read on the internet, it seems we are obliged to either use an install script that directly runs "gem install ..." commands or do it manually or some people have posted a ruby script that simply iterate over a list of dependencies and use the system command to install them.
Any other better options?
Thanks for your time.
You could use internal RubyGems commands, but that's a pain and error-prone process, especially for dependencies.
I would setup a Gemfile and use Bundler instead. http://github.com/carlhuda/bundler

Ruby Gems Problem: uninitialized constant Gem::GemRunner

I had a rails 2.2 app running, when I tried to add the latest rspec plugin to it. I did that checking it from github with the script/plugin install command. That made some rake task to stop working, I googled for a while and found that I had to upgrade RubyGems. I did that and got the following error:
uninitialized constant Gem::GemRunner
It was a small and simple app under version control, so I erased everything, and apt-get remove ruby and rubygems, and reinstalled everything once again (doing apt-get install ruby, rubygems)
The problem it's still there, and I can't figure how to solve it. I'm quite new with Ubuntu, so maybe I'm not removing the packages really? (it takes very little time to execute the apt-get removes, so I'm not very confident)
What am I doing wrong? Is that a good way to do a 'clean start' (removing via apt and then reinstalling?)
PS: I've read that the problem is solved by modifiing framework.rb, but I cant find that file in the location that the author states...
I have a blog post that solves this issue.
It's because it's still trying to use the old gem executable, so you just symbolically link the new one (gem1.8) in place of the old one.

Resources