Installing Helios on UBUNTU - ruby

Complete Noob at UBUNTU, but..
I have got an UBUNTU server from backspace and I have installed Ruby 2.0
so ruby -V gives me version 2.0
I am now trying to install Helios with
get install helios
and i get the usual :
ERROR: Error installing helios:
ERROR: Failed to build gem native extension.
/usr/local/bin/ruby extconf.rb
checking for pg_config... yes
Using config values from /usr/bin/pg_config
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
the file is libpq-fe.h and it cannot find it, but after searching it says this file is from Postgres and I have followed the ubuntu installation of postgres and i have installed the client and the server.
So I am completely lost.

Try installing libpq-dev PostGre library:
sudo apt-get install libpq-dev
That fixed it for me.

Related

Ruby application: bundle install error due to can't find postgresql client library?

Hello I'm very new with Ruby but I've been tasked to start a deprecated ruby application
I installed the dependencies
- Ruby version
`rbenv install 2.3.1`
`gem install bundle`
`bundle install`
- System dependencies
`brew install postgresql#9.6`
`brew services start postgresql#9.6`
`brew link postgresql#9.6 --force`
Since 9.6 is disabled I'm using 9.5 for postgresql
When I run sudo bundle install (since permisson error)
I run into this error
checking for PQconnectdb() in -lpq... no
checking for PQconnectdb() in -llibpq... no
checking for PQconnectdb() in -lms/libpq... no
Can't find the PostgreSQL client library (libpq)
*** extconf.rb failed ***
I have libpq and postgresql installed by brew..
What am I missing?
Before getting to an answer, it's SUPER important to never run sudo with bundle. This will install the gems with sudo power, meaning they can affect your machine with sudo power. Definitely a very bad thing to give other people's code full sudo access to your machine.
Next, you need to install [libpq-dev][1] before running bundle. This installs necessary binaries and headers needed to create postgresql apps.
On Linux (Ubuntu) run the following:
sudo apt-get install libpq-dev
If you're on Mac you just need to run:
brew install postgresql
and that will install the needed headers for you automatically.
[1]: https://pypi.org/project/libpq-dev/

Gem install error related to missing library

I installed Ruby v2.1.4 from source. I installed all necessary libaries using:
yum install gcc g++ make automake autoconf curl-devel openssl-devel zlib-devel httpd-devel apr-devel apr-util-devel sqlite-devel
All succeeded.
Now when I want to install a gem with:
gem install bundler-1.7.4.gem
I get:
ERROR: Loading command: install (LoadError)
cannot load such file -- zlib
ERROR: While executing gem ... (NoMethodError)
undefined method `invoke_with_build_args' for nil:NilClass
I am sure that zlib is installed:
locate zlib
results in a long list of
/lib/modules/2.6.32-431.el6.x86_64/kernel/crypto/zlib.ko
/lib/modules/2.6.32-431.el6.x86_64/kernel/lib/zlib_deflate
/lib/modules/2.6.32-431.el6.x86_64/kernel/lib/zlib_deflate/zlib_deflate.ko
/lib64/rsyslog/lmzlibw.so
/usr/include/zlib.h
/usr/lib64/pkgconfig/zlib.pc
/usr/lib64/python2.6/encodings/zlib_codec.py
/usr/lib64/python2.6/encodings/zlib_codec.pyc
/usr/lib64/python2.6/encodings/zlib_codec.pyo
/usr/lib64/python2.6/lib-dynload/zlibmodule.so
/usr/local/share/doc/ruby/capi/html/db/d74/zlib_8c.html
/usr/local/share/doc/ruby/capi/html/db/d74/zlib_8c_source.html
/usr/local/share/ri/2.1.0/system/Zlib/zlib_version-c.ri
/usr/share/doc/zlib-1.2.3
/usr/share/doc/zlib-devel-1.2.3
/usr/share/doc/zlib-1.2.3/ChangeLog
/usr/share/doc/zlib-1.2.3/FAQ
/usr/share/doc/zlib-1.2.3/README
/usr/share/doc/zlib-devel-1.2.3/README
/usr/share/doc/zlib-devel-1.2.3/algorithm.txt
/usr/share/doc/zlib-devel-1.2.3/example.c
/usr/share/doc/zlib-devel-1.2.3/minigzip.c
/usr/share/man/man3/zlib.3.gz
/usr/src/kernels/2.6.32-431.el6.x86_64/include/config/zlib
/usr/src/kernels/2.6.32-431.el6.x86_64/include/config/crypto/zlib.h
/usr/src/kernels/2.6.32-431.el6.x86_64/include/config/jffs2/zlib.h
/usr/src/kernels/2.6.32-431.el6.x86_64/include/config/ubifs/fs/zlib.h
/usr/src/kernels/2.6.32-431.el6.x86_64/include/config/zlib/deflate.h
/usr/src/kernels/2.6.32-431.el6.x86_64/include/config/zlib/inflate.h
/usr/src/kernels/2.6.32-431.el6.x86_64/include/linux/zlib.h
/usr/src/kernels/2.6.32-431.el6.x86_64/lib/zlib_deflate
/usr/src/kernels/2.6.32-431.el6.x86_64/lib/zlib_inflate
/usr/src/kernels/2.6.32-431.el6.x86_64/lib/zlib_deflate/Makefile
/usr/src/kernels/2.6.32-431.el6.x86_64/lib/zlib_inflate/Makefile
Did I miss something?
I have found the solution at this blog. I am unable to use rvm because server have no internet connection even through proxy.
While installing ruby from sources doing the following solved the issue:
Remove the installed Ruby with make clean
Install libssl-dev with your OS's package manager of choice. E.g. apt-get install libssl-dev
Install zlib1g-dev with your OS's package manager of choice. E.g. apt-get install zlib1g-dev
Config make file to include openssl by go to ext/openssl and run ruby extconf.rb
Config make file to include zlib by go to ext/zlib and run ruby extconf.rb
Go back to ruby source code directory run make && make install
You should be able to successfully run gem install bundler

Recompiling/reinstalling Ruby 2.0 with openssl

I'm currently trying to install gitlab on a fresh Ubuntu server in the rackspace cloud, and this requires I install Ruby 2.0.
So I downloaded ruby via curl and installed it by doing the following:
./configure
make
make install
Then, when trying to install a gem I got an error saying cannot load such file -- openssl.
Clearly I was missing open ssl. So I installed openssl and libssl-dev, as I heard you need this too if you're using Ubuntu:
apt-get install openssl
apt-get install libssl-dev
I then reinstalled ruby by repeating the steps above:
./configure
make
make install
However, after all of this, I still get the same openssl error: cannot load such file -- openssl
I assume that I'm not reinstalling ruby correctly. There must be some steps I'm missing to remove the initial configuration, however no amount of googling yields an answer that makes sense to me. Does anyone know how I would go about doing this?
edit: I'm downloading ruby from the following source: ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p247.tar.gz
I did that on a standard debian 7, with a fresh openssl installed under /opt/openssl, like this
$cd ~/ruby-src
$./configure --prefix=/opt/ruby --without-openssl
$make
$sudo make install
And then using ext/openssl/
$export PATH=/opt/ruby/bin:/opt/openssl/bin:$PATH
$which ruby
/opt/ruby/bin/ruby
$which openssl
/opt/openssl/bin/openssl
$cd ~/ruby-src/ext/openssl/
$ruby extconf.rb --with-openssl-dir=/opt/openssl
$make
$sudo make install
I had to comment out the line with OP_MSIE_SSLV2_RSA_PADDING in ossl_ssl.c, because that constant does not exist in the current openssl distribution, but then everything compiled cleanly.

How to install Nokogiri Ruby gem with mkmf.log saying libiconv not found?

I'm installing the Ruby Nokogiri gem and finding the error below.
How to diagnose this and solve it?
# gem install nokogiri
Building native extensions. This could take a while...
ERROR: Error installing nokogiri:
ERROR: Failed to build gem native extension.
...
/opt/ruby/1.9.3-p194/bin/ruby extconf.rb
checking for libxml/parser.h... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
...
/opt/ruby/1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:381:in `try_do':
The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
from /opt/ruby/1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:506:in `try_cpp'
...
To diagnose and solve, here's what worked for me.
To find out what failed, go to your ruby gems directory.
For example:
$ cd <MY RUBY DIRECTORY>/lib/ruby/gems/2.0.0/gems
If you don't know your gem directory, try this:
$ echo $GEM_HOME
/opt/gems/2.0.0
$ cd /opt/gems/2.0.0/gems
What version of nokogiri am I installing?
$ ls -ladg nokogiri-*
nokogiri-1.5.5
Go to the installer directory:
$ cd nokogiri-1.5.5/ext/nokogiri
Try installing manually:
$ ruby extconf.rb
Result:
checking for libxml/parser.h... *** extconf.rb failed ***
...
I'm using Ubuntu so I search for any similar packages:
$ aptitude search libxml
Results:
p libxml2 - GNOME XML library
p libxml2-dev - Development files for the GNOME XML library
...
I believe that libxml2 will work fine.
$ apt-get install libxml2
Ruby native gems often need the *-dev packages for headers so install them:
$ apt-get install libxml2-dev
Now do I have the parser file?
$ find / | grep libxml/parser.h
Yes, the result shows the parser:
/usr/include/libxml2/libxml/parser.h
Now try installing again, this time providing the libxml2 path:
$ gem install nokogiri -- --with-xml2-dir=/usr/include/libxml2
It still fails, so read the mkmf error log:
$ more mkmf.log
The error log shows what failed and has these lines that look promising:
package configuration for libxslt is not found
Is there a package for it?
$ aptitude search libxslt
Results:
v libxslt-dev
i libxslt-ruby
...
Install the dev package:
$ apt-get install libxslt-dev
Now try installing again, and also put xslt on the path:
$ gem install nokogiri -- \
--with-xml2-dir=/usr/include/libxml2 \
--with-xslt-dir=/usr/include/libxslt
Success!
Installing Nokogiri Website
'Installing Nokogiri' is a website dedicated to installing Nokogiri on the major platforms - Here is an excerpt about Installing Nokogiri on Ubuntu:
Because Nokogiri needs to be compiled and dynamically linked against
both libxml2 and libxslt, it has gained a reputation for being
complicated to install.
As of Nokogiri 1.6, libxml2 and libxslt source code is bundled with
Nokogiri, and compiled at gem-install-time. The instructions in this
document should work for all versions 1.6.4 and later.
Ubuntu / Debian
Installation should Just Work™ on Ubuntu and Debian using Nokogiri’s
vendored libxml2 and libxslt:
gem install nokogiri
[...]
Using Your System Libraries
If, instead of Nokogiri’s vendored libraries, you’d like to use your
system’s libxml2, libxslt and related libraries, please first
understand that you may be asking Nokogiri to work with an unsupported
version of libxml2.
sudo apt-get install pkg-config
gem install nokogiri -- --use-system-libraries
FYI - I am using Nokogiri 1.6.6.2 and it didn't 'just work'. I got it going with the --use-system-libraries.
Mac OS X
The website's advice also covers OS X - this worked for me:
gem update --system
xcode-select --install
gem install nokogiri
Conclusion
If you have a Nokogiri problem on any platform you should check out the website.
On CentOS here is what I needed to do:
gem update --system
yum install libxml2-devel libxslt-devel ruby-devel
gem install nokogiri -- --use-system-libraries
Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers.
You are probably missing zlib headers which are required for -lz flag in order to compile the sources correctly. Install on Linux by:
sudo apt-get install libz-dev
For missing libiconv, try installing libiconv-hook-dev package which has header files of libiconv-hook, e.g.
sudo apt-get install libiconv-hook1 libiconv-hook-dev
On OS X, try installing development tools via: xcode-select --install.
If there is still problem, check mkmf.log file for more specific details about your error.
On Ubuntu, try the following dependency fix combo:
sudo apt-get install gcc ruby-dev libxslt-dev libxml2-dev zlib1g-dev
The 'could not create Makefile' error you're seeing could also be because you haven't agreed to the Xcode license (you have to agree to it after each time you update Xcode). Running sudo xcodebuild -license accept should eliminate this error for you and allow you to then run gem install nokogiri successfully.

gem install memcached fails

On doing
gem install memcached
following error gets thrown.
....
....
checking for pod2man... /usr/bin/pod2man
./configure: line 22468: syntax error near unexpected token `sasl,,'
./configure: line 22468: ` AC_LIB_HAVE_LINKFLAGS(sasl,,'
make: *** [config.status] Error 2
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
I have already install libmemcached using
sudo yum install libmemcached
On Ubuntu, try doing:
sudo apt-get install libsasl2
sudo apt-get install libsasl2-dev
I encountered this issue trying to install the memcached gem on Amazon's AMI Linux.
I resolved it with installing both cyrus-sasl and cyrus-sasl-devel:
cyrus-sasl.i686 : The Cyrus SASL library
cyrus-sasl-devel.i686 : Files needed for developing applications with Cyrus SASL
as well as, and this is key:
gettext.i686 : GNU libraries and utilities for producing multi-lingual messages
gettext-devel.i686 : Development files for gettext
Once these were installed
sudo gem install memcached
Building native extensions. This could take a while...
Successfully installed memcached-1.3.5
1 gem installed
I think you need to install memcache-client instead.
gem install memcache-client
and you will see this:
1 gem installed
Installing ri documentation for memcache-client-1.8.5...
Installing RDoc documentation for memcache-client-1.8.5...

Resources