postgres.app: How Do I Install libpq-dev on the Mac? - postgresql

I'm running the latest version of postgres using the postgres app.
[mydir] (master) which psql
/Applications/Postgres.app/Contents/Versions/latest/bin/psql
I've been getting errors when I try to install the RubyGem pg.
ERROR: Error installing pg:
ERROR: Failed to build gem native extension.
current directory: /Users/myusername/.rvm/rubies/ruby-3.0.0/lib/ruby/gems/3.0.0/gems/pg-0.21.0/ext
/Users/myusername/.rvm/rubies/ruby-3.0.0/bin/ruby -I /Users/myusername/.rvm/rubies/ruby-3.0.0/lib/ruby/site_ruby/3.0.0 -r ./siteconf20210521-34776-tmn3lu.rb extconf.rb --with-pg-config\=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_config
Using config values from /Applications/Postgres.app/Contents/Versions/latest/bin/pg_config
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.h... yes
checking for pg_config_manual.h... yes
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 ***
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.
....... other stuff here ........
From checking many posts about this error over the past few years, a good number of older posts stated that they were able to fix these types of errors by installing libpq-dev.
I have seen this command as a way to install it but apt is unavailable on the Mac.
sudo apt-get install libpq-dev
I've seen other solutions using Homebrew. I don't believe is an option as I have read this will install its version of postgres which I don't want.
I'm using pgAdmin 5.3.
How do I install libpq-dev in my postgres.app database? I was not successful in finding anything online or in the postgres.app documentation.

Related

Not able to install php memcache

When I run brew install php56-memcache I get the following error.
checking whether to enable memcache session handler support... yes
checking for the location of ZLIB... no
checking for the location of zlib... configure: error: memcache support
requires ZLIB. Use --with-zlib-dir=<DIR> to specify prefix where ZLIB
include and library are located
I have zlib in brew list.
autoconf jpeg memcached php56 ruby-build
freetype libevent mhash php56-igbinary unixodbc
gettext libmemcached mysql php56-memcached vim
git libpng node pkg-config zlib
icu4c mcrypt openssl rbenv
I tried `bbrew install php56-memcache --with-zlib-dir=/usr/local/Cellar/zlib/1.2.8' but it gives the same error.
I tried a manual way, ./configure, make, make install, but the result is the same.
How can I install memcache?
I run the followings and it is installed.
brew link --force zlib
brew install php56-memcache
This did the trick for me [#1637], just run
xcode-select --install
brew install php{xx}-memcache

pg gem install fails, cannot find libpq-fe.h header

Whenever I run bundle install on my VPS (CentOS Linux release 7.0.1406 (Core)) I get an error when installing the pg gem.
No pg_config... trying anyway. If building fails, please try again with
--with-pg-config=/path/to/pg_config
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.
I can install pg standalone with: gem install pg -- --with-pg-config=/usr/pgsql-9.4/bin/pg_config and the issue is resolved.
So I added a capistrano taskto create a ./bundle/config for the deploy with the build.pg key set with the path to pg_config on my VPS. In the Capistrano config/deploy.rb this is invoked before bundler:install.
desc "Create bundle config"
task :prepare_bundle_config do
on roles(:app) do
within release_path do
execute :bundle, 'config build.pg --with-pg-config=/usr/pgsql-9.4/bin/pg_config --local'
end
end
end
I have the necessary packages installed:
postgresql94-server.x86_64
postgresql94-devel.x86_64
postgresql94-libs.x86_64
libpqxx.x86_64
libpqxx-devel.x86_64
Here are the capistrano* gems I have installed
bundle list | grep capistrano
* capistrano (3.3.5)
* capistrano-bundler (1.1.4)
* capistrano-rails (1.1.2)
* capistrano-rbenv (2.0.3)
* capistrano-stats (1.1.1)
What am I missing here to successfully install pg with bundler? Please leave a comment if you need any additional information and I will update this post.
The postgres binaries are not in the path. Symlink them in to a directory in your path and you should be good: ln -s /usr/pgsql-9.4/bin/p* /usr/local/bin.
Did you build postgres or install it from yum?
Just posting the solution for PostgreSQL 11. If someone lands here.
sudo yum install epel-release
sudo yum install postgresql11-llvmjit
sudo yum install postgresql11-devel postgresql11-libs
Then run
gem install pg -v '1.2.3' -- --with-pg-config=/usr/pgsql-11/bin/pg_config
Thats it
I find that if I compile pgsql with source code, and PATH ENV not configed with pgsql/bin, this happends. You can have a try with this.
Alternatively, if you're using a Mac
brew link postgresql
Or in my case
brew link postgresql#12

Error "the PGXS Makefile cannot be found" when installing PostGis on Debian

I am in the process of installing PostGis over psql on a Debian machine (actually crunchbang).
I have completed the following steps:
$ wget http://download.osgeo.org/postgis/source/postgis-2.0.3.tar.gz
$ tar xzf postgis-2.0.3.tar.gz
$ cd postgis-2.0.3
$ ./configure
On the final step I get the following error:
configure: error: the PGXS Makefile /usr/lib/postgresql/9.1/lib/pgxs/src/makefiles/pgxs.mk cannot be found. Please install the PostgreSQL server development packages and re-run configure.
The issue is that I do already have Postgres installed:
$ psql --version
psql (9.1.9)
I have checked this on two machines with the same configuration and get the same error. What am I missing here?
PostgreSQL is broken down into several packages, and having psql installed doesn't imply that the development packages are also installed.
According to the error message:
Please install the PostgreSQL server development packages and re-run
configure
you need:
# apt-get install postgresql-server-dev-9.1
Also note there's a APT pgdg repository providing recent pre-compiled versions of postgres-related packages (including postgis) that you may use instead of self-compiling.
If your system is set up to use this repository, just do:
# apt-get install postgresql-9.1-postgis-2.0
Daniel's answer works great except that it needs the following update:
$ sudo apt-get install postgresql-9.1-postgis-2.1
These packages can be updated some time in future again. So, it is recommended to search for new packages using aptitude and install the appropriate one:
$ aptitude search postgis

Installing memcached on CentOS 6

I have to admit to be fumbling in the dark here. I am fairly good at PHP but I know little or nothing about managing LINUX servers. I need to install memcached on my 64 bit CentOS 6 server and came across two very informative resources
http://boomshadow.net/tech/installs/how-to-install-memcached/
I followed the steps expained there and the memcached daemon is up and running on my server now. I still need to install the PHP extension for memcache so I tried the steps explained here
http://boomshadow.net/tech/installs/how-to-install-php-memcache/
Here is the output I get
[root#xxx ~]# pecl install memcache
WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update
pecl.php.net" to update
downloading memcache-3.0.8.tgz ...
Starting to download memcache-3.0.8.tgz (70,523 bytes)
.................done: 70,523 bytes
15 source files, building
running: phpize
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
Enable memcache session handler support? [yes] : yes
building in /var/tmp/pear-build-rootZi8fyR/memcache-3.0.8
running: /var/tmp/memcache/configure --enable-memcache-session=yes
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for a sed that does not truncate output... /bin/sed
checking for cc... no
checking for gcc... no
configure: error: in `/var/tmp/pear-build-rootZi8fyR/memcache-3.0.8':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
ERROR: `/var/tmp/memcache/configure --enable-memcache-session=yes' failed
[root#xxx
I cannot make a secret of this - most of this is Greek to me. What I think I have figured out is that pecl is looking for a C compiler to build the PHP memcache driver from the downloaded source and cannot find it. Even if that is right it does not help me much.
Just what do I need to do here to get things working correctly.
Old habits die hard, I guess - answering my own question once again.
# yum groupinstall 'Development Tools'
to install development tools including the gcc compiler. The memcahe.so extension uses zlib so you also need to do
# yum install zlib-devel
if you came accross configure: error: no, sasl.h is not available. Run configure with --disable-memcached-sasl to disable this check
ERROR: /var/tmp/memcached/configure --with-libmemcached-dir=no' failed
./configure --enable-memcached-sasl=no
make
make install
pecl install memcached

MongoDB Install Error

Just setup a fresh server at MediaTemple (dedicated virtual / CentOS Linux) and installed the developer tools, but Mongo won't install, any ideas?
Also, it's trying to DL version 1.2.10 I assume I can run pecl upgrade mongo once it is installed to go to 2.0.6 right?
Here's my output:
[root ~]# pecl install mongo
downloading mongo-1.2.10.tgz ...
Starting to download mongo-1.2.10.tgz (86,463 bytes)
.....................done: 86,463 bytes
36 source files, building
running: phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
building in /var/tmp/pear-build-root/mongo-1.2.10
running: /root/tmp/pear/cache/mongo-1.2.10/configure
checking for egrep... grep -E
checking for a sed that does not truncate output... //bin/sed
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details.
ERROR: `/root/tmp/pear/cache/mongo-1.2.10/configure' failed
You're not installing mongodb with pecl, here you're installing the PHP driver for mongodb.
To install mongodb on CentOS, please follow these instructions here. These instructions show you how to add the 10gen repo, which will then enable you (using yum) to install the latest production-ready mongodb release (2.0.6).
I realise that it's not Ubuntu but egarding your issue with installing the PHP driver, does it make any difference if you run
sudo pecl install mongo
There's some information here on installing the mongo php driver, just replace the 'apt-get' elements with 'yum' as the same libraries, dependencies apply afaik.
Here's a tutorial on using the mongo php driver.