[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Ruby on HP-UX

Tim Nordloh

3/21/2006 8:48:00 PM

I have read a couple of posts regarding compiling Ruby on HP-UX 11i, and
I'm hoping for a little more insight on the exact requirements of doing that
type of install. Basically, the posts I have read haven't been
understandable by someone like me. an earlier post referred to "disable
ipv6 and wide-getaddrinfo so it uses Ruby's built-in getaddrinfo()
instead." I have no idea how to do that, I'd love an example command or
something. I am hoping that I can create a step-by-step procedure for
installation on any HP-UX server, for people like me, where the high-level
instructions are not helpful. Without further ado, here is where I've
managed to get so far.

1. Download the 1.8.4 tar.gz file
2. run ./configure
3. run gmake (not make)
4. run gmake all
at this point, I got the following error:
===================================
ld -b -E -L"../../.." -o ../../../.ext/hppa2.0w-hpux11.11/digest/md5.sl
md5init.o md5ossl.o -lcrypto -ldld -lcrypt -lm -lc
ld: Can't find library: "crypto"
gmake[1]: *** [../../../.ext/hppa2.0w- hpux11.11/digest/md5.sl] Error 1
gmake[1]: Leaving directory `/home/tnordloh/ruby/ruby-1.8.4/ext/digest/md5'
gmake: *** [all] Error 1
===================================
so, I decided to play with the ext/Setup file mentioned in the README. By
uncommenting 'option nodynamic' I'm able to get a clean gmake, and then
'gmake all', and I have a supposedly working ruby install (at least irb
functions, and a very basic script works). The 'ri' command didn't work
though, so on to that....

so now, I want documentation, which seems to be available by running gmake
install-all
this fails after running for quite some time with the following error:
===================================
zlib.c:
mcccccccccccccccccc...................................................................................
Generating RI...
/home/tnordloh/ruby/ruby-1.8.4/lib/yaml.rb:87: uninitialized constant
YAML::Syck::Resolver (NameError)
from /home/tnordloh/ruby/ruby-1.8.4/lib/rdoc/ri/ri_descriptions.rb:1
from /home/tnordloh/ruby/ruby-1.8.4/lib/rdoc/ri/ri_reader.rb:1
from /home/tnordloh/ruby/ruby-1.8.4/lib/rdoc/generators/ri_generator.rb:46

from /home/tnordloh/ruby/ruby-1.8.4/lib/rdoc/rdoc.rb:250:in
`document'
from ./bin/rdoc:63
gmake: *** [do-install-doc] Error 1

My Ruby-expert friend believes this is because I'm missing some C headers.
Any Ruby install gurus have an idea of what I should try here, or what I'm
missing?
32 Answers

James Gray

3/21/2006 9:34:00 PM

0

On Mar 21, 2006, at 2:48 PM, Tim Nordloh wrote:

> 4. run gmake all

Did you mean gmake install-all here?

> My Ruby-expert friend

<laughs> I know that refers to me, but boy are you confused. ;)
What I know about the Ruby compile process is limited to: "Works
great on Moc OS X!" :D

> believes this is because I'm missing some C headers.

Actually, I believe Ruby failed to install its C extensions. In a
private message, Tim shared the contents of his extension directory:

# ls /usr/local/lib/ruby/1.8/hppa2.0w-hpux11.11/
bigdecimal.sl defines.h intern.h regex.h util.h
config.h digest missing.h ruby.h version.h
crypto.h digest.sl node.h rubyio.h
curses.sl dln.h rbconfig.rb rubysig.h
dbm.sl env.h re.h st.h

Compare that with my healthy install:

$ ls /usr/local/lib/ruby/1.8/powerpc-darwin8.3.0/
bigdecimal.bundle iconv.bundle rubysig.h
config.h intern.h sdbm.bundle
curses.bundle io socket.bundle
dbm.bundle missing.h st.h
defines.h nkf.bundle stringio.bundle
digest node.h strscan.bundle
digest.bundle openssl.bundle syck.bundle
dl.bundle pty.bundle syslog.bundle
dl.h racc tcltklib.bundle
dlconfig.h rbconfig.rb tkutil.bundle
dln.h re.h util.h
enumerator.bundle readline.bundle version.h
env.h regex.h zlib.bundle
etc.bundle ruby.h
fcntl.bundle rubyio.h

I had him try a few tests. Pure Ruby standard libraries seem to be
just fine, but, as you can see, the C extensions are missing.

James Edward Gray II



Stephen Waits

3/21/2006 9:41:00 PM

0

James Edward Gray II wrote:
> but, as you can see, the C extensions are missing.

Yah.. isn't that the rub. In general, the extension build system leaves
a bit to be desired.

Though, if it can find all it needs to build an extension, it should
build it. A few things to try..

* Try editing ext/Setup
* Try adding --with-readline-dir=... --with-openssl-dir=..., to your
/configure

HTH,
Steve




Mauricio Fernández

3/21/2006 9:51:00 PM

0

On Wed, Mar 22, 2006 at 06:33:50AM +0900, James Edward Gray II wrote:
> On Mar 21, 2006, at 2:48 PM, Tim Nordloh wrote:
> I had him try a few tests. Pure Ruby standard libraries seem to be
> just fine, but, as you can see, the C extensions are missing.

That's what he asked for, by disabling shared libs:

>>so, I decided to play with the ext/Setup file mentioned in the README. By
>>uncommenting 'option nodynamic' I'm able to get a clean gmake, and then
==============================
>>'gmake all', and I have a supposedly working ruby install (at least irb
>>functions, and a very basic script works).

He could either uncomment the desired extensions in ext/Setup so they're linked
statically, or skip digest/* (and probably other extensions) to get a clean
build, without disabling dynamic modules altogether.

--
Mauricio Fernandez - http://eige... - singular Ruby


Tim Nordloh

3/21/2006 9:51:00 PM

0

in what way should I edit /ext/setup? Is there a readme on my options?

Also, I'm assuming the --with-openssl-dir parameter needs to be the
'include' directory? Here's what I tried, and the result.

$ ./configure --with-openssl-dir=/usr/local/include/openssl
/configure[88]: conf576.sh: Cannot create the specified file.
/configure[89]: conf576.sh: Cannot create the specified file.
chmod: can't access conf576.sh
/configure[201]: conf576.file: Cannot create the specified file.
/configure[996]: config.log: Cannot create the specified file.




On 3/21/06, Stephen Waits <steve@waits.net> wrote:
>
> James Edward Gray II wrote:
> > but, as you can see, the C extensions are missing.
>
> Yah.. isn't that the rub. In general, the extension build system leaves
> a bit to be desired.
>
> Though, if it can find all it needs to build an extension, it should
> build it. A few things to try..
>
> * Try editing ext/Setup
> * Try adding --with-readline-dir=... --with-openssl-dir=..., to your
> ./configure
>
> HTH,
> Steve
>
>
>
>

James Gray

3/21/2006 9:56:00 PM

0

On Mar 21, 2006, at 3:51 PM, Mauricio Fernandez wrote:

> On Wed, Mar 22, 2006 at 06:33:50AM +0900, James Edward Gray II wrote:
>> On Mar 21, 2006, at 2:48 PM, Tim Nordloh wrote:
>> I had him try a few tests. Pure Ruby standard libraries seem to be
>> just fine, but, as you can see, the C extensions are missing.
>
> That's what he asked for, by disabling shared libs:
>
>>> so, I decided to play with the ext/Setup file mentioned in the
>>> README. By
>>> uncommenting 'option nodynamic' I'm able to get a clean gmake,
>>> and then
> ==============================
>>> 'gmake all', and I have a supposedly working ruby install (at
>>> least irb
>>> functions, and a very basic script works).
>
> He could either uncomment the desired extensions in ext/Setup so
> they're linked
> statically, or skip digest/* (and probably other extensions) to get
> a clean
> build, without disabling dynamic modules altogether.

Any idea why digest threw a fit?

James Edward Gray II


Tim Nordloh

3/21/2006 10:07:00 PM

0

Looking into it, I might be able to download a newer version, if it's
something I have control over. I'll let you know ASAP

>
> Any idea why digest threw a fit?
>
> James Edward Gray II
>
>

Tim Nordloh

3/21/2006 10:48:00 PM

0

ok, I uncommented entries in the ext/Setup file one-by-one, and here's what
I ended up with:

root@atcito01 [/home/tnordloh/ruby/ruby-1.8.4]
# cat ext/Setup
#option nodynamic

#Win32API
bigdecimal
curses
dbm
#digest
digest/md5
digest/rmd160
digest/sha1
digest/sha2
#dl
#enumerator
#etc
#fcntl
#gdbm
iconv
#io/wait
#nkf
#pty
openssl
#racc/cparse
#readline
#sdbm
#socket
#stringio
#strscan
#syck
#syslog
#tcltklib
#tk
#win32ole
zlib

I'm back to 'gmake' at this point and it fails at the ruby compile like
so...

making ruby
gmake[1]: Entering directory `/home/tnordloh/ruby/ruby-1.8.4'
gcc -g -O2 -DRUBY_EXPORT -DYYMAXDEPTH=300 -I. -I. -oext/extinit.o -c
ext/extinit.c
gcc -g -O2 -DRUBY_EXPORT -DYYMAXDEPTH=300 -Wl,-E -L.
-L"/usr/local/include/openssl/lib" -E main.o ext/extinit.o
ext/bigdecimal/bigdecimal.a ext/curses/curses.a ext/dbm/dbm.a
ext/digest/md5/md5.a ext/digest/rmd160/rmd160.a ext/digest/sha1/sha1.a
ext/digest/sha2/sha2.a ext/iconv/iconv.a ext/openssl/openssl.a
ext/zlib/zlib.a -lruby-static -ldld -lcrypt -lm -lcur_colr -ltermcap -lssl
-lcrypto -liconv -lnsl -lz -o ruby
gcc: -E: linker input file unused because linking not done
gcc: main.o: linker input file unused because linking not done
gcc: ext/extinit.o: linker input file unused because linking not done
gcc: ext/bigdecimal/bigdecimal.a: linker input file unused because linking
not done
gcc: ext/curses/curses.a: linker input file unused because linking not done
gcc: ext/dbm/dbm.a: linker input file unused because linking not done
gcc: ext/digest/md5/md5.a: linker input file unused because linking not done
gcc: ext/digest/rmd160/rmd160.a: linker input file unused because linking
not done
gcc: ext/digest/sha1/sha1.a: linker input file unused because linking not
done
gcc: ext/digest/sha2/sha2.a: linker input file unused because linking not
done
gcc: ext/iconv/iconv.a: linker input file unused because linking not done
gcc: ext/openssl/openssl.a: linker input file unused because linking not
done
gcc: ext/zlib/zlib.a: linker input file unused because linking not done
gcc: -lruby-static: linker input file unused because linking not done
gcc: -ldld: linker input file unused because linking not done
gcc: -lcrypt: linker input file unused because linking not done
gcc: -lm: linker input file unused because linking not done
gcc: -lcur_colr: linker input file unused because linking not done
gcc: -ltermcap: linker input file unused because linking not done
gcc: -lssl: linker input file unused because linking not done
gcc: -lcrypto: linker input file unused because linking not done
gcc: -liconv: linker input file unused because linking not done
gcc: -lnsl: linker input file unused because linking not done
gcc: -lz: linker input file unused because linking not done
gmake[1]: Leaving directory `/home/tnordloh/ruby/ruby-1.8.4'

And that really loses me. It looks a lot like the 'gcc' command got
garbled. Any idea what to make of that? I don't see an explicit 'failed'
message, but did it run right? I can't tell.
One thing is for sure, ri still isn't working:

root@atcito01 [/home/tnordloh/ruby/ruby-1.8.4]
# ri Array
/usr/local/lib/ruby/1.8/yaml.rb:87: uninitialized constant
YAML::Syck::Resolver (NameError)
from /usr/local/lib/ruby/1.8/rdoc/ri/ri_descriptions.rb:1
from /usr/local/lib/ruby/1.8/rdoc/ri/ri_reader.rb:1
from /usr/local/lib/ruby/1.8/rdoc/ri/ri_driver.rb:5
from /usr/local/bin/ri:43




On 3/21/06, Tim Nordloh <tnordloh@gmail.com> wrote:

> Looking into it, I might be able to download a newer version, if it's
> something I have control over. I'll let you know ASAP
>
> >
> > Any idea why digest threw a fit?
> >
> > James Edward Gray II
> >
> >
>
>

Tim Nordloh

3/22/2006 3:08:00 PM

0

These first couple of lines look like a malformed gcc command to me. Anyone
have an idea of what the line should read?





gcc -g -O2 -DRUBY_EXPORT -DYYMAXDEPTH=300 -Wl,-E -L.

-L"/usr/local/include/openssl/lib" -E main.o ext/extinit.o
ext/bigdecimal/bigdecimal.a ext/curses/curses.a ext/dbm/dbm.a
ext/digest/md5/md5.a ext/digest/rmd160/rmd160.a ext/digest/sha1/sha1.a
ext/digest/sha2/sha2.a ext/iconv/iconv.a ext/openssl/openssl.a
ext/zlib/zlib.a -lruby-static -ldld -lcrypt -lm -lcur_colr -ltermcap -lssl
-lcrypto -liconv -lnsl -lz -o ruby

gcc: -E: linker input file unused because linking not done

Mauricio Fernández

3/22/2006 3:30:00 PM

0

On Thu, Mar 23, 2006 at 12:07:30AM +0900, Tim Nordloh wrote:
> These first couple of lines look like a malformed gcc command to me. Anyone
> have an idea of what the line should read?
>
> gcc -g -O2 -DRUBY_EXPORT -DYYMAXDEPTH=300 -Wl,-E -L.
> -L"/usr/local/include/openssl/lib" -E main.o ext/extinit.o
====
Could you try without this?

> ext/bigdecimal/bigdecimal.a ext/curses/curses.a ext/dbm/dbm.a
> ext/digest/md5/md5.a ext/digest/rmd160/rmd160.a ext/digest/sha1/sha1.a
> ext/digest/sha2/sha2.a ext/iconv/iconv.a ext/openssl/openssl.a
> ext/zlib/zlib.a -lruby-static -ldld -lcrypt -lm -lcur_colr -ltermcap -lssl
> -lcrypto -liconv -lnsl -lz -o ruby

BTW, you might have to add digest (which digest/md5 and friends depend on)
and syck (in order to get ri to work) to the extension list.

--
Mauricio Fernandez - http://eige... - singular Ruby


Tim Nordloh

3/22/2006 5:44:00 PM

0

Ok, I hand-modified it and ended up with this....
gcc -g -O2 -DRUBY_EXPORT -DYYMAXDEPTH=300 -Wl,-E -L.
main.oext/extinit.o ext/bigdecimal/bigdecimal.a > ext/curses/curses.a ext/dbm/dbm.a ext/digest/md5/md5.a
ext/digest/rmd160/rmd160.a ext/digest/sha1/sha1.a > ext/digest/sha2/sha2.a ext/iconv/iconv.a ext/openssl/openssl.a
ext/zlib/zlib.a -lruby-static -ldld -lcrypt > -lm -lcur_colr -ltermcap -lssl -lcrypto -liconv -lnsl -lz -o ruby

which seemed to run successfully.

So, I went through and removed all references to the
"/usr/local/include/openssl/lib" from all MakeFiles. I still got an error,
so I ended up removing the "EXTLDFLAGS" entry (which contained the extra -E
which was causing the compile failure. I was then able to successfully run
the 'gmake' routine, as well as 'gmake all'.

Thanks, this is the closest I've managed to get, but all that work

"gmake install-all" appeared to successfully run, but I continue to get the
same error when I attempt to run ri:
root@atcito01 [/home/tnordloh/ruby/ruby-1.8.4]
# ri File
/usr/local/lib/ruby/1.8/yaml.rb:87: uninitialized constant
YAML::Syck::Resolver (NameError)
from /usr/local/lib/ruby/1.8/rdoc/ri/ri_descriptions.rb:1
from /usr/local/lib/ruby/1.8/rdoc/ri/ri_reader.rb:1
from /usr/local/lib/ruby/1.8/rdoc/ri/ri_driver.rb:5
from /usr/local/bin/ri:43

So what is the problem?

On 3/22/06, Mauricio Fernandez <mfp@acm.org> wrote:
>
> On Thu, Mar 23, 2006 at 12:07:30AM +0900, Tim Nordloh wrote:
> > These first couple of lines look like a malformed gcc command to
> me. Anyone
> > have an idea of what the line should read?
> >
> > gcc -g -O2 -DRUBY_EXPORT -DYYMAXDEPTH=300 -Wl,-E -L.
> > -L"/usr/local/include/openssl/lib" -E main.o ext/extinit.o
> ====
> Could you try without this?
>
> > ext/bigdecimal/bigdecimal.a ext/curses/curses.a ext/dbm/dbm.a
> > ext/digest/md5/md5.a ext/digest/rmd160/rmd160.a ext/digest/sha1/sha1.a
> > ext/digest/sha2/sha2.a ext/iconv/iconv.a ext/openssl/openssl.a
> > ext/zlib/zlib.a -lruby-static -ldld -lcrypt -lm -lcur_colr -ltermcap
> -lssl
> > -lcrypto -liconv -lnsl -lz -o ruby
>
> BTW, you might have to add digest (which digest/md5 and friends depend on)
> and syck (in order to get ri to work) to the extension list.
>
> --
> Mauricio Fernandez - http://eige... - singular Ruby
>
>