Change PostgreSQL versions to use it with Apache AGE - postgresql

I have been using Apache AGE with PostgreSQL version 11-17, installed postgres from source code, but I was informed that it is better to clone it directly. So then I followed these steps:
Cloned with git clone https://git.postgresql.org/git/postgresql.git ;
Changed the branch to origin/REL_12_STABLE ;
Configured with ./configure -prefix=S(pwd) --enable-cassert -enable-debug CFLAGS="-glldb -Og -g3 -fno-omit-frame-pointer" ;
Installed it with make install .
Then I went to where Apache AGE was installed and typed the command:
sudo make PG_CONFIG=/Users/.../postgresql/bin/pg_config install
and then I got a bunch of errors:
fatal error: too many errors emitted, stopping now [-ferror-limit=]
1 warning and 20 errors generated.
make: *** [src/backend/utils/adt/agtype.o] Error 1
I guess that this error occurs due to the fact that I changed to REL_12_STABLE and AGE works only with REL_12_ALPHA but with git branch -r it does not show the alpha version so I can change to it.
Am I following these steps correctly or am I missing something here? Is the REL_12_ALPHA only available from source code?

You should use the branch "REL_12_STABLE" from PostgreSQL and the branch "AGE PG12.1.0 ALPHA" from Apache AGE.

Related

Elastic Beanstalk application deployment fails from EBExtension failing to install

We're using Elastic Beanstalk, (Postgres, Node.js running on 64bit Amazon Linux/3.2.0) and I woke up today to a Severe Health warning, causing all requests to respond with a 502 Bad Gateway. I haven't manually deployed since 4/9/19, so not sure why this happened all of a sudden.
The original error we got was:
Application deployment failed at 2019-04-18T15:39:51Z with exit status 1 and error: Package listed in EBExtension failed to install.
Yum does not have postgresql96-devel available for installation.
The repo I inherited is a little untidy, and I found instance of postgres96-devel in three different files:
.ebextensions/config.yml
.ebextensions/proxy.config
proxy.config
My config.yml file looks like:
packages:
rpm:
postgresql: https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-6-x86_64/pgdg-ami201503-96-9.6-2.noarch.rpm
yum:
postgresql96-devel: []
perl-CPAN: []
I noticed the rpm link returns a 404, and when looking for a better url, I saw this warning on the Postgres RPM page:
As of 15 April 2019, there is only one repository RPM per distro, and
it includes repository information for all available PostgreSQL
releases
What I've tried:
Redeploying the last successful build from 4/9/19
Changing the config.yml file to look like
// obviously I'm thrashing here
packages:
rpm:
postgresql: https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-6-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum:
postgresql11-devel: []
perl-CPAN: []
According to this AWS support article, I terminated the instance and let EB bring up a new instance.
With all these trials + redeploying, I still seeing errors like:
Application deployment failed at 2019-04-18T17:40:41Z with exit status 1 and error: Package listed in EBExtension failed to install.
Yum does not have postgresql96-devel available for installation.
Incorrect application version "app-v1_4_1-190418_084747" (deployment
98). Expected version "app-v1_4_1-190409_140626" (deployment 104).
Process default has been unhealthy for 42 minutes
(Target.FailedHealthChecks).
I'm not sure why it's complaining about postgres96-devel since I changed my config file to point to postgres11-devel.
Any ideas how to get things back up and running?
I was able to get everything back up and running. Here's what I think happened.
Our prod instances were running Linux 3.2. This did not contain the correct rpm package, so it relied on the rpm link from config.yml.
That url broke as of 4/15/19, so when EB went to deploy and pull that RPM, it failed, causing the entire deployment to fail.
The fix was to simply downgrade the yum package from postresql96-devel to postgres95-devel. Linux 3.2's yum directory contained postgres95-devel, so the deployment was able to skip going out to the internet to download the rpm (which at this point was broken).
You can install the PostgreSQL 9.6 using the amazon-linux-extra tool:
(if using docker, in a Dockerfile: )
RUN amazon-linux-extras install postgresql9.6

error: SERVER does not appear in AM_CONDITIONAL

I am trying to install Lustre on CentOS 7. I followed this link. When I try to run sh ./autogen.sh to generate the configure script I get the above error as illustrated below.
[root#localhost lustre-release]# sh ./autogen.sh
configure.ac:10: installing 'config/config.guess'
configure.ac:10: installing 'config/config.sub'
configure.ac:12: installing 'config/install-sh'
configure.ac:12: installing 'config/missing'
autoMakefile.am:127: error: SERVER does not appear in AM_CONDITIONAL
libcfs/libcfs/autoMakefile.am: installing 'config/depcomp'
Does anyone know how I can resolve this?
To build lustre from git use "autogen.sh" in the top level directory to setup the build environment:
$ bash autogen.sh
libcfs/libcfs/autoMakefile.am: installing 'config/depcomp'
$
Did you try downloading a pre-built package from https://downloads.whamcloud.com/public/lustre/ ? That is usually the easiest compared to building your own.
If you want to build your own Lustre code, which version of the source are you using? The latest code is available at git.whamcloud.com. Most users should use the LTS release (b2_10 branch currently), but if you are doing new development you should use the master branch.

MongoDB php7 driver installation

I'm working on an Ubuntu 16 server and I can't seem to get the mongodb driver for php 7 to work. I installed it successfully on my xampp on my windows machine but Ubuntu and php7 seemingly have vast differences.
I did try to install it via pecl install mongodb and used composer to put in the dependencies but it still does not work. I'm using the same php file from my windows Xampp and when I access the page it throws a 500 status code.
Could someone provide a definitive walkthrough on how to install this driver and maybe also how to revert any changes I made using composer and pecl?
Cool even I tried with pecl but didn't work as expected. It work with pecl7 Also, I received this warning along with error, WARNING: "pecl/mongo" is deprecated in favor of "channel:///mongodb" pecl/mongo requires PHP (version >= 5.3.0, version <= 5.99.99), installed version is 7.1.8. Also, got 500 Internal server error.
Before that MongoDB php7 driver, I needed the memcache and getting phphize error that I solved using this repo. Then finally I use this low level PHP driver for MongoDB.
$ git clone https://github.com/mongodb/mongo-php-driver.git
$ cd mongo-php-driver
$ git submodule sync && git submodule update --init
$ /usr/bin/phpize
$ ./configure
$ make all -j 5
$ sudo make install
You can confirm from the output that mongodb.so driver is installed.
;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;
extension=mongodb.so
Then only step remaining is make it available in your respective path. You can check your extensions_dir in php.ini with the following command,
$ php -i | grep extension_dir
extension_dir => /usr/lib64/php/7.0/modules => /usr/lib64/php/7.0/modules
And, I can verify that mongodb.so is present into the above directory. Then reload the composer and you are good to go ! Hope this helps as it work for me.

HHVM 3.7.0 Postgresql PDO

I do realize that HHVM does not support Postgres, but there are extensions for hiphop which allow use of the postgres PDO.
I have successfully compiled hhvm and installed hhvm with the following commands
[root#localhost ~]# git clone https://github.com/facebook/hhvm -b master hhvm --recursive
[root#localhost ~]# cd hhvm
[root#localhost hhvm]# ./configure
[root#localhost hhvm]# make -j5
[root#localhost hhvm]# make install
That has worked fine, and i have since developed the need to connect to a postgres database.
Attempt 1
The following page suggests to add --with-pdo-pgsql=/path/to/pg_config argument when configuring.
http://docs.hhvm.com/manual/en/ref.pdo-pgsql.php
[root#localhost hhvm]# find / -name pg_config
/usr/bin/pg_config
[root#localhost hhvm]# ./configure --with-pdo-pgsql=/usr/bin/pg_config
[root#localhost hhvm]# make -j5
[root#localhost hhvm]# make install
and did not see any improvement
[root#localhost hhvm]# hhvm ~/test.php
Fatal error: Call to undefined function pg_connect() in /root/test.php on line 2
Attempt 2
The hhvm wiki extensions page (https://github.com/facebook/hhvm/wiki/Extensions) links to https://github.com/PocketRent/hhvm-pgsql
I followed the steps to make the hhvm-pgsql extension.
[root#localhost ~]# git clone https://github.com/PocketRent/hhvm-pgsql.git
[root#localhost ~]# cd hhvm-pgsql
[root#localhost hhvm-pgsql]# hphpize
[root#localhost hhvm-pgsql]# cmake .
[root#localhost hhvm-pgsql]# make
[ 25%] Building CXX object CMakeFiles/pgsql.dir/pgsql.cpp.o
In file included from /root/hhvm-pgsql/pgsql.cpp:2:0:
/root/hhvm-pgsql/pgsql.h:6:45: fatal error: hphp/runtime/base/base-includes.h: No such file or directory
#include "hphp/runtime/base/base-includes.h"
^
compilation terminated.
make[2]: *** [CMakeFiles/pgsql.dir/pgsql.cpp.o] Error 1
make[1]: *** [CMakeFiles/pgsql.dir/all] Error 2
make: *** [all] Error 2
Obviously i am missing base-includes.h. I am unsure where to get it from. Im assuming its in the hhvm-dev package the repo mentions, but where should i get the necessary files seeing as though i just compiled hhvm?
[root#localhost hhvm]# find / -name base-includes.h
finds nothing.
Extra information
[root#localhost hhvm]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
[root#localhost hhvm]# hhvm --version
HipHop VM 3.7.0-dev (rel)
Compiler: heads/master-0-g6bec157aad74985e64d3d9fe928ad5cc490f5876
Repo schema: e36ae4255d99eb78d62256c73ee53fadb05d65e0
I have also followed the steps on https://github.com/facebook/hhvm/wiki/Prebuilt-Packages-on-Centos-7.x to install it all via yum. I have found that works, but that hhvm version has some bugs which have since been fixed.
As i was writing this, i tried pulling the pgsql.so installed from yum install hhvm-ext-pgsql which resulted in the error below. (understandably).
[root#localhost ~]# hhvm test.php
Uncaught exception: Could not load extension /usr/local/lib64/hhvm/extensions/pgsql.so: getModuleBuildInfo() symbol not defined. (/usr/local/lib64/hhvm/extensions/pgsql.so: undefined symbol: getModuleBuildInfo)
Core dumped: Segmentation fault
Stack trace in /tmp/stacktrace.4181.log
Segmentation fault
Anyways, my question is...
What am i doing wrong/missing in Attempt 1?
How can i successfully complete Attempt 2?
Is it assumed knowledge?
How can i sovle this in the future without asking a question here, keeping in mind i have attempted the usual research and google and found nothing of value.
Attempt 1 is just not going to work, the docs are simply wrong, and I filed an issue about it.
Attempt 2, the PocketRent extension, is the right direction, though the extension might not have been updated recently. You should report the compilation failure on their issue tracker (or search the tracker for an existing issue, though none jumps out at me). The guys who built it are quite good, though they sometimes forget to update the extension when HHVM changes, until someone reminds them :)
I would not use the prebuilt extension here; extensions need to be built against exactly the version of HHVM they are running against. The crash you're seeing is, I suspect, due to mixing an extension built with one version of HHVM with running it on another. (This should produce a useful error, but we had a bug recently where we wouldn't detect this and would crash instead!)

Building emacs 24.1.50

I've just updated to Kubuntu 12.04. Everything works fine except for the latest custom-build emacs. It says now:
emacs: symbol lookup error: emacs: undefined symbol: gtk_window_set_has_resize_grip
So I've decided to re-build emacs. For that I've git pull the latest snapshot, and have done everything as I usually do, but now I get an error during compilation:
In file included from /home/boris/its/blds/emacs/lib-src/emacsclient.c:76:0:
../lib/getopt.h:196:8: error: redefinition of ‘struct option’
/usr/include/getopt.h:106:8: note: originally defined here
../lib/getopt.h:245:12: error: conflicting types for ‘getopt_long’
/usr/include/getopt.h:175:12: note: previous declaration of ‘getopt_long’ was here
../lib/getopt.h:249:12: error: conflicting types for ‘getopt_long_only’
/usr/include/getopt.h:179:12: note: previous declaration of ‘getopt_long_only’ was here
make[1]: *** [emacsclient] Error 1
make[1]: Leaving directory `/home/boris/its/blds/emacs/lib-src'
make: *** [lib-src] Error 2
Google search reveals almost nothing on these errors.
Edit:
The following solves it (thanks to JSON):
git pull
./autogen.sh
./configure --prefix=/home/boris/its/soft/Emacs_24.1.50
make bootstrap
make install
The simplest way is to use PPA: emacs-snapshot.
sudo add-apt-repository ppa:cassou/emacs
sudo apt-get update
sudo apt-get install emacs-snapshot
I had these problems updating to Ubuntu 12.04, and got past it by going back to the instructions from INSTALL.BZR for first time checkout - it seems the configure file needs to be regenerated due to changes in libc in the new version of Ubuntu.
This is what I do to build emacs after a git pull (my script to do it nightly)
make distclean && autoreconf -i -I m4 && ./configure && make && sudo make install
i had the same problem than the op, and i just removed emacs from the system, and compiled from scratch.
and no, i didn't have to add a ppa, and every time i see an answer like that getting all the votes, it makes me wonder about stackexchange in general , it just misinforms and misleads others who may have the same problem.
and no, i said it once and i'll say it again, Just download the latest emacs from fsf.
let me add that getopt.h is part of libc6-dev (as json said). and libc6-dev is part of the required group like libjpeg libncurses libpng libtiff xlibs etc. remove it once and reinstall. the problem is with the configuration options path which need to be specified this time around in the prefix of emacs24 at the time of configuration. but neither autogen nor bootstrap are necessary, but just make and make install.
make maintainer-clean
./autogen.sh
./configure
make
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10108#8
I had the same issue as you but for the 24.5 tag. The problem was I didn't rerun autogen.sh to create a new configure script. I assumed that any untracked file would be listed by git status, though all the configuration output from autogen.sh is ignored in .gitignore.