Timescale not finding pg_config on AMI - postgresql

I created a machine in AWS Cloud9 and I want to install timescale on that instance. I have previously installed and setup postgres 9.6 using yum.
OS version is:
Amazon Linux AMI release 2018.03
.
When I run 'which pg_config', it is found here:
/usr/bin/pg_config
Looking at the install instructions on the timescale website, I came up with this:
sudo yum install -y
https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-6-x86_64/pgdg-ami201503-96-9.6-2.noarch.rpm
wget
https://timescalereleases.blob.core.windows.net/rpm/timescaledb-0.9.2-postgresql-9.6-0.x86_64.rpm
sudo yum install timescaledb-0.9.2-postgresql-9.6-0.x86_64.rpm
after the last command I get the following error:
Running transaction Installing :
timescaledb-0.9.2-0.el7.centos.x86_64
1/1 ERROR: Could not find pg_config, expected it at
/usr/pgsql-9.6/bin/pg_config. Please fix and try again.
warning: %post(timescaledb-0.9.2-0.el7.centos.x86_64) scriptlet
failed, exit status 1 Non-fatal POSTIN scriptlet failure in rpm
package timescaledb-0.9.2-0.el7.centos.x86_64

Do you have any more details on how you installed PostgreSQL on CentOS? I suspect this may have something to do with a mismatch between your pg_config installation and your PostgreSQL 9.6 installation, similar to the user in this issue.
I'd recommend uninstalling your current postgresql-devel and explicitly installing it for 9.6:
yum install postgresql96-devel

It seems the AMI is setup a bit differently than a normal CentOS install so PostgreSQL is installed in a different place than our installer expected. I've gone ahead and updated the RPMs to use a more robust method of finding the correct place to put the files. If you could re-download the latest RPM and confirm that it works that'd be great.

I've met exactly the same problem.
I solve this by manually linking them together.
sudo ln -s /usr/lib64/pgsql96/bin/pg_config /usr/pgsql-9.6/bin/pg_config

Related

Is there a problem with having 2 versions of postgres for Apache-Age

I installed the Apache-Age extension for postgres and this extension specifies that it works with postgres-11 or postgres-12. However I have already installed postgres-14 on my system. Am i gonna have a problem with that? And if I am how do i only uninstall the postgres-14 version?
I tried searching the deb packages installed to see if i find postgres-14 but i can't seem to find it
So mainly the apache-age extension works with PostgreSQL versions 11 and 12. It creates problems with different other versions of PostgreSQL.
In order to have a smooth installation follow the below steps:
uninstall PostgreSQL version 14
reinstall PostgreSQL version 11 or 12
Uninstalling PostgreSQL version 14:
For uninstalling the PostgreSQL from ubuntu:
sudo apt remove postgresql postgresql-contrib
The output would look something like this:
After uninstalling PostgreSQL, uninstall the dependencies
sudo apt autoremove
The output of the above command would look like this:
enter Y here and the PostgreSQL will be uninstalled.
Now reinstall the PostgreSQL version 11 or 12 using the below commands:
Download the files in any folder:
wget https://ftp.postgresql.org/pub/source/v11.18/postgresql-11.18.tar.gz && tar -xvf postgresql-11.18.tar.gz && rm -f postgresql-11.18.tar.gz
The command will download and extract the tar files for Linux users from Source in the working directory.
Installing PG:
Now we will move toward installing PG
cd postgresql-11.18
# configure by setting flags
./configure --enable-debug --enable-cassert --prefix=$(path) CFLAGS="-ggdb -Og
# now install
make install
References:
For more references you can also see:
https://dev.to/talhahahae/installation-of-apache-age-and-postgresql-from-source-in-linux-part-1-gka
https://www.commandprompt.com/education/how-to-uninstall-postgresql-from-ubuntu/#:~:text=Conclusion-,To%20uninstall%20Postgres%20from%20your%20Ubuntu%20operating%20system%2C%20open%20the,“sudo%20apt%20autoremove”%20command.
https://github.com/git-guides/install-git
https://age.apache.org/age-manual/master/intro/setup.html
https://www.postgresql.org/docs/current/install-procedure.html
Apache AGE only supports Postgres-11 and Postgres-12. You can follow the following to install Apache AGE with Postgres:
How to install AGE extension of postgresql from source code in ubuntu?
While Apache Age is designed to work with PostgreSQL 11 and 12, you can have multiple versions of PostgreSQL installed in your computer. However, the installations need to be in "different directories". Each version of PostgreSQL will have its own set of binaries and configuration files.
When you install multiple versions of PostgreSQL, it is important to ensure that each version is installed in a separate directory and that the ports used by each instance do not conflict with each other. Additionally, you may need to specify the correct version of PostgreSQL when running commands, by using the appropriate version-specific binary or setting the PATH environment variable to include the correct directory.

How does one change Postgres' service name when installing on Centos

I am installing Postgres on CentOS 7 boxes, and that part itself is fine. The issue that someone brought up is that they would like for my install script to try and not depend on the service name being postgresql-10, and instead just use postgres or postgresql. Either one would be fine. Well I noticed that there is a flag --servicename that can be used, but I am unsure where to use it in the process. I have tried a few times but it doesn't seem to work.
Note that this is how I am installing postgres
yum -y install $LINK
yum -y install postgresql10
yum -y install postgresql10-server
/usr/pgsql-10/bin/postgresql-10-setup initdb
systemctl enable postgresql-10
systemctl start postgresql-10
the $LINK up there is just the path to pull from the Postgres website. Again, the ideal situation would be for me to specify the service name such that I can standardize that and limit script changes when Postgres versions change.
Note that I found out about the --servicename flag in this, link but I am not completely sure how to apply that to the installation above. It does appear that the link is more for installing on windows, but I would assume we could do the same thing in a Linux installation. Any suggestions here would be welcome.
The link that you found is about EnterpriseDB's installer for Windows, and the service mentioned is a Windows service. That won't help you on CentOS.
The name of the systemd service file is hard-wired into the RPM, but there is nothing that prevents you from creating your own service file in /etc/systemd/system and using that one instead. Then you can choose whatever name you prefer. You can just copy the service file from the RPM as a starting point.
Renaming the file or creating one in /usr/systemd/system is not a good idea, because that will mess with RPMs.
postgresql-10 is a good name for the service, however. If you choose postgres or something else that doesn't contain the version, what will you do once you want to install v11?
To answer your question: There is no way to configure the name of the service when installing it via RPM.

Postgres 9.3.10 - /usr/share/postgresql/9.3/extension/postgis.control

I have searched all over around on google but still didnt find the solution so posting here. Every help will be appreciated.
In my project, I am using
"./scripts/create"
to create Database. as am using PostgreSQL. While creating it i got an error
could not open extension control file
"/usr/share/postgresql/9.3/extension/postgis.control": No such file or
directory
I tried to install this extension through anyway. but all in vain. it needs a dependency which is libgdal1, I am totally unable to find it for Ubuntu 14.04.
PS : Have tried every answer over stackoverflow.
The packages libgdal1h and postgresql-9.3-postgis-scripts have been installed.
When I ran sudo apt-get install postgresql-9.3-postgis-2.1, I got an error
postgresql-9.3-postgis-2.1 : Depends: libgdal1 (>= 1.9.0) but it is not going to be installed ,
PostgreSQL packages are broken in ubuntu 14.04, so you have to purge every postgresql package from your system:
sudo apt-get purge 'postgresql-.*'
Important: this will remove not only package but all databases and configs from your machine.
After that follow official install guide from postgresql wiki: http://wiki.postgresql.org/wiki/Apt

Location of sphinx-build on CentOS

I have a brand new CentOS 6 box and wanted to install sphinx, in order to compile documents as generated by readthedocs.org i.e. rst files.
In a previous ubuntu box I was running
make html
and that would invoke the
sphinx-build
command and compile the documentation.
I downloaded the latest version of sphinx and installed it as such:
sudo wget http://sphinxsearch.com/files/sphinx-2.1.9-1.rhel6.x86_64.rpm
sudo localinstall sphinx-2.1.9-1.rhel6.x86_64.rpm
Everything seems to be fine but sphinx-build is nowhere to be found.
Any pointers are more than appreciated.
You are mixing up two different tools named Sphinx: the full text search server (http://sphinxsearch.com/) and the documentaton generator (http://sphinx-doc.org/). You need the latter tool in order to compile documents usingsphinx-build.
You can also install rpm package of sphinx (Python documentation generator) with yum at CentOS 6 using:
yum install python-sphinx.noarch
at Fedora 20 using:
yum install python-sphinx-doc.noarch
A short addup, according to offical document, one just need to run
pip install Sphinx to install the python documentation generator, sphinx. Or it can be downloaded from distribution package.

How to run PHP 5.5.4 mcrypt run on CentOS 6.4?

I am getting the following error:
PHP Warning: PHP Startup: Unable to load dynamic library
'/usr/lib/php/extensions/no-debug-non-zts-20121212/mcrypt.so' -
/lib64/libc.so.6: version `GLIBC_2.14' not found (required by
/usr/lib/php/extensions/no-debug-non-zts-20121212/mcrypt.so)
Does mcrypt require glibc 2.14?
We are running CentOS 6.4 (latest stable version of CentOS) and it comes with glibc 2.12 (can't really upgrade glibc as being a core part of OS, changing it will likely break lots of stuff)
How do I make my PHP 5.5.4 run mcsypt under these circumstances?
Current configuration (phpinfo output) is here.
I was also having issues installing mcrypt on my VPS dev server so I thought I would post my solution in the hopes that it helps someone. I am running Centos OS 6.5 and had upgraded PHP to 5.5.13 using the Webtatic EL yum repository. https://webtatic.com/packages/php55/
First shh into your server
ssh admin#domain.com
initially I was trying to do (which was not working):
yum update
yum install php-mcrypt
I then realized my mistake when I looked at php -v and realized php-common was conflicting as the above code was trying to load a dependency from 5.3.
I then executed the following correct commands:
rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
yum update
yum install php55w-mcrypt
service httpd restart
This worked perfectly for me.
I also read while researching this issue that some people did have to add the extension to their .ini file manually by adding the following line but i did not have to do this.
extension=mcrypt.so
you can find the location of your php.ini file by looking at phpinfo(); and see which configuration it is loading. For me the following ini files were loading:
/etc/php.ini
/etc/php.d/mcrypt.ini
/var/www/vhosts/system/domain.com/etc/php.ini
If the installation is successful then you will see the extension when you echo phpinfo();
Try installing php-mcrypt using yum. That should pull in any other libraries you need to run it.
yum install php-mcrypt
In light of your update, it would appear that you are trying to use the MCrypt extension built from another PHP Source which was created by an updated GLIBC library. The only proper solution I can see is the following:
You first need to ensure you have libmcrypt, libmcrypt-devel, and mcrypt installed before continuing. Check your CentOS repository.
Download the PHP Source from http://php.net
Untar the downloaded source tar -zxf php-5.5.4.tar.gz
cd into the source cd php-5.4.4
Copy your current ./configure string. The whole thing!
Add support for Mcrypt --with-mcrypt=/usr and run the new configure command
make && make install
restart Apache and PHP-FPM
This will keep your current configuration just as CentOS has built it but with the additional support of MCrypt as you are looking to have. Once you've done this, you do not need to enable the MCrypt extension in your php.ini file as it will be built into PHP itself and will be automatically loaded for you now.
When in doubt, you can also read up on the installation here http://us1.php.net/manual/en/mcrypt.installation.php