

Cette section documente des problèmes spécifiques additionnels liés à des plateformes, en ce qui concerne l'installation et le paramétrage de PostgreSQL. Assurez-vous de lire aussi les instructions d'installation, et en particulier Section 17.1. Par ailleurs, consultez Chapitre 31 à propos de l'interprétation des tests de régression.
Les plateformes qui ne sont pas traitées ici n'ont pas de problèmes d'installation spécifiques connus.
PostgreSQL peut être compilé avec Cygwin, un environnement similaire à Linux pour Windows, mais cette méthode est inférieure à la version native Windows et exécuter un serveur sur Cygwin n'est plus recommandé.
  Quand vous compilez à partir des sources, suivant la procédure
  d'installation de style Unix (c'est-à-dire
  ./configure; make;, etc.),
  notez les différences suivantes spécifiques à Cygwin :
  
Positionnez le PATH pour utiliser le répertoire binaire Cygwin avant celui des utilitaires Windows. Cela évitera des problèmes à la compilation.
     La  commande adduser n'est pas supportée ; utilisez
     les outils appropriés de gestion d'utilisateurs sous Windows.
     Sinon, sautez cette étape.
    
     La commande su n'est pas supportée ; utilisez ssh
     pour simuler la commande su sous Windows. Sinon, sautez
     cette étape.
    
OpenSSL n'est pas supporté.
     Démarrez cygserver  pour le support de la mémoire
     partagée.
     Pour cela, entrez la commande /usr/sbin/cygserver
      &. Ce programme doit fonctionner à chaque fois que
     vous démarrez le serveur PostgreSQL ou que vous initialisez un cluster
     de bases de données (initdb). La configuration par
     défaut de cygserver pourrait nécessiter des changements
     (par exemple, augmenter SEMMNS) pour éviter à PostgreSQL
     d'échouer en raison d'un manque de ressources système.
    
     Il se peut que la compilation échoue sur certains systèmes quand
     une locale autre que C est utilisée. Pour résoudre ce problème,
     positionnez la locale à C avec la commande
     export LANG=C.utf8 avant de lancer la compilation,
     puis, une fois PostgreSQL installé, repositionnez-là à son ancienne valeur.
    
     Les tests de régression en parallèle (make check)
     peuvent générer des échecs de tests de régression aléatoires en raison
     d'un dépassement de capacité de la file d'attente de listen()
     qui cause des erreurs de connexion refusée ou des blocages. Vous pouvez
     limiter le nombre de connexions en utilisant la variable de make
     MAX_CONNECTIONS comme ceci :
     
make MAX_CONNECTIONS=5 check
     (Sur certains systèmes, vous pouvez avoir jusqu'à 10 connexions simultanées).
  Il est possible d'installer cygserver et le serveur
  PostgreSQL en tant que services Windows NT. Pour plus d'informations sur
  comment le faire, veuillez vous référer au document README
  inclus avec le paquets binaire PostgreSQL sur Cygwin.
  Il est installé dans le répertoire /usr/share/doc/Cygwin.
 
  Sur les versions récentes de macOS, il est
  nécessaire d'embarquer le chemin « sysroot » dans les options
  d'inclusion utilisées pour trouver les fichiers d'en-tête système. Ceci a
  pour résultat la génération d'un script
  configure variant suivant la version du SDK
  utilisée durant configure. Ceci ne devrait pas
  poser de problèmes dans les scénarios simples, mais si vous essayez de
  faire quelque chose comme compiler une extension sur une machine
  différente de celle sur laquelle le code serveur a été compilé, vous
  pouvez avoir besoin de forcer l'utilisation d'un chemin sysroot
  différent. Pour cela, configurez PG_SYSROOT ainsi
  
make PG_SYSROOT=/desired/path all
  Pour trouver le chemin approprié sur votre machine, lancez
xcrun --show-sdk-path
Notez que compiler une extension en utilisant une version sysroot différente de celle utilisée pour compiler le serveur n'est pas vraiment recommandée ; dans le pire des cas, cela peut entraîner des incohérences d'ABI difficiles à débugger.
  Vous pouvez aussi sélectionner un chemin sysroot différent de celui par
  défaut lors du configure
  en indiquant PG_SYSROOT à
  configure :
  
./configure ... PG_SYSROOT=/desired/path
  Ceci sera principalement utile pour faire de la cross-compilation pour d'autres versions de macOS. Il n'y a pas de garantie que les exécutables qui vont en résulter fonctionneront sur l'hôte actuel.
    Pour supprimer les options -isysroot, utilisez
./configure ... PG_SYSROOT=none
(tout nom de chemin non existant fonctionnera). Ceci pourrait être utile si vous souhaitez compiler avec un compilateur autre que celui d'Apple, mais attention au fait que ce cas n'est ni testé ni supporté par les développeurs PostgreSQL.
  La fonctionnalité « System Integrity Protection » (SIP) de
  macOS casse make check,
  car elle empêche de transmettre la configuration nécessaire de
  DYLD_LIBRARY_PATH vers les exécutables en cours de
  tests. Vous pouvez contourner cela en exécutant make
   install avant make check. Ceci étant dit, la
  plupart des développeurs Postgres désactivent simplement SIP.
 
PostgreSQL pour Windows peut être compilé en utilisant MinGW, un environnement de compilation similaire à celui disponible sous Unix pour les systèmes d'exploitation Microsoft. La variante de compilation MinGW utilise le système de compilation normal décrit dans ce chapitre.
  MinGW, le système
  de compilation similaire à Unix, et MSYS, une suite d'outils Unix nécessaires
  pour exécuter des scripts shell tels que configure, peuvent
  être téléchargés à partir de http://www.mingw.org/. Aucun
  de ces outils n'est nécessaire pour exécuter les binaires générés ;
  ils ne sont nécessaires que pour créer les binaires.
 
  Pour compiler les binaires 64 bits avec MinGW, installez l'ensemble d'outils 64 bits à
  partir de https://mingw-w64.org/, ajoutez le répertoire des binaires de MinGW dans
  la variable d'environnement PATH, et lancez la commande
  configure avec l'option
  --host=x86_64-w64-mingw32.
 
  Après que vous avez tout installé, il vous est conseillé de lancer
  psql dans CMD.EXE, car
  la console MSYS a des problèmes de tampons.
 
   Si PostgreSQL sous Windows plante, il peut générer des
   minidumps qui peuvent être utilisés pour dépister la cause du plantage ;
   ils sont semblables aux core dumps d'Unix.
   Vous pouvez lire ces dumps avec
   Windows Debugger Tools ou avec
   Visual Studio. Pour permettre la génération des dumps sous Windows, créez un
   sous-répertoire nommé crashdumps
   dans le répertoire des données du cluster. Ainsi les dumps seront écrits dans ce répertoire
   avec un nom unique généré à partir de l'identifiant du processus planté et du moment du plantage.
  
PostgreSQL est bien supporté sous Solaris. Plus le système d'exploitation est à jour, moins vous aurez de problèmes.
   Vous pouvez compiler soit avec GCC, soit avec le compilateur de Sun.
   Pour une meilleure optimisation du code, le compilateur de Sun est
   fortement recommandé sur l'architecture SPARC. Si vous utilisez le compilateur de Sun,
   attention à ne pas sélectionner /usr/ucb/cc ;
   utilisez /opt/SUNWspro/bin/cc.
  
Vous pouvez télécharger Sun Studio sur https://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/. De nombreux outils GNU sont intégrés dans Solaris 10, ou sont présents sur le Solaris companion CD. Si vous avez besoin des paquets pour des versions plus anciennes de Solaris, vous pouvez trouver ces outils sur http://www.sunfreeware.com. Si vous préférez les sources, allez sur https://www.gnu.org/order/ftp.html.
   Si configure se plaint d'un programme de test en échec,
   il s'agit probablement de l'éditeur de lien à l'exécution qui ne trouve
   pas une bibliothèque, probablement libz, libreadline ou une autre bibliothèque
   non standard telle que libssl. Pour lui indiquer le bon endroit, positionnez
   la variable d'environnement LDFLAGS sur la ligne de commande
   de configure, par exemple,
   
configure ... LDFLAGS="-R /usr/sfw/lib:/opt/sfw/lib:/usr/local/lib"
Voir la man page de ld pour plus d'informations.
   Sur l'architecture SPARC, Sun Studio est fortement recommandé pour
   la compilation. Essayez d'utiliser l'option d'optimisation
   -xO5 pour générer des binaires sensiblement
   plus rapides. N'utilisez pas d'options modifiant le comportement
   des opérations à virgule flottante ni le traitement de
   errno (par exemple, -fast).
  
Si vous n'avez pas de raison d'utiliser des binaires 64 bits sur SPARC, préférez la version 32 bits. Les opérations et les binaires 64 bits sont plus lents que les variantes 32 bits. D'un autre côté, le code 32 bits sur un processeur de la famille AMD64 n'est pas natif, donc le code 32 bits est significativement plus lent sur cette famille de processeurs.
Oui, l'utilisation de DTrace est possible. Voir Section 27.5 pour davantage d'informations.
   Si vous voyez l'édition de liens de l'exécutable postgres
   échouer avec un message d'erreur similaire à :
   
Undefined first referenced symbol in file AbortTransaction utils/probes.o CommitTransaction utils/probes.o ld: fatal: Symbol referencing errors. No output written to postgres collect2: ld returned 1 exit status make: *** [postgres] Error 1
l'installation DTrace est trop ancienne pour gérer les sondes dans les fonctions statiques. Solaris 10u4 ou plus récent est nécessaire pour utiliser DTrace.
Il est recommandé que les utilisateurs téléchargent la version binaire pour Windows, disponible sous la forme d'un installeur graphique à partir du site PostgreSQL sur https://www.postgresql.org/download/. Construire à partir des sources est principalement utilisé par les personnes développant le moteur PostgreSQL ou des extensions.
PostgreSQL pour Windows avec Visual Studio peut être construit avec meson, comme décrit dans Section 17.4. Le port natif nécessite une version 32 ou 64 bits de Windows 10 (ou une version ultérieure).
Les constructions natives de psql n'acceptent pas l'édition de la ligne de commande. La construction Cygwin accepte l'édition en ligne de commande, donc elle doit être utilisée quand psql est nécessaire pour une utilisation interactive sur Windows.
PostgreSQL peut être construit avec la suite de compilateur Visual C++ de Microsoft. Ces compilateurs peuvent venir de These compilers can be either from Visual Studio, Visual Studio Express ou certaines versions du Microsoft Windows SDK. Si vous n'avez pas déjà un environnement Visual Studio de configuré, le plus simple revient à utiliser les compilateurs de Visual Studio 2022 ou ceux du Windows SDK 10, qui sont tous les deux disponibles sous la forme de téléchargement gratuit sur le site de Microsoft.
Des constructions 32 bits et 64 bits sont possibles avec la suite Microsoft Compiler. Les constructions 32 bits de PostgreSQL sont possibles de Visual Studio 2015 à Visual Studio 2022, ainsi qu'avec la version autonome du Windows SDK, versions 10 et supérieures. Les constructions 64 bits sont possibles avec Microsoft Windows SDK version 10 et ultérieur ou Visual Studio 2015 et ultérieur.
Si votre environnement de construction ne vient pas avec une version supportée du Microsoft Windows SDK, il est recommendé de metre à jour vers la dernière version (actuellement la 10), disponible en téléchargement à partir de https://www.microsoft.com/download.
Vous devez toujours inclure la partie Windows Headers and Libraries du SDK. Si vous installez un Windows SDK incluant Visual C++ Compilers, vous n'avez pas besoin de Visual Studio pour le construire. Notez qu'à partir de la version 8.0a, le Windows SDK n'apporte plus un environnement complet en ligne de commande.
Les produits supplémentaires suivants sont requis pour construire PostgreSQL sur Windows.
Strawberry Perl est requis pour exécuter les scripts de génération de la construction. MinGW ou Cygwin Perl ne fonctionneront pas. Il doit être en plus présent dans le PATH. Les binaires sont téléchargeables à partir de https://strawberryperl.com.
Bison et Flex sont requis. Seules les versions 2.3 et ultérieures de Bison fonctionneront. Flex doit être en version 2.5.35 ou ultérieur.
Bison et Flex sont inclus dans la suite d'outils msys, disponible à partir de http://www.mingw.org/wiki/MSYS dans la suite de compilation MinGW.
        Vous aurez besoin d'ajouter le répertoire contenant
        flex.exe et bison.exe à la
        variable d'environnement. Dans le cas de MinGW, ce répertoire correspond
        au sous-répertoire \msys\1.0\bin de votre répertoire
        d'installation MinGW.
       
          La distribution Bison de GnuWin32 semble avoir un bug qui ne permet
          pas à Bison de fonctionner correctement quand il est installé dans
          un répertoire dont le nom contient des espaces, par exemple avec
          l'emplacement par défaut sur les installations en anglais
          C:\Program Files\GnuWin32. Pensez à l'installer
          dans C:\GnuWin32 ou utilisez le chemin court
          NTFS dans la configuration de votre variable d'environnement PATH
          (c'est-à-dire C:\PROGRA~1\GnuWin32).
         
Les produits supplémentaires suivants ne sont pas requis pour commencer mais ils sont requis pour construire le paquet complet.
Requis pour construire PL/Tcl. Les binaires peuvent être téléchargés à partir du site officiel.
Diff est requis pour exécuter les tests de régression et peut être téléchargé à partir de http://gnuwin32.sourceforge.net.
Gettext est requis pour construire avec le support de NLS, et peut être téléchargé à partir de http://gnuwin32.sourceforge.net. Notez que les binaires, dépendances et fichiers développeur sont tous nécessaires.
Requis pour le support de l'authentification GSSAPI. MIT Kerberos peut être téléchargé à partir de https://web.mit.edu/Kerberos/dist/index.html.
Requis pour le support de XML. Les binaires peuvent être téléchargées à partir de https://zlatkovic.com/pub/libxml et les sources à partir de http://xmlsoft.org. Notez que libxml2 requiert iconv, qui est disponible à partir du même emplacement de téléchargement.
Requis pour accepter la compression LZ4. Les binaires et les sources peuvent être téléchargés à partir de https://github.com/lz4/lz4/releases.
Requis pour accepter la compression Zstandard. Les binaires et les sources peuvent être téléchargés à partir de https://github.com/facebook/zstd/releases.
Requis pour le support de SSL. Les binaires et peuvent être téléchargés à partir de https://slproweb.com/products/Win32OpenSSL.html alors que les sources sont disponibles sur https://www.openssl.org.
Requis pour le support de UUID-OSSP (uniquement pour le module contrib). Les sources peuvent être téléchargés à partir de http://www.ossp.org/pkg/lib/uuid/.
Requis pour construire PL/Python. Les binaires peuvent être téléchargés à partir de https://www.python.org.
Requis pour le support de la compression dans pg_dump et pg_restore. Les binaires peuvent être téléchargés à partir de https://www.zlib.net.
PostgreSQL pourra seulement être construit pour l'architecture x64 sur un Windows 64 bits.
Mixer les versions 32 et 64 bits dans le même arbre de construction n'est pas supporté. Le système de construction détectera automatiquement s'il fonctionne sur un environnement 32 ou 64 bits, et construira PostgreSQL suivant cela. Pour cette raison, il est important de lancer la bonne invite de commande avant de lancer la construction.
Pour utiliser une bibliothèque tierce côté serveur, comme Python ou OpenSSL, cette bibliothèque doit aussi être en 64 bits. Il n'est pas possible de charger une bibliothèque 32 bits sur un serveur 64 bits. Certaines bibliothèquestierces pourraient être uniquement disponibles en version 32 bits, auquel cas elles ne pourront pas être utilisées avec un PostgreSQL 64 bits.
     Si PostgreSQL sur Windows s'arrête brutalement, il peut générer des
     minidumps qui peuvent être utilisés pour
     trouver la cause du crash, tout comme les core
     dumps sous Unix. Ces dumps
     peuvent être lus en utilisant Windows Debugger
     Tools ou Visual Studio. Pour
     activer la génération de dumps sous
     Windows, créez un sous-répertoire nommé crashdumps
     dans le répertoire de données principal de l'instance. Les
     dumps seront alors écrits dans ce
     répertoire avec un nom unique basé sur l'identifiant du processus qui
     s'est arrếté brutalement et l'heure de l'arrêt.