RubyODBC Cannot allocate SQLHENV - sql

I'm trying to connect to SQL Server on Ubuntu 9.04 using Ruby. I translated and followed all the steps outlined in getting OSX talking to SQL Server from here:
http://toolmantim.com/articles/getting_rails_talking_to_sqlserver_on_osx_via_odbc
Everything is working on the FreeTDS and unixODBC end. I can see and query the database using tsql.
When I try to access the database from Ruby using IRB I get the following error:
DBI::DatabaseError : INTERN (0) [RubyODBC] Cannot allocate SQLHENV
Has anyone run into this and what can I do to solve this?

I started getting this error when I upgraded to Ubuntu 9.10 (Karmic Koala). Your tip regarding installation order of the Ubuntu packages didn't work for me.
It seems the fix was to manually compile ruby-odbc.
wget http://www.ch-werner.de/rubyodbc/ruby-odbc-0.9997.tar.gz
tar xzvf ruby-odbc-0.9997.tar.gz
cd ruby-odbc-0.9997
ruby extconf.rb --with-dlopen
make
sudo make install

System
Ubuntu 9.10 64 bit
I had to specify the odbc directory in the rubyodbc install
wget http://www.ch-werner.de/rubyodbc/ruby-odbc-0.9997.tar.gz
tar xzvf ruby-odbc-0.9997.tar.gz
cd ruby-odbc-0.9997
ruby extconf.rb --with-odbc-dir=/usr/lib/odbc --disable-dlopen
make
sudo make install

I had the same problem.
But on Centos 5.5 not Ubuntu
Tried many forums/solutions with no joy.
The error message hints at a missing reference to unixODBC.
Which was setting using LD_LIBRARY_PATH variable.
Found another way to set path, by creating
/etc/ld.so.conf.d/odbc.conf.
add unixODBC location to file ie /usr/local/lib.
Run, sudo ldconfig.

Go fig that I actually got this working after submitting my question. What I ended up doing was uninstall libdbd-odbc-ruby and libdbi-ruby and then reinstalling them by installing libdbi-ruby first and then installing libdbd-odbc-ruby. I guess when I installed them before, something must of messed up.

BTW, following the instructions to recompile Ruby-ODBC on Ubuntu 9.10 (Karmic) required installation of either the libiodbc2-dev or the unixodbc-dev package. When using libiodbc2-dev, I got segmentation faults when my Ruby program tried:
connection.select_all('select top 15 * from log_device_healths')
..but no problem when using unixodbc-dev instead.

Tim Morgan's solution didn't work for me. However I was able to get things working by installing an older version of libodbc-ruby (0.9995) from here:
http://mirrors.kernel.org/ubuntu/pool/universe/libo/libodbc-ruby/libodbc-ruby1.8_0.9995-1_i386.deb
Additional details are available from Carsten Gehling's blog:
http://gehling.dk/2010/02/the-woes-of-libodbc-ruby1-8-and-debian-ubuntu/
Be careful though -- Ubuntu's Update Manager will happily "upgrade" this version of libodbc-ruby to the broken 0.9997-2. I accidentally overwrote the older version this way only to end up back here, trying to figure out how I fixed it last time.

Well, it seems my other answer stopped working for me. This thread helped me to solve the issue in another way, and I wanted to share it here.
sudo gem uninstall ruby-odbc
sudo rm /usr/local/lib/site_ruby/1.8/x86_64-linux/odbc.so
cd /tmp
wget http://mirrors.kernel.org/ubuntu/pool/universe/libo/libodbc-ruby/libodbc-ruby1.8_0.9995-1_amd64.deb
sudo dpkg -i libodbc-ruby1.8_0.9995-1_amd64.deb
If you're not on a 64-bit platform, you'll need to download a different Debian package.
Basically, what solves the problem is installing version 0.9995 of the ruby-odbc Ubuntu package.

Related

Direnv not allowing me to allow

I've installed direnv (v2.18.2) onto my Ubuntu 16.04 machine using:
sudo snap install direnv
as per the website, and added the line:
eval "$(direnv hook bash)"
to my ~/.bashrc file as per the instructions. When I navigate into the directory with my .envrc file, the following message shown:
direnv: error .envrc is blocked. Run `direnv allow` to approve its content.
Sweet. So I run direnv allow, and I'm immediately hit with exactly the same error. I've also tried using direnv allow . but that doesn't seem to help. Also, completely restarting my laptop hasn't helped either.
All the advice I've seen is for direnv not finding the .envrc file, but here it is finding it, it's just not allowing me to allow it.
I know this is not a propper solution, but I encountered this aftering installing from a snap on Linux Mint.
After I uninstalled the snap and installed it from aptitude I did not have any issues.
While the OP is on Ubuntu I ran into the same problem with the snap installed binary on CentOS 7.7.
I worked around the problem by installing a go binary and then building direnv from source: git clone https://github.com/direnv/direnv.git; cd direnv; make; make install which got me direnv 2.21.2 in /usr/local/bin

mix local.hex fails from SSL after updating Erlang

I was prompted to update Erlang on my machine and I did. Then when I restarted my server I was prompted to update using mix local.hex.
When i did this it gave me the following error.
mix local.hex --force didn't work either.
I eventually found out that I installed erlang originally without brew originally which is where the prompt came from. After I updated it, it caused an issue with mix local.hex.
I manually removed the folder /usr/local/lib/erlang and all erlang on my machine. I installed erlang using 'brew install erlang' and then ran 'brew link erlang'
This originally didn't work because I didn't have permission but then I ran the following to get permission.
sudo chown -R $(whoami) /usr/local/lib
After that 'brew link erlang' worked and I was able to run 'mix local.hex' like normal.

How to resolve Failed running '/usr/lib/pkgconfig/../../bin/mod-mono-server2 --filename /tmp/mod_mono_server_global --nonstop --master

I'm trying to get mod_mono working on CentOS 6.5. I have many failed attempts where either something does not compile at all or fails when trying to run a website. I've tried both latest from git, tarball from git releases, and tarballs of different versions from http://download.mono-project.com/sources/mono/. All fail in one way or another.
So far the "most" working solution I've found is to download this: http://download.pokorra.de/mono/tarballs/mono-3.2.6.tar.bz2 and use latest xsp and mod_mono from under mono-project site.
Problem is even though mod_mono installation went ok, i get this in httpd/error_log:
[error] Failed running '/usr/lib/pkgconfig/../../bin/mod-mono-server2 --filename /tmp/mod_mono_server_global --nonstop --master (null) (null) (null) (null) (null) (null) (null) (null)'. Reason: No such file or directory
So mod_mono does not run. What could be causing this? There are no errors in make or make install output.
Most importantly:
locate mod-mono-server
/usr/local/src/xsp-3.0.11/man/mod-mono-server.1
/usr/local/src/xsp-3.0.11/scripts/mod-mono-server
/usr/local/src/xsp-3.0.11/scripts/mod-mono-server2
/usr/local/src/xsp-3.0.11/scripts/mod-mono-server4
/usr/local/src/xsp-3.0.11/src/Mono.WebServer.Apache/mod-mono-server2.exe
/usr/local/src/xsp-3.0.11/src/Mono.WebServer.Apache/mod-mono-server2.exe.mdb
/usr/local/src/xsp-3.0.11/src/Mono.WebServer.Apache/mod-mono-server4.exe
/usr/local/src/xsp-3.0.11/src/Mono.WebServer.Apache/mod-mono-server4.exe.mdb
/usr/local/src/xsp-3.0.11/test/mod-mono-server.exe.config
/usr/share/man/man1/mod-mono-server.1
There are no mod-mono-servers anywhere else except under sources.
Mono itself is fine, I can run a small console application using mono mytestapp.exe.
I installed mod_mono (like mono and xsp) using prefix /usr:
./configure --prefix=/usr
make && make install
I can see mod_mono.conf generated correctly.
Please forgive me if this is really a hilariously silly question, but what's going on? I would have expected to see something under /usr/bin and /usr/lib but there's nothing even though mod_mono installs without errors.
Edit: Just a side note, as opposed to some other installation, xsp runs fine. With other mono installations I had exceptions in the xsp output.
Most likely, you are trying to run /usr/bin/mod-mono-server2, which most likely does not exist, rather than /usr/bin/mod-mono-server4.
The solution which I just tested is to
sudo apt-get update followed sudo apt-get install mono-apache-server4
create a symbolic link from /usr/bin/mod-mono-server2 to
/usr/bin/mod-mono-server4 like this:
sudo ln -s mod-mono-server4 mod-mono-server2

Configuration for Java binding for ZeroMQ (0MQ) with no root privileges on Linux

I am a novice with zeroMQ and I am stuck at binding ØMQ with java on a server running CentOS release 5.9.
Unfortunately, I do not have super user/root privileges on the server and am trying to install ØMQ as a normal user with restricted privileges. I have installed ØMQ by following instructions on http://www.zeromq.org/area:download
Make sure that libtool, autoconf, automake are installed.
Check whether uuid-dev package, uuid/e2fsprogs RPM or equivalent on your system is installed.
Unpack the .tar.gz source archive.
Run ./configure, followed by make.
Could not run the following obviously
To install ØMQ system-wide run sudo make install.
On Linux, run sudo ldconfig after installing ØMQ.
Then I attempted to install jzmq.
Cloned [git clone https://github.com/zeromq/jzmq.git]
Ran autogen.sh
Ran configure
At this point I get the following error
checking for ZeroMQ... no
checking zmq.h usability... no
checking zmq.h presence... no
checking for zmq.h... no
configure: error: cannot find zmq.h
As a result of the above error I am not able to run java tests and get error "no jzmq in java.library.path".
Can anybody help/direct me to how to get java binding for zeromq work when you dont have root privileges to install it? Its difficult to get IT department to install a new software on servers.
Appreciate your help.
Note: I do not have write permissions to /usr directory
Thanks
GBP
This can be overcome by adding --with-zeromq=/home/user/zeromq (installation directory of zeromq)
./configure --with-zeromq=/home/user/zeromq
Other steps include
export LD_LIBRARY_PATH=/home/user/zeromq/lib
You can also use JeroMQ (https://github.com/zeromq/jeromq) which is a pure Java implementation of ZeroMQ
I got this working by running autogen.sh on OEL 6 then running configure / compiling / installing on CentOS 5.9. I briefly looked into why autogen.sh was failing and the problem was the tool chain was too old. Since I had a more up-to-date system with a modern tool chain available running autogen.sh on something other than CentOS 5 was the easiest path for me. I'm sure it works fine with other modern Linux variants, I had OEL 6 at my finger tips.
I also did not have access to a standard directory for installation. To get that working I added zmq.jar to my class path, and the run-time linker needed to be able to find the zeromq and jzmq run-time libraries.
I faced the same issue on CentOS 6.5 and found that you need to install "gcc-c++" for this to work.
I used the following to install dependencies:
yum -y install jdk zeromq-devel unzip libtool gcc autoconf automake gcc-c++ python
Note that "jdk" comes from our private repository and it's same what can be downloaded from java.com
The following public repositories are installed on server:
atomic
Actually, I ended up having this same issue, and the following script worked for me, where I installed zeromq into ~ (so that I have ~/lib contains libzmq.a libzmq.la libzmq.so libzmq.so.3 libzmq.so.3.1.0 pkgconfig)
./autogen.sh ./configure --prefix=$HOME \ #because you don't have root privileges
--with-zeromq=$HOME --includedir=$HOME/include/ --libdir=$HOME/lib/
./make
./make -n install
#to check to see if it installs it to the right location
make install

Specifying download dir with yum downloadonly

I'm trying to run the following:
yum reinstall glibc --downloadonly --downloaddir=/root/dependencies/
But it keeps giving me an error that --downloaddir is not a valid option though I've seen others use it around the web. I'm using RHEL Workstation 5.5. Is there another way to specify the downloaddir?
Thanks
first install yumdownloader
yum install yumdownloader