Re: [jruby-user] Missing files (or seemingly so)
Keith Bennett <[email protected]> Tue, 28 Oct 2014 15:30:00 -0400
| Newsgroups | gmane.comp.lang.jruby.user |
|---|---|
| Message-ID | <CAJR0di7xUyUospaJEK+rBXSx=pgaHH=Hbxi9tTFi9=Sfh456cA@mail.gmail.com> |
Pete - What happens when you omit the jruby -S and just call rails new NewDemo? - Keith On Tue, Oct 28, 2014 at 12:00 PM, Pete Helgren <[email protected]> wrote: > I'll give this a try but I am going to post this last piece of info in > hopes that it might trigger some "Aha!" for someone because this seems very > much like a path/profile issue: > > I ran juby -v to display the version info. Then I changed to my RailsApps > folder and ran rails new. Here is what I see: > > jruby -v > jruby 1.7.16 (1.9.3p392) 2014-09-25 575b395 on IBM J9 VM > jvmap3260_26sr8fp1-20140706_022.6 +jit [OS/400-PowerPC] > $ > cd /RailsApps > $ > jruby -S rails new NewDemo > Errno::ENOENT: ENOENT - /RailsApps/bin/rails > > What I don't get is why it is looking for rails at /RailsApps/bin/rails? > That seems strange. The PATH is: > > echo $PATH > /usr/bin:/usr/local/jruby-1.7.16/bin:/QOpenSys/usr/bin > > which rails returns: > which rails > /usr/local/jruby-1.7.16/bin/rails > > Something just doesn't add up (for me at least) > > Pete > > On 10/27/2014 3:43 PM, Tim Uckun wrote: > > In that case you need to write shell scripts to invoke your jruby > complete gem. I normally put these scripts in the project directory so > each project is completely isolated from the general environment and each > can have it's own jruby complete. I install my gems into ./vendor/bundle. > Any binstubs you create will try to reference an executable called 'jruby' > so they will work fine. Give it a shot and let me know how it works. > > > > First you need to set up jruby complete. Here is a shell script to do > that. This will download the jar and install bundler into it. > > ---- > #!/bin/sh > set -ex > version=1.7.8 > jar=jruby-complete-$version-with-bundler.jar > curl -o $jar > http://jruby.org.s3.amazonaws.com/downloads/$version/jruby-complete-$version.jar > java -jar $jar -S gem install -i ./bundler-gems bundler --no-rdoc --no-ri > java -jar $jar -S gem install -i ./bundler-gems rake --no-rdoc --no-ri > jar uf $jar -C bundler-gems . > java -jar $jar -S bundle --version > ---- > > Now you need some scripts to invoke the jar. This one is called "jruby". > ---- > #!/bin/bash > JRUBY_VERSION="1.7.8" > RAILS_ENV=${RAILS_ENV:='development'} > BASEDIR="$( cd "$( dirname "$0" )" && pwd )" > RAILS_DIR="$( cd ${BASEDIR}/.. && pwd)" > JRUBY_DIR="${RAILS_DIR}/jruby" > JAVA_OPTS="-XX:+TieredCompilation -XX:TieredStopAtLevel=1 -Xverify:none > -Xmx500m -Xss2048k -Xcompile.invokedynamic=false > -Djruby.launch.inproc=false -Dcompat.version=2.0 -Dcext.enabled=false > -Djruby.compile.mode=OFF" > JAVA="`which java` ${JAVA_OPTS}" > > JRUBY_COMPLETE_WITH_BUNDLER_JAR="${JRUBY_DIR}/jruby-complete-${JRUBY_VERSION}-with-bundler.jar" > JRUBY="${JAVA} -jar ${JRUBY_COMPLETE_WITH_BUNDLER_JAR}" > ${JRUBY} $* > > --- > > You will also want to create scripts for "bundle" and "rake" > > My bundle script looks like this > > --- bundle --- > #!/bin/bash > BASEDIR="$( cd "$( dirname "$0" )" && pwd )" > ${BASEDIR}/jruby -S bundle $* > ----- > > -- rake > > #!/bin/bash > BASEDIR="$( cd "$( dirname "$0" )" && pwd )" > ${BASEDIR}/jruby -S bundle exec rake $* > --- > > I also create one called "be " which comes in handy > > ----be > #!/bin/bash > BASEDIR="$( cd "$( dirname "$0" )" && pwd )" > ${BASEDIR}/jruby -S bundle exec $* > --- > > > Last thing you need to so is to set all your paths this is my script for > that. This ones fires off a new bash where the paths of your app come first. > > > ---- > > #!/bin/bash > > am_I_sourced() > { > if [ "${FUNCNAME[1]}" = source ]; then > return 0 > else > return 1 > fi > } > > # Highlights the current git branch > function parse_git_branch { > ref=$(git symbolic-ref HEAD 2> /dev/null) || return > echo "("${ref#refs/heads/}")" > } > > > pwd=${PWD##} > GEM_LOCATION="${pwd}/vendor/bundle" > export GS_NAME=$(basename ${PWD##/}) > export GEM_HOME=${GEM_LOCATION} > export GEM_PATH="${GEM_HOME}:${GEM_PATH}" > export PATH="./bin:vendor/bundle/bin:./jruby:${PATH}" > > > ##colors > RED='\[\033[0;31m\]' > GREEN='\[\033[0;32m\]' > YELLOW='\[\033[1;33m\]' > DEFAULT='\[\033[00m\]' > > > if ! am_I_sourced -v ; then > export PS1="\[\e]0;\u@\h: \w\a\]$GREEN\w$YELLOW > $(parse_git_branch)$DEFAULT (${GS_NAME} isolated) quot; > bash > fi > > > > > > > On Tue, Oct 28, 2014 at 2:01 AM, Pete Helgren <[email protected]> wrote: > >> Tim, >> >> I'll check that out. This is on an IBM i which is a bit different from >> any other mainline OS. Anything that executes java is A-OK because the J9 >> JVM that IBM has is rock solid on this platform but if we are talking about >> any executable binaries, then things get interesting. Most of what I run I >> run in an environment called PASE which is an AIX-like shell that can >> execute most binaries that can run in AIX. Sometimes I have to compile to >> run in PASE (PPC64) so it will vary based on what the binary does. Because >> of those unknowns, sticking with a "pure" java install: Unzip, set path and >> classpath, and go, is the way I deploy most applications in the java world. >> >> But, I'll give it a whirl.... >> >> Pete Helgrenwww.petesworkshop.com >> GIAC Secure Software Programmer-Java >> >> On 10/27/2014 5:45 AM, Tim Uckun wrote: >> >> How exactly did you install jruby. >> >> I recommend you use rvm, rbenv, or chruby. >> >> Clearly something went wrong with your installation and your >> environment got screwed up. I have used jruby complete before with some >> scripts and some environment manipulation before but that's kind of an >> involved process and you are much better off using one of the above >> mentioned projects. >> >> >> >> On Mon, Oct 27, 2014 at 4:08 PM, Pete Helgren <[email protected]> wrote: >> >>> Nothing like that. I still think there is something messed up in the >>> path or home folder. Can't quite figure out what is out of place. There >>> IS a ruby installation as well and I am trying to figure out if that is >>> what is causing the issue. Neither install is working at the moment (ruby >>> or jruby). >>> >>> Thanks for trying! >>> >>> Pete >>> >>> >>> On 10/24/2014 11:15 PM, Keith Bennett wrote: >>> >>> Pete - >>> >>> I'm not sure...the "shared" in the directory name makes it sound like >>> there could be more than one directory. And I suspect you should go one >>> directory up, because gems is the name of one of several subdirectories >>> GEM_HOME should have. >>> >>> When I do a directory of my GEM_HOME I get this: >>> >>> ➜ ~GEM_HOME ls >>> bin cache environment gems wrappers >>> build_info doc extensions specifications >>> >>> Is that something like the directory you mentioned? >>> >>> One way I figure out where it is is to install a random gem (e.g. my >>> "trick_bag" gem) that I don't yet have (check with "gem list"), and see if >>> it was installed in that directory >>> >>> - Keith >>> >>> >>> On Sat, Oct 25, 2014 at 10:12 AM, Pete Helgren <[email protected]> wrote: >>> >>>> Thanks Keith... >>>> >>>> Where should the GEM_HOME environment variable point? I have a >>>> boatload of gems in /usr/local/jruby-1.7.16/lib/ruby/gems/shared/gems. Is >>>> that where it should point? >>>> >>>> Pete >>>> >>>> >>>> On 10/24/2014 10:05 AM, Keith Bennett wrote: >>>> >>>> Pete - >>>> >>>> Since the rails command is part of a gem (the Rails gem), wouldn't it >>>> be in the gem bin directory? (I use rvm and it handles path stuff >>>> automatically for me.) >>>> >>>> >>>> Where are your gems being installed? You should probably have a >>>> GEM_HOME environment variable pointing to the root of your gem directory >>>> tree. There should be a bin subdirectory there somewhere, and that needs >>>> to be in your PATH environment variable AFAIK. >>>> >>>> - Keith >>>> >>>> On Thu, Oct 23, 2014 at 7:44 PM, Pete Helgren <[email protected]> wrote: >>>> >>>>> I have been in and out of jRuby over the past couple of years and I >>>>> got around to installing jRuby 1.7.16 on my IBM i (Power 6) box. It is >>>>> running Java 6 using the J9 JDK. Installation went fine, smoother than >>>>> usual. >>>>> >>>>> But when I tried to run rails commands. I got a series of >>>>> Errno::ENOENT on various files. The first was a ENOENT on >>>>> '/home/PETE/.gem/jruby/1.9'. I found a post that indicated adding that >>>>> path would fix the issue as a workaround (and it did). When I ran rails >>>>> new /Path_to_App it seemed like the failures were due to an environment >>>>> issue because it was looking for rails in /home/pete/bin, /usr/bin, >>>>> /usr/local/bin although none of those folders were on the path (and I >>>>> couldn't figure out why it would look for rails there anyway). My >>>>> jruby/bin folder was on the path so I was mystified as to why it looked >>>>> elsewhere for rails. Again, a work around was to copy rails where it >>>>> seemed to be looking (for whatever reason). >>>>> >>>>> Here is what I see when I try to run rails: >>>>> >>>>> rails new /RailsApps/NewDemo >>>>> >>>>> Errno::ENOENT: ENOENT - /home/pete/bin/rails >>>>> >>>>> file? at org/jruby/RubyFileTest.java:131 >>>>> >>>>> find_executable at >>>>> /usr/local/jruby-1.7.16/lib/ruby/gems/shared/gems/railties-4.1.6/lib/rails/app_rails_loader.rb:58 >>>>> >>>>> >>>>> find at org/jruby/RubyEnumerable.java:592 >>>>> >>>>> find_executable at >>>>> /usr/local/jruby-1.7.16/lib/ruby/gems/shared/gems/railties-4.1.6/lib/rails/app_rails_loader.rb:58 >>>>> >>>>> >>>>> exec_app_rails at >>>>> /usr/local/jruby-1.7.16/lib/ruby/gems/shared/gems/railties-4.1.6/lib/rails/app_rails_loader.rb:33 >>>>> >>>>> >>>>> loop at org/jruby/RubyKernel.java:1501 >>>>> >>>>> exec_app_rails at >>>>> /usr/local/jruby-1.7.16/lib/ruby/gems/shared/gems/railties-4.1.6/lib/rails/app_rails_loader.rb:32 >>>>> >>>>> >>>>> (root) at >>>>> /usr/local/jruby-1.7.16/lib/ruby/gems/shared/gems/railties-4.1.6/lib/rails/cli.rb:5 >>>>> >>>>> >>>>> require at org/jruby/RubyKernel.java:1065 >>>>> >>>>> (root) at >>>>> /usr/local/jruby-1.7.16/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:1 >>>>> >>>>> >>>>> require at >>>>> /usr/local/jruby-1.7.16/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:55 >>>>> >>>>> >>>>> load at org/jruby/RubyKernel.java:1081 >>>>> >>>>> (root) at /usr/local/jruby-1.7.16/bin/rails:23 >>>>> >>>>> >>>>> Rather than just keep chasing these issues, perhaps someone can >>>>> suggest what the root cause of the problem is. I can't seem to find >>>>> anything that points to a specific configuration step I missed. Any help >>>>> would be appreciated. >>>>> >>>>> -- >>>>> Pete Helgren >>>>> www.petesworkshop.com >>>>> GIAC Secure Software Programmer-Java >>>>> >>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe from this list, please visit: >>>>> >>>>> http://xircles.codehaus.org/manage_email >>>>> >>>>> >>>>> >>>> >>>> >>> >>> >> >> > >