Il s'agit de la commande pg_buildext qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
pg_buildext - Construire et installer une extension PostgreSQL
SYNOPSIS
pg_buildext [Options] action [Options]
DESCRIPTION
pg_buildext est un script qui va construire une extension PostgreSQL de manière VPATH, par exemple
potentiellement plusieurs versions de serveur PostgreSQL en parallèle. Il construit pour le
intersection de versions connues dans debian/pgversions (versions supportées par le paquet)
et dans /usr/share/postgresql-common/supported-versions (versions prises en charge dans ce
Libération).
UTILISATION
Forfaits utilisant pg_buildext devrait être prêt à construire des binaires pour les versions de PostgreSQL
qui ne sont pas présents dans Debian unstable, par exemple pour les anciennes versions lors de la création de rétroportages
pour Debian (old)stable (incluant éventuellement les rétroportages des nouvelles versions de PostgreSQL), ou pour
toutes les versions de PostgreSQL lorsque le package est construit pour apt.postgresql.org.
Comme l'ensemble des paquets binaires dépend des versions de PostgreSQL cibles, debian/control est
généré à partir d'un modèle dans debian/control.in lorsque pg_buildext contrôle de mise à jour est exécuté.
Occurrences de VERSION PG dans les sections du package sont remplacés par la cible PostgreSQL
version. Incluez /usr/share/postgresql-common/pgxs_debian_control.mk dans debian/rules pour
exécuter une vérification au moment de la construction si la mise à jour de debian/control est requise.
As pg_buildext invoque a prendre une pour construire, installer et espace extérieur plus propre, actions, invocations de
debian/rules (qui est un makefile) doit être préfixé par + pour que les sous-marques puissent parler
avec le make jobserver.
Prise en charge de nombreuses extensions a prendre une vérification de l'installation tester à l'aide pg_regress. Comme cela a besoin du
package à installer, il ne peut pas être exécuté au moment de la construction. Au lieu de cela, les tests doivent être exécutés
en utilisant test automatique de debian/tests/*.
Si debian/tests/control.in existe, les occurrences de noms de paquets contenant VERSION PG are
remplacés par des listes de noms de packages avec les versions PostgreSQL cibles renseignées. (Si non
le remplacement est nécessaire dans debian/tests/control, il est bon de fournir le fichier de contrôle des tests
directement.)
OPTIONS
-cio arg
-s Transmis à pg_virtualenv en courant vérification de l'installation.
ACTIONS
La plupart des actions attendent un nom de répertoire où construire les sources. Il sera créé pour
vous s'il n'existe pas. Si la rép_construction contient un signe %v, il sera remplacé par le
version spécifique de PostgreSQL en cours de construction. (Habituellement, ce paramètre est build-%v.)
versions-supportées
Imprimer la liste effective des versions prises en charge, c'est-à-dire l'intersection des ensembles de
versions prises en charge par le système et le package.
contrôle de contrôle
Vérifiez si debian/control a besoin d'être mis à jour depuis debian/control.in. Ceci est invoqué de
/usr/share/postgresql-common/pgxs_debian_control.mk. Lors de la construction d'un rétroportages or
pgdg suite tel que déterminé par debian/changelog, cette action met également à jour le contrôle
déposer. Autrement, contrôle de mise à jour doit être exécuté manuellement.
contrôle de mise à jour
Mettez à jour debian/control depuis debian/control.in et debian/tests/control depuis
debian/tests/control.in si ce dernier existe.
configurer rép_construction [options-de-configuration-supplémentaires]
Pour chaque version prise en charge, appelez ../configurer du rép_construction annuaire. (Plus
Les extensions PostgreSQL n'ont pas de script de configuration.)
construire rép_construction [drapeaux supplémentaires]
Construisez l'extension dans le rép_construction répertoire.
installer rép_construction modèle-paquet
invoquer a prendre une installer du rép_construction annuaire. Le troisième paramètre spécifie le
nom du package à utiliser. La plupart des packages utilisent postgresql-%v-nom_pkg. Make sera appelé avec
DESTDIR="$(CURDIR)/debian/paquet".
espace extérieur plus propre, rép_construction
Nettoyez le répertoire de construction.
boucle modèle-paquet
En variante à l'appel construire et installer séparément pour les builds VPATH, bouclez sur le
versions de PostgreSQL prises en charge dans le répertoire source supérieur. Cela devrait être utilisé si le
package ne prend pas en charge les builds VPATH. Comme il invoque également a prendre une installer, il devrait être
placé là où l'installation se produit dans debian/rules, plutôt que là où la construction le ferait
normalement être appelé.
vérification de l'installation [rép_construction]
Utilisez pg_virtualenv a prendre une vérification de l'installation pour exécuter les tests de régression d'extension. C'est
destiné à être exécuté à partir de debian/tests/control en utilisant test automatique. Si rép_construction est omis,
le répertoire source supérieur est utilisé.
Parfois, il est souhaitable d'exécuter du code supplémentaire par version avant d'appeler l'action, dans
dans ce cas, la boucle sur les versions prises en charge doit être dans le script appelant. À
faciliter ce mode, les actions peuvent également être appelées comme action-version. Voir l'installcheck
exemple ci-dessous.
PRISE EN CHARGE VERSIONS
pg_buildext lit debian/pgversions pour décider quel PostgreSQL construire des modules/extensions
pour. Ce fichier contient un numéro de version PostgreSQL par ligne, dans les formats suivants :
tous Prend en charge toutes les versions. Ceci est recommandé sauf en cas d'incompatibilités connues.
Xy Soutenez cette version.
Xy+
Soutenez ceci et toutes les versions supérieures.
#
Commentaire.
Pour qu'une version soit utilisée, elle doit également être répertoriée dans la sortie de
/usr/share/postgresql-common/supported-versions. Voir ce fichier pour savoir comment configurer le
liste des versions prises en charge sur votre système.
EXEMPLE
debian/control.in :
Source : postgresql-foobar
Build-Depends : debhelper, postgresql-server-dev-all (>= 153~)
XS-Testsuite : autopkgtest
Paquet : postgresql-PGVERSION-foobar
Dépend : ${misc:Depends}, ${shlibs:Depends}, postgresql-PGVERSION
debian/pgversions :
tous
debian/règles :
#!/usr/bin/faire -f
inclure /usr/share/postgresql-common/pgxs_debian_control.mk
# omettez ceci si le paquet n'utilise pas autoconf
override_dh_auto_configure :
+pg_buildext configure build-%v "--libdir=/usr/lib/postgresql/%v/lib --datadir=/usr/share/postgresql-%v-foobar"
override_dh_auto_build :
+pg_buildext build build-%v
override_dh_auto_test :
# rien à faire ici, voir debian/tests/* à la place
override_dh_auto_install :
+pg_buildext installe build-%v postgresql-%v-foobar
override_dh_installdocs :
dh_installdocs --all LISEZMOI.*
override_dh_auto_clean :
+pg_buildext construction propre-%v
%:
dh $@
debian/tests/contrôle :
Dépend : @, postgresql-server-dev-all
Tests : installcheck
Restrictions : allow-stderr
debian/tests/control.in : (Optionnel)
Dépend : @, postgresql-contrib-PGVERSION, postgresql-PGVERSION-bar
Tests : installcheck
Restrictions : allow-stderr
debian/tests/installcheck :
#!/ Bin / sh
vérification d'installation pg_buildext
# alternativement : pg_buildext installcheck build-%v
# Exécuter du code supplémentaire avant d'appeler l'action réelle :
définir -e
pour v dans $(pg_buildext versions-supportées); faire
test -L build-$v/sql || ln -s ../sql build-$v/
test -L build-$v/attendu || ln -s ../construction attendue-$v/
pg_buildext installcheck-$v build-$v
fait
ENVIRONNEMENT
pg_buildext ensembles PG_VIRTUALENV_UNSHARE=-n pour les actions installcheck par défaut à
demander un nouvel espace de noms réseau, permettant à plusieurs instances fonctionnant en parallèle de partager
port 5432. Remplacer en définissant une valeur différente.
COMPATIBILITÉ
Plus tôt pg_buildext versions nécessitaient un argument "source dir" après l'action. C'est
désormais obsolète, mais toujours accepté (et ignoré).
pg_buildext boucle a été introduit dans postgresql-server-dev-all (>= 141~).
L'utilisation de "all" ou "X.Y+" dans debian/pgversions a été introduite dans postgresql-server-dev-
tout (>= 148~).
pg_buildext vérification de l'installation a été introduit dans postgresql-server-dev-all (>= 153~).
PG_VIRTUALENV_UNSHARE=-n a été introduit dans postgresql-common (>= 170~).
Gestion de debian/tests/control.in avec VERSION PG remplacement a été introduit dans
postgresql-common (>= 171~).
Utilisez pg_buildext en ligne en utilisant les services onworks.net