Eu tenho uma instância do Amazon EC2 baseada no Amazon Linux AMI 2014.03. Eu instalei o PostresSQL de seus repositórios:
yum install postgresql-libs postgresql postgresql-server postgresql-devel
Eu li sobre a atualização inesperada da Amazon de 9.1 para 9.2, então adicionei esta linha ao final de /etc/yum.conf
, espero poder controlar qualquer atualização:
exclude=postgresql*
Até agora tudo bem. Agora estou configurando o arquivamento contínuo e desejo executar arquivos pg_archivecleanup
. No entanto, não consigo encontrar o postgresql-contrib
pacote na distribuição da Amazon e não está listado nos pacotes:
http://aws.amazon.com/amazon-linux-ami/2014.03-packages/
Existe algum outro lugar para obter isso pré-compilado? Eu tentei o seguinte para compilar sozinho:
sudo su -
cd /usr/local/src
wget http://ftp.postgresql.org/pub/source/v9.2.7/postgresql-9.2.7.tar.gz
tar -xzf postgresql-9.2.7.tar.gz
cd /usr/local/src/postgresql-9.2.7
./configure --without-readline # fails until you add --without-readline
cd /usr/local/src/postgresql-9.2.7/contrib/pg_archivecleanup
gmake
gmake install
mas o gmake
falha:
gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard pg_archivecleanup.o -L../../src/port -Wl,--as-needed -Wl,-rpath,'/usr/local/pgsql/lib',--enable-new-dtags -lpgport -lz -lcrypt -ldl -lm -o pg_archivecleanup
/usr/bin/ld: cannot find -lpgport
collect2: error: ld returned 1 exit status
gmake: *** [pg_archivecleanup] Error 1
Tentar descobrir o -lpgport
problema me levou a alguns relatórios de bug muito obscuros aqui e aqui . Rastrear bugs no próprio Linux parece um pouco extremo apenas para compilar um arquivo.
Qual é minha melhor opção?
- Encontre outra fonte para o pacote contrib - onde?
- Encontre uma maneira de compilar este módulo - como?
- Abandone o Amazon Linux e comece do zero com uma AMI do Ubuntu.
- Esqueça
pg_archivecleanup
e escreva um script para excluir arquivos WAL antigos.
EDITAR
Estou usando o Elastic Beanstalk com uma integração bem forte com o Amazon AMI. Tenho certeza de que poderia funcionar com outra AMI, mas espero que haja outras pegadinhas. E essa opção, adaptada deste post :
# Change to home directory to download the software
cd ~/
# Get the right postgresql package (Redhat 64 Bit)
wget http://yum.postgresql.org/9.2/redhat/rhel-6-x86_64/pgdg-redhat92-9.2-7.noarch.rpm
# Install the package
sudo rpm -ivh pgdg-redhat92-9.2-7.noarch.rpm
sudo yum install postgresql92-contrib
Isso me dá o melhor dos dois mundos, um Amazon AMI com um repositório oficial do Postgres? Se necessário, eu poderia reinstalar completamente o Postgres desse repositório RHEL.