OVH Cloud OVH Cloud

ruby et PostGreSQL no PQsetdbLogin() ???

6 réponses
Avatar
yvon.thoravalNO-SPAM
j'aimerais tester ruby et PostgreSQL mais j'ai un pb à la config :

ruby extconf.rb --with-pgsql-include-dir=/usr/local/pgsql/include
--with-pgsql-lib-dir=/usr/local/pgsql/lib

le message d'erreur :

Using PostgreSQL include directory: /usr/local/pgsql/include
Using PostgreSQL lib directory: /usr/local/pgsql/lib
checking for PQsetdbLogin() in -lpq... no


j'ai suivi :

<http://www.postgresql.jp/interfaces/ruby/>

j'ai bien les headers (dans /usr/local/pgsql/include):
libpq-fe.h
libpq/libpq-fs.h
postgres_ext.h

et la lib (dans /usr/local/pgsql/lib) :

libpq.so

je ne pige pas ce qui esy demandé de +...

--
yt

6 réponses

Avatar
lucsky
Yvon Thoraval wrote:

Using PostgreSQL include directory: /usr/local/pgsql/include
Using PostgreSQL lib directory: /usr/local/pgsql/lib
checking for PQsetdbLogin() in -lpq... no


Tu as installé PostgreSQL comment ? Je l'ai compilé à la mano et je n'ai
eu aucun problème de ce type pour l'interface ruby...

--
Luc Heinrich -

Avatar
yvon.thoravalNO-SPAM
Luc Heinrich wrote:


Tu as installé PostgreSQL comment ? Je l'ai compilé à la mano et je n'ai
eu aucun problème de ce type pour l'interface ruby...


à partir de :
pgsql-7.4.pkg.tar.gz
et les instructions trouvées sur le site de Marc Liyanage :
<http://www.entropy.ch/software/macosx/postgresql/>

MAIS comme j'avais déjà un user "postgres" je ne suis pas parvenu à
faire çà :
Create a new user in the Users System Prefs pane:
1. Name: PostgreSQL User
2. Short Name: postgres
3. Password: whatever you want

j'ai créé un "PostgreSQL User" avec le nick postgresql au lieu de
postgres. Postgresql marche très bien sur ma bécanne (panther latest)

est-ce que celà peut poser pb à PQsetdbLogin() ???

bien sûr après cette création j'ai continué l'install accordingly càd
qu'au lieu de :
sudo chown -R postgres /usr/local/pgsql/
j'ai fait :
sudo chown -R postgresql /usr/local/pgsql/

MAIS je dois dire que un ls -al sur /usr/local/pgsql me donne :
drwx------ 13 postgres wheel 442 29 Feb 00:15 data
drwxr-xr-x 3 postgres wheel 102 19 Dec 17:51 doc
drwxr-xr-x 25 postgres wheel 850 19 Dec 17:51 include
drwxr-xr-x 51 postgres wheel 1734 19 Dec 17:51 lib
drwxr-xr-x 13 postgres wheel 442 19 Dec 17:51 share

donc le user est qd même postgres même si j'ouvre une connection à mes
bases avec le user postgresql...

je ne sais pas comment sortir de ce pb, càd revenir à l'usage standard
de postgres...

je m'intéresse à ruby parce qu'il y a un xul "ultrid" :

<http://www.ultrid.com/index.php?module=Static_Docs&func=view&newlang=fr
a>

qui permet d'écrire des apps avec comme script ruby, entre autres, pour
l'instant je suis en swing-java .
--
yt

Avatar
lucsky
Yvon Thoraval wrote:

à partir de :
pgsql-7.4.pkg.tar.gz
et les instructions trouvées sur le site de Marc Liyanage :
<http://www.entropy.ch/software/macosx/postgresql/>


Apparemment d'autres que toi ont eu des problèmes avec le package de
Marc Liyanage: http://blog.humlab.umu.se/samuel/archives/000019.html

--
Luc Heinrich -

Avatar
yvon.thoravalNO-SPAM
Luc Heinrich wrote:

Apparemment d'autres que toi ont eu des problèmes avec le package de
Marc Liyanage: http://blog.humlab.umu.se/samuel/archives/000019.html


ok tanxs a lot (& garonne °;=))

j'ai écrit un petit script "ruby" pour lancer une appli ultrid avec le
bon classpath :
#!/usr/bin/ruby

ultridDir = Dir.pwd
libDir = ultridDir + "/lib"
ultridClasses = "."

jarFiles = Dir[libDir + "/*.jar"]
jarFiles.each { |jarFile| ultridClasses += ":" + jarFile}

zipFiles = Dir[libDir + "/*.zip"]
zipFiles.each { |zipFile| ultridClasses += ":" + zipFile}

print "n"
print "Enter file's name to launch (without .xpml ext.) : "
file = gets.chomp() + ".xpml"
system("java -classpath " + ultridClasses + " -Xmx200m
com.ultrid.se.Runner " + file)

ça te paraît ruby-fashioned ???

nb :

j'ai mis :
ultridClasses = "."
au lieu de :
ultridClasses = ""
parce que je ne sais pas comment faire pour éviter le premier ":" dans
le classpath...
--
yt

Avatar
lucsky
Yvon Thoraval wrote:

ça te paraît ruby-fashioned ???


Il y a moyen de simplifier.

- Personnellement, j'utilise beaucoup l'interpolation des variables dans
les strings (avec #{}) au lieu de la concaténation (avec +), le résultat
est le même mais la sémantique est un chouia différente et je trouve ça
un peu plus clair.

- Ton problème de ":" peut être résolu très simplement en supprimant les
concaténations de strings (encore une fois): au lieu de ça, tu peux
construire un tableau contenant tous les jar et zip que tu 'join'
ensuite dans une string en utilisant le séparateur ':'. Simple et
efficace.

Par exemple:
a = ["toto", "tata", "titi"]
a.join( ":" )
=> "toto:tata:titi"

-----------------------------------------------------------------------

#!/usr/bin/ruby

ultridDir = Dir.pwd
libDir = "#{ultridDir}/lib"

ultridClasses = Array.new
ultridClasses.concat( Dir[ "#{libDir}/*.jar" ] )
ultridClasses.concat( Dir[ "#{libDir}/*.zip" ] )
classpath = ultridClasses.join( ":" )

print "n"
print "Enter file's name to launch (without .xpml ext.) : "
file = gets.chomp

system("java -classpath #{classpath} -Xmx200m
com.ultrid.se.Runner #{file}.xpml")

-----------------------------------------------------------------------

--
Luc Heinrich -

Avatar
yvon.thoravalNO-SPAM
Luc Heinrich wrote:

#!/usr/bin/ruby

ultridDir = Dir.pwd
libDir = "#{ultridDir}/lib"

ultridClasses = Array.new
ultridClasses.concat( Dir[ "#{libDir}/*.jar" ] )
ultridClasses.concat( Dir[ "#{libDir}/*.zip" ] )
classpath = ultridClasses.join( ":" )

print "n"
print "Enter file's name to launch (without .xpml ext.) : "
file = gets.chomp

system("java -classpath #{classpath} -Xmx200m
com.ultrid.se.Runner #{file}.xpml")


ok, c'est mieux effectivement.
au fait c'est ok now avec postgres
--
yt