2017-10-03 2 views
0

J'essaye de mettre à niveau postgres localement, donc je ne reçois pas d'erreur d'incompatibilité de version. C'est ce que je fais:Mise à niveau vers postgres96 sur Alpine (/ usr/bin/pg_dump: aucun fichier ou répertoire de ce type)

echo "http://dl-5.alpinelinux.org/alpine/v3.5/main" >> /etc/apk/repositories; 
apk update 

bash-4.3# apk add postgresql-dev 
(1/4) Installing libressl2.4-libtls (2.4.4-r0) 
(2/4) Installing libressl-dev (2.4.4-r0) 
(3/4) Installing postgresql-libs (9.6.5-r0) 
(4/4) Installing postgresql-dev (9.6.5-r0) 
Executing busybox-1.24.2-r13.trigger 
OK: 353 MiB in 108 packages 
bash-4.3# pg_dump 
bash: /usr/bin/pg_dump: No such file or directory 

Je ne sais pas - quel est le problème?

+0

Cette erreur bash montre qu'il recherche un chemin particulier vers 'pg_dump', plutôt que de chercher dans $ PATH. Avez-vous un alias ou une fonction 'pg_dump' défini? Essayez ''pg_dump' 'avec des guillemets. – IMSoP

+0

Salut. Non, il n'y a pas d'alias ou de fonction définie. 'pg_dump' entraîne le même message d'erreur. – rix

Répondre

1

Juste une supposition mais je suppose que vous n'avez pas installé postgresql. Pour utiliser pg_dump vous devez avoir installé cela, ou si vous avez déjà et je me trompe essayez de le réinstaller comme ceci:

bash-4.3# apk del postgresql 
(1/4) Purging postgresql (9.6.5-r0) 
(2/4) Purging postgresql-client (9.6.5-r0) 
(3/4) Purging libedit (20170329.3.1-r2) 
(4/4) Purging libxml2 (2.9.4-r4) 
Executing busybox-1.26.2-r5.trigger 
OK: 37 MiB in 25 packages 
bash-4.3# apk add postgresql 
(1/4) Installing libedit (20170329.3.1-r2) 
(2/4) Installing postgresql-client (9.6.5-r0) 
(3/4) Installing libxml2 (2.9.4-r4) 
(4/4) Installing postgresql (9.6.5-r0) 
Executing busybox-1.26.2-r5.trigger 
OK: 53 MiB in 29 packages 
bash-4.3# pg_dump 
pg_dump: [archiver (db)] connection to database "root" failed: could not connect to server: No such file or directory 
    Is the server running locally and accepting 
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"? 
bash-4.3# 

Comme vous pouvez le voir ci-dessus pg_dump travaille parce qu'il est en le paquetage postgresql même si comme indiqué sur le site des paquets alpins, il devrait être dans le paquet postgresql-client comme indiqué here mais cela ne fonctionne pas si postgres n'est pas installé. Si vous ne pouvez pas avoir une installation complète de Postgres, je recommande cette solution de contournement qui est un peu sale, installez postgres, sauvegardez les binaires pg_dump, désinstaller postgres Restaurez ensuite pg_dump comme ceci:

bash-4.3# apk add postgresql 
(1/2) Installing libxml2 (2.9.4-r4) 
(2/2) Installing postgresql (9.6.5-r0) 
Executing busybox-1.26.2-r5.trigger 
OK: 53 MiB in 29 packages 
bash-4.3# cp /usr/bin/pg_dump /usr/bin/pg_dump 
pg_dump  pg_dumpall 
bash-4.3# cp /usr/bin/pg_dump /usr/bin/pg_dump.back 
bash-4.3# cp /usr/bin/pg_dumpall /usr/bin/pg_dumpall.back 
bash-4.3# apk del postgresql 
(1/2) Purging postgresql (9.6.5-r0) 
(2/2) Purging libxml2 (2.9.4-r4) 
Executing busybox-1.26.2-r5.trigger 
OK: 38 MiB in 27 packages 
bash-4.3# mv /usr/bin/pg_dump.back /usr/bin/pg_dump 
bash-4.3# mv /usr/bin/pg_dumpall.back /usr/bin/pg_dumpall 
bash-4.3# pg_dump 
pg_dump: [archiver (db)] connection to database "root" failed: could not connect to server: No such file or directory 
    Is the server running locally and accepting 
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"? 
bash-4.3# 

Il n'est pas idéal, mais il Cela a fonctionné pour moi dans le passé

+0

J'ai fait installer le paquetage postgresql (l'un de ceux-ci a réessayé et cela a fonctionné), des points pour le travail autour de pg_dump. Merci – rix