rails install pg - Can't find the 'libpq-fe.h header - c

$ sudo bundle install
Result
Fetching gem metadata from https://rubygems.org/...........
Fetching gem metadata from https://rubygems.org/..
Using rake (0.9.2.2)
Using i18n (0.6.1)
Using multi_json (1.3.6)
Using activesupport (3.2.8)
Using builder (3.0.4)
Using activemodel (3.2.8)
Using erubis (2.7.0)
Using journey (1.0.4)
Using rack (1.4.1)
Using rack-cache (1.2)
Using rack-test (0.6.2)
Using hike (1.2.1)
Using tilt (1.3.3)
Using sprockets (2.1.3)
Using actionpack (3.2.8)
Using mime-types (1.19)
Using polyglot (0.3.3)
Using treetop (1.4.11)
Using mail (2.4.4)
Using actionmailer (3.2.8)
Using arel (3.0.2)
Using tzinfo (0.3.33)
Using activerecord (3.2.8)
Using activeresource (3.2.8)
Using bundler (1.2.1)
Using coffee-script-source (1.4.0)
Using execjs (1.4.0)
Using coffee-script (2.2.0)
Using rack-ssl (1.3.2)
Using json (1.7.5)
Using rdoc (3.12)
Using thor (0.16.0)
Using railties (3.2.8)
Using coffee-rails (3.2.2)
Using jquery-rails (2.1.3)
Installing pg (0.14.1) with native extensions
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/usr/bin/ruby1.8 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
*** 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.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/bin/ruby1.8
--with-pg
--without-pg
--with-pg-dir
--without-pg-dir
--with-pg-include
--without-pg-include=${pg-dir}/include
--with-pg-lib
--without-pg-lib=${pg-dir}/lib
--with-pg-config
--without-pg-config
--with-pg_config
--without-pg_config
Gem files will remain installed in /var/lib/gems/1.8/gems/pg-0.14.1 for inspection.
Results logged to /var/lib/gems/1.8/gems/pg-0.14.1/ext/gem_make.out
An error occurred while installing pg (0.14.1), and Bundler cannot continue.
Make sure that `gem install pg -v '0.14.1'` succeeds before bundling.
I am make $ gem install pg -v '0.14.1' But this is not help
My Gemfile
source 'https://rubygems.org'
#gem 'rails', '3.0.9'
#gem 'sqlite3', '1.3.6', :group => :development
gem 'rails', '3.2.8'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'sqlite3'
gem 'pg'
gem 'taps'
gem 'json'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', :platforms => :ruby
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
#group :production do
#gem 'pg'
#end
#group :development do
#gem 'sqlite3'
#end
gem_make.out
/usr/bin/ruby1.8 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
*** 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.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/bin/ruby1.8
--with-pg
--without-pg
--with-pg-dir
--without-pg-dir
--with-pg-include
--without-pg-include=${pg-dir}/include
--with-pg-lib
--without-pg-lib=${pg-dir}/lib
--with-pg-config
--without-pg-config
--with-pg_config
--without-pg_config
mkmf.log
find_executable: checking for pg_config... -------------------- yes
--------------------
find_header: checking for libpq-fe.h... -------------------- no
"gcc -E -I. -I/usr/lib/ruby/1.8/i686-linux -I. -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -I -fno-strict-aliasing -g -g -O2 -fPIC conftest.c -o conftest.i"
conftest.c:1:22: fatal error: libpq-fe.h: No such file or directory
compilation terminated.
checked program was:
/* begin */
1: #include <libpq-fe.h>
/* end */
--------------------
Help me please. Thank you.
Sorry for this text.
Your post does not have much context to explain the code sections; please explain your scenario more clearly.

Just make this
$ sudo apt-get install libpq-dev

This is answered in Can't find the 'libpq-fe.h header when trying to install pg gem
Depending on your environment:
Mac: brew install postgresql
Ubuntu: sudo apt-get install libpq-dev
RHEL: yum install postgresql-devel
Alpine: apk add postgresql-dev
Then run gem install pg again

SO: Ubuntu
Language Programming: C
$ sudo apt-get install libpq-dev
In my case I was putting the directory path wrong. So:
From: gcc -o lib_version lib_version.c -I/usr/include/postgresql -lpq -std=c99
To: gcc -o lib_version lib_version.c -I /usr/include/postgresql -lpq -std=c99
GL

Try this:
brew install postgresql
gem install pg
bundle install

On Fedora/RHEL systems this did the trick:
sudo yum install libpqxx-devel

For Alpine Linux, you can add libpq-fe.h with:
apk add postgresql-dev

For Amazon Linux (AWS):
sudo yum install postgresql-devel
then run your command again

On Mac OS X run like this:
gem install pg -- --with-pg-config=***/path/to/pg_config***
***/path/to/pg_config*** is path to pg_config

I had this issue with a Jenkins server on Amazon AMI.
$ pg_config | grep VERSION
VERSION = PostgreSQL 9.4.9
Then depending on which version you need you can install the required lib
$ sudo yum list postgresql* | grep devel
postgresql92-devel.x86_64 9.2.18-1.59.amzn1 #amzn-main
postgresql94-devel.x86_64 9.4.9-1.67.amzn1 #amzn-main
postgresql8-devel.x86_64 8.4.20-5.52.amzn1 amzn-main
postgresql93-devel.x86_64 9.3.14-1.62.amzn1 amzn-main
postgresql95-devel.x86_64 9.5.4-1.71.amzn1 amzn-main
Then you can just install the corresponding version, in my case for version 9.4:
sudo yum install postgresql94-devel

This was happening me using capistrano while deploying my app in a centos7 distro. Apparently gem is requiring some header files which can be resolved installing the right development package.
I fixed it by running sudo yum search postgres | grep devel and found the right package for my postgres installation which was 10.
Then simply run sudo yum install postgresql10-devel, and eureka!

try this:
sudo apt-get install libpq-dev
gem install pg
it would be works!

On mac make sure your postgres is linked.
You can do it by
brew link --overwrite postgresql
This fixed the issue for me.

I use Ubuntu-16. And I use the method showed here:https://www.postgresql.org/download/linux/ubuntu/ to install postgresql-9.6;
And I use "sudo apt-get install libpq-dev" to install the devlib.But It still can't work. So I use the method ln to establish soft link, here it is :
sudo ln -s /usr/include/postgresql/libpq-fe.h /usr/include/;
sudo ln -s /usr/include/postgresql/postgres_ext.h /usr/include/
And I solve the problem at last.

brew install postgresql worked for me.
Installation of postgresql was giving another error
Error: The following directories are not writable by your user:
/usr/local/lib/pkgconfig
/usr/local/share/info
/usr/local/share/man/man3
This error was fixed by giving access to the mentioned directories to the current user
sudo chown -R $(whoami) (path)

This worked for me:
sudo gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config

If you've installed postgresql on MacOS via Homebrew
brew install postgresql#95 # 9.5 is the version needed in my project
you may need to find the pg_config depending on your version of libpq
my project needed older version of pg.
gem install pg -v '0.20.0' -- --with-pg config=/usr/local/Cellar/libpq/13.1/bin/pg_config

Related

Undefined subroutine &main::open_quote called at /usr/local/bin/autom4te line 262

Hi I try to install xdebug via pecl on macox (Big Sur 11.5.2)
But I get error message
xdebug volodymyr$ pecl install xdebug
downloading xdebug-3.0.4.tgz ...
Starting to download xdebug-3.0.4.tgz (215,870 bytes)
.............................................done: 215,870 bytes
87 source files, building
running: phpize
Configuring for:
PHP Api Version: 20190902
Zend Module Api No: 20190902
Zend Extension Api No: 320190902
Undefined subroutine &main::open_quote called at /usr/local/bin/autom4te line 262.
ERROR: `phpize' failed
I update perl but it did help me (I can't catch if the open_quote is a part of perl)
Also I didn't find any information in the internet that is related with open_quote function issue
I tried to install xdebug from source and get the same bug on the ./phpize step
Resolve:
Just reinstall autoconf automake libtool
I run
brew reinstall autoconf automake libtool
After that I run brew link --force autoconf and it resolved the trouble
The error here comes from autom4te, not pecl or ./phpize. You need to update automake and autoconf, and/or related packages.

How do you upgrade TigerGraph?

Right now we have TigerGraph 2.1.0 and we want to install the newest version 2.1.4. What is the correct way to do this?
Prerequisites:
Currently only upgrading within the same minor version is supported (i.e. 2.1.x -> 2.1.y)
To upgrade to a different minor version (i.e. 2.1.x -> 2.2.y), you might need to contact support#tigergraph.com.
Upgrade Within the Same Minor Version:
Login as the tigergraph user. (For cluster configurations please login to node m1)
Download the tigergraph tarball for the version you want to upgrade to (i.e. tigergraph-2.1.8-offline.tar.gz).
Untar the offline tarball and install tigergraph.bin with the following commands:
tar -xzf tigergraph-x.y.z-offline.tar.gz #replace x.y.z with the version you downloaded in the previous step
cd tigergraph-x.y.z-offline
bash tigergraph.bin -v
#i.e. for 2.1.8:
#tar -xzf tigergraph-2.1.8-offline.tar.gz
#cd tigergraph-2.1.8-offline
#bash tigergraph.bin -v

pipenv install glob fails

I tried to install glob in my virtual python (version 3.5) environment. This is an error I got. I found similar questions on this channel, but not much of help.
$pipenv install glob
Installing glob…
Collecting glob
Error: An error occurred while installing glob!
Could not find a version that satisfies the requirement glob (from versions: )
No matching distribution found for glob
The issue is that pipenv looks up the version in the url specified in [[source]] in the Pipfile and glob is not in there. However, glob is part of the Standard Library in Python so you do not need to install it via pipenv and you can just call it from your script 'import glob' and it should work.
You are using python 3.X
here are the correct glob versions
for python 2.7
sudo pip install glob2
for python 3.7
sudo pip3 install glob3

Building mongodb C driver on MacOS

I tried this:
git clone git://github.com/mongodb/mongo-c-driver.git
cd mongo-c-driver
./autogen.sh --prefix=/usr --libdir=/usr/lib64
Output:
Error: libtoolize was not found on your system. Cannot continue.
On Darwin, this is named glibtoolize
Submodule 'src/libbson' (git://github.com/mongodb/libbson.git) registered for path 'src/libbson'
Cloning into 'src/libbson'...
remote: Reusing existing pack: 5211, done.
remote: Counting objects: 66, done.
remote: Compressing objects: 100% (65/65), done.
remote: Total 5277 (delta 35), reused 2 (delta 0)
Receiving objects: 100% (5277/5277), 5.18 MiB | 2.22 MiB/s, done.
Resolving deltas: 100% (3463/3463), done.
Checking connectivity... done.
Submodule path 'src/libbson': checked out '5fafb63060b08c477fa8e243e07de40869de691d'
Error: libtoolize was not found on your system. Cannot continue.
On Darwin, this is named glibtoolize
Error: autoreconf not found, please install it.
Error: autoreconf not found, please install it.
How can I fix this? (Sorry...not normally a C guy, so use small words.)
You need to install libtool. The easiest is to do it with Homebrew. If you don't already have Homebrew installed, you can install it with a simple command:
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
You can find more information on the site. When Homebrew is installed, you can install libtool easily:
brew install libtool
You can also use Homebrew package manager for Mac
brew install mongo-c

Update to last version after already installed old

I'm using fastcgi and my PHP version is 5.3.3 instead of 5.5 so my question is how can I update to latest PHP version? I'm using CentOS, I tried yum update, but no update appeared for this.
Normally you need to uninstall the 5.3 branch and install 5.5 from scratch because it is not an update but a new version.
Beware that in 5.5 quite some functions are deprecated that were still available in 5.3!
http://blog.ahughes.org/?p=717
Uses the remi repository.
From the blog:
By running the following commands:
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
you solve all dependency issues with epel and remi on CentOS 6.
Then, by running the following command, you install PHP 5.5.
yum --enablerepo=remi,remi-test install httpd php php-common
For extra goodies, you can run the following command:
yum --enablerepo=remi,remi-test install php-pecl-apc php-cli php-pear php-pdo php-mysqlnd php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml
Now, restart your httpd service and set it to boot automatically:
service httpd restart
chkconfig --levels 235 httpd on
Now run:
php --version
to see whether the correct version of PHP was installed.

Resources