ນີ້ແມ່ນຄໍາສັ່ງ pg_buildext ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
pg_buildext - ສ້າງແລະຕິດຕັ້ງສ່ວນຂະຫຍາຍ PostgreSQL
ສະຫຼຸບສັງລວມ
pg_buildext [ທາງເລືອກໃນການ] ການປະຕິບັດ [ທາງເລືອກໃນການ]
ລາຍລະອຽດ
pg_buildext ແມ່ນສະຄິບທີ່ຈະສ້າງການຂະຫຍາຍ PostgreSQL ໃນວິທີການ VPATH, ສໍາລັບ
ອາດຈະເປັນໄປໄດ້ຫຼາຍສະບັບຂອງເຄື່ອງແມ່ຂ່າຍ PostgreSQL ໃນຂະຫນານ. ມັນກໍ່ສ້າງສໍາລັບ
ການຕັດກັນຂອງສະບັບທີ່ຮູ້ຈັກໃນ debian/pgversions (ສະບັບສະຫນັບສະຫນູນໂດຍຊຸດ)
ແລະໃນ /usr/share/postgresql-common/supported-versions (ລຸ້ນທີ່ຮອງຮັບໃນນີ້
ປ່ອຍຕົວ).
ການນໍາໃຊ້
ແພັກເກດທີ່ໃຊ້ pg_buildext ຄວນກຽມພ້ອມທີ່ຈະສ້າງ binaries ສໍາລັບສະບັບ PostgreSQL
ທີ່ບໍ່ມີຢູ່ໃນ Debian unstable, e.g. ສໍາລັບການປ່ອຍທີ່ເກົ່າກວ່າເມື່ອສ້າງ backports
ສໍາລັບ Debian (ເກົ່າ) ຄົງທີ່ (ອາດຈະລວມທັງ backports ຂອງ PostgreSQL ລຸ້ນໃຫມ່), ຫຼືສໍາລັບ
PostgreSQL ທັງໝົດອອກເມື່ອແພັກເກດຖືກສ້າງຂື້ນມາ apt.postgresql.org.
ເນື່ອງຈາກຊຸດຂອງແພັກເກັດຄູ່ແມ່ນຂຶ້ນກັບລຸ້ນ PostgreSQL ເປົ້າໝາຍ, debian/control ແມ່ນ
ສ້າງຂຶ້ນຈາກແມ່ແບບໃນ debian/control.in ເມື່ອໃດ pg_buildext ການຄວບຄຸມການປັບປຸງ ແມ່ນໄດ້ດໍາເນີນການ.
ການປະກົດຕົວຂອງ PGVERSION ໃນພາກສ່ວນຊຸດໄດ້ຖືກແທນທີ່ໂດຍ PostgreSQL ເປົ້າຫມາຍ
ສະບັບ. ຮວມເອົາ /usr/share/postgresql-common/pgxs_debian_control.mk ໃນ debian/rules ກັບ
ດໍາເນີນການກວດສອບໃນເວລາສ້າງຖ້າຫາກວ່າການປັບປຸງ debian / ການຄວບຄຸມແມ່ນຈໍາເປັນ.
As pg_buildext invokes ເຮັດໃຫ້ ສໍາລັບ ການກໍ່ສ້າງ, ການຕິດຕັ້ງ, ແລະ ເຮັດຄວາມສະອາດ ການປະຕິບັດ, ການຮຽກຮ້ອງຈາກ
debian/ກົດລະບຽບ (ເຊິ່ງເປັນ makefile) ຄວນຖືກນຳໜ້າດ້ວຍ + ດັ່ງນັ້ນຜູ້ຍ່ອຍສາມາດສົນທະນາໄດ້
ກັບ make jobserver.
ການຂະຫຍາຍຈໍານວນຫຼາຍສະຫນັບສະຫນູນ ເຮັດໃຫ້ ກວດສອບການຕິດຕັ້ງ ການທົດສອບການນໍາໃຊ້ pg_regress. ດັ່ງທີ່ນີ້ຕ້ອງການ
ຊຸດທີ່ຈະຕິດຕັ້ງ, ມັນບໍ່ສາມາດດໍາເນີນການໄດ້ໃນເວລາສ້າງ. ແທນທີ່ຈະ, ການທົດສອບຄວນຈະດໍາເນີນການ
ການນໍາໃຊ້ autopkgtest ຈາກ debian/tests/*.
ຖ້າມີ debian/tests/control.in, ການປະກົດຕົວຂອງຊື່ແພັກເກັດທີ່ມີ PGVERSION ມີ
ແທນທີ່ດ້ວຍລາຍຊື່ຂອງແພັກເກັດທີ່ມີລຸ້ນ PostgreSQL ເປົ້າໝາຍທີ່ຕື່ມໃສ່. (ຖ້າບໍ່ມີ
ການທົດແທນແມ່ນຈໍາເປັນໃນ debian / ການທົດສອບ / ການຄວບຄຸມ, ມັນເປັນການດີທີ່ຈະສະຫນອງໄຟລ໌ການຄວບຄຸມການທົດສອບ
ໂດຍກົງ.)
OPTIONS
- ຊີໂອ arg
-s ຜ່ານໄປ pg_virtualenv ໃນເວລາແລ່ນ ກວດສອບການຕິດຕັ້ງ.
ກິດຈະກໍາ
ການປະຕິບັດສ່ວນໃຫຍ່ຄາດຫວັງວ່າຊື່ໄດເລກະທໍລີທີ່ຈະສ້າງແຫຼ່ງ. ມັນຈະຖືກສ້າງຂື້ນເພື່ອ
ເຈົ້າຖ້າມັນບໍ່ມີ. ຖ້າ build-dir ມີເຄື່ອງໝາຍ %v, ມັນຈະຖືກແທນທີ່ດ້ວຍ
ສະບັບສະເພາະຂອງ PostgreSQL ກໍາລັງສ້າງຂຶ້ນຕໍ່ກັບ. (ປົກກະຕິແລ້ວພາຣາມິເຕີນີ້ແມ່ນ build-%v.)
ສະບັບສະຫນັບສະຫນູນ
ພິມບັນຊີລາຍຊື່ປະສິດທິຜົນຂອງສະບັບສະຫນັບສະຫນູນ, ເຊັ່ນ: ການຕັດກັນຂອງຊຸດຂອງ
ຮຸ່ນທີ່ສະຫນັບສະຫນູນໂດຍລະບົບແລະຊຸດ.
ການຄວບຄຸມ
ກວດເບິ່ງວ່າ debian/control ຕ້ອງການອັບເດດຈາກ debian/control.in. ນີ້ແມ່ນຮຽກຮ້ອງຈາກ
/usr/share/postgresql-common/pgxs_debian_control.mk. ໃນເວລາທີ່ການກໍ່ສ້າງສໍາລັບ ກ ຫນັງສືພິມ or
pgdg ຊຸດທີ່ຖືກກໍານົດໂດຍ debian/changelog, ການປະຕິບັດນີ້ຍັງປັບປຸງການຄວບຄຸມ
ໄຟລ໌. ຖ້າບໍ່ດັ່ງນັ້ນ, ການຄວບຄຸມການປັບປຸງ ຈໍາເປັນຕ້ອງໄດ້ດໍາເນີນການດ້ວຍຕົນເອງ.
ການຄວບຄຸມການປັບປຸງ
ອັບເດດ debian/control ຈາກ debian/control.in, ແລະ debian/tests/control ຈາກ
debian/tests/control.in ຖ້າມີອັນສຸດທ້າຍ.
configure build-dir [extra-configure-options]
ສຳລັບທຸກລຸ້ນທີ່ຮອງຮັບ, ໃຫ້ໂທຫາ ../configure ຈາກ build-dir ໄດເລກະທໍລີ. (ສ່ວນໃຫຍ່
ສ່ວນຂະຫຍາຍ PostgreSQL ບໍ່ມີສະຄຣິບກຳນົດຄ່າ.)
ການກໍ່ສ້າງ build-dir [extra-cflags]
ກໍ່ສ້າງການຂະຫຍາຍຢູ່ໃນ build-dir ລະບົບ.
ການຕິດຕັ້ງ build-dir package-pattern
ຂໍ ເຮັດໃຫ້ ການຕິດຕັ້ງ ຈາກ build-dir ໄດເລກະທໍລີ. ຕົວກໍານົດການທີສາມກໍານົດການ
ຊື່ແພັກເກດທີ່ຈະໃຊ້. ແພັກເກດສ່ວນໃຫຍ່ໃຊ້ postgresql-%v-pkgname. ເຮັດຈະຖືກເອີ້ນວ່າ
DESTDIR="$(CURDIR)/debian/ຊຸດ".
ເຮັດຄວາມສະອາດ build-dir
ເຮັດຄວາມສະອາດໄດເລກະທໍລີສ້າງ.
loop package-pattern
ເປັນຕົວແປກັບການໂທ ການກໍ່ສ້າງ ແລະ ການຕິດຕັ້ງ ແຍກຕ່າງຫາກສໍາລັບ VPATH builds, loop over the
ຮຸ່ນ PostgreSQL ສະຫນັບສະຫນູນໃນໄດເລກະທໍລີແຫຼ່ງເທິງ. ນີ້ຄວນຈະຖືກນໍາໃຊ້ຖ້າຫາກວ່າ
ແພັກເກດບໍ່ຮອງຮັບການສ້າງ VPATH. ຍ້ອນວ່າມັນຍັງຮຽກຮ້ອງ ເຮັດໃຫ້ ການຕິດຕັ້ງ, ມັນຄວນຈະເປັນ
ວາງໄວ້ແມ່ນການຕິດຕັ້ງເກີດຂຶ້ນໃນ debian / ກົດລະບຽບ, ແທນທີ່ຈະເປັນບ່ອນທີ່ຈະສ້າງ
ປົກກະຕິເອີ້ນວ່າ.
ກວດສອບການຕິດຕັ້ງ [build-dir]
ການນໍາໃຊ້ pg_virtualenv ເຮັດໃຫ້ ກວດສອບການຕິດຕັ້ງ ເພື່ອດໍາເນີນການທົດສອບການຖົດຖອຍຂອງສ່ວນຂະຫຍາຍ. ນີ້ແມ່ນ
ຫມາຍຄວາມວ່າຈະດໍາເນີນການຈາກ debian / ການທົດສອບ / ການຄວບຄຸມການນໍາໃຊ້ autopkgtestທີ່ຢູ່ ຖ້າຫາກວ່າ build-dir ຖືກລະເວັ້ນ,
ໄດເລກະທໍລີແຫຼ່ງເທິງແມ່ນຖືກນໍາໃຊ້.
ບາງຄັ້ງມັນເປັນຄວາມປາຖະຫນາທີ່ຈະດໍາເນີນການລະຫັດພິເສດຕໍ່ສະບັບກ່ອນທີ່ຈະຮຽກຮ້ອງໃຫ້ດໍາເນີນການ, ໃນ
ກໍລະນີທີ່ loop over ສະຫນັບສະຫນຸນສະບັບຈໍາເປັນຕ້ອງຢູ່ໃນສະຄິບການໂທ. ເຖິງ
ອໍານວຍຄວາມສະດວກໃນຮູບແບບນີ້, ການປະຕິບັດຍັງສາມາດເອີ້ນວ່າ ການປະຕິບັດ-ສະບັບພາສາ. ເບິ່ງການຕິດຕັ້ງ
ຕົວຢ່າງຂ້າງລຸ່ມນີ້.
ສະ ໜັບ ສະ ໜູນ ລຸ້ນ
pg_buildext ອ່ານ debian/pgversions ເພື່ອຕັດສິນໃຈວ່າ PostgreSQL ເພື່ອສ້າງໂມດູນ/ສ່ວນຂະຫຍາຍ
ສໍາລັບ. ໄຟລ໌ນີ້ມີຕົວເລກສະບັບ PostgreSQL ຕໍ່ແຖວ, ໃນຮູບແບບຕໍ່ໄປນີ້:
ທັງຫມົດ ຮອງຮັບທຸກລຸ້ນ. ນີ້ແມ່ນແນະນໍາເວັ້ນເສຍແຕ່ວ່າມີຄວາມເຂົ້າກັນໄດ້ທີ່ຮູ້ຈັກ.
ທ ສະຫນັບສະຫນູນສະບັບນີ້.
ທ+
ສະຫນັບສະຫນູນນີ້ແລະທຸກສະບັບທີ່ຍິ່ງໃຫຍ່.
#...
Comment
ສໍາລັບສະບັບທີ່ຈະນໍາໃຊ້, ມັນຍັງຕ້ອງໄດ້ຮັບການລະບຸໄວ້ໃນຜົນຜະລິດຂອງ
/usr/share/postgresql-common/supported-versions. ເບິ່ງໄຟລ໌ນີ້ສໍາລັບວິທີການກໍາຫນົດຄ່າ
ບັນຊີລາຍຊື່ຂອງສະບັບທີ່ສະຫນັບສະຫນູນໃນລະບົບຂອງທ່ານ.
EXAMPLE
debian/control.in:
ແຫຼ່ງຂໍ້ມູນ: postgresql-foobar
Build-Depends: debhelper, postgresql-server-dev-all (>= 153~)
XS-Testsuite: autopkgtest
ຊຸດ: postgresql-PGVERSION-foobar
ຂຶ້ນກັບ: ${misc:Depends}, ${shlibs:Depends}, postgresql-PGVERSION
debian/pgversions:
ທັງຫມົດ
debian/ກົດລະບຽບ:
#!/usr/bin/make -f
ລວມເອົາ /usr/share/postgresql-common/pgxs_debian_control.mk
# ຍົກເລີກສິ່ງນີ້ຖ້າແພັກເກັດບໍ່ໃຊ້ autoconf
override_dh_auto_configure:
+pg_buildext ຕັ້ງຄ່າ 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:
# ບໍ່ມີຫຍັງເຮັດຢູ່ນີ້, ເບິ່ງ debian/tests/* ແທນ
override_dh_auto_install:
+pg_buildext ຕິດຕັ້ງ build-%v postgresql-%v-foobar
override_dh_installdocs:
dh_installdocs --ທັງໝົດ README.*
override_dh_auto_clean:
+pg_buildext ເຮັດຄວາມສະອາດ build-%v
%:
dh $@
debian/tests/ການຄວບຄຸມ:
ຂຶ້ນກັບ: @, postgresql-server-dev-all
ການທົດສອບ: installcheck
ຂໍ້ຈໍາກັດ: allow-stderr
debian/tests/control.in: (ທາງເລືອກ)
ຂຶ້ນກັບ: @, postgresql-contrib-PGVERSION, postgresql-PGVERSION-bar
ການທົດສອບ: installcheck
ຂໍ້ຈໍາກັດ: allow-stderr
debian/tests/installcheck:
#!/ ຖັງ / sh
pg_buildext installcheck
# ອີກທາງເລືອກ: pg_buildext installcheck build-%v
# ແລ່ນລະຫັດເພີ່ມເຕີມກ່ອນທີ່ຈະເອີ້ນການປະຕິບັດຕົວຈິງ:
ຕັ້ງ -e
ສໍາລັບ v ໃນ $(pg_buildext supported-versions); ເຮັດ
ທົດສອບ -L build-$v/sql || ln -s ../sql build-$v/
ທົດສອບ -L build-$v/expected || ln -s ../expected build-$v/
pg_buildext installcheck-$v build-$v
ເຮັດ
ENVIRONMENT
pg_buildext ຊຸດ PG_VIRTUALENV_UNSHARE=-n ສໍາລັບການປະຕິບັດ installcheck ໂດຍຄ່າເລີ່ມຕົ້ນທີ່ຈະ
ຮ້ອງຂໍໃຫ້ມີ namespace ເຄືອຂ່າຍໃຫມ່, ເຮັດໃຫ້ຫຼາຍ instances ແລ່ນໃນຂະຫນານທີ່ຈະແບ່ງປັນ
port 5432. override ໂດຍການຕັ້ງຄ່າເປັນຄ່າທີ່ແຕກຕ່າງກັນ.
ຄວາມເຂົ້າກັນໄດ້
ກ່ອນຫນ້ານັ້ນ pg_buildext ສະບັບທີ່ຕ້ອງການການໂຕ້ຖຽງ "ແຫຼ່ງ dir" ຫຼັງຈາກການປະຕິບັດ. ນີ້ແມ່ນ
ຕອນນີ້ປະຕິເສດແລ້ວ, ແຕ່ຍັງຄົງຍອມຮັບ (ແລະບໍ່ສົນໃຈ).
pg_buildext loop ໄດ້ຖືກນໍາສະເຫນີໃນ postgresql-server-dev-all (>= 141~).
ການນຳໃຊ້ "ທັງໝົດ" ຫຼື "X.Y+" ໃນ debian/pgversions ໄດ້ຖືກແນະນຳໃນ postgresql-server-dev-
ທັງໝົດ (>= 148~).
pg_buildext ກວດສອບການຕິດຕັ້ງ ໄດ້ຖືກນໍາສະເຫນີໃນ postgresql-server-dev-all (>= 153~).
PG_VIRTUALENV_UNSHARE=-n ໄດ້ຖືກນໍາສະເຫນີໃນ postgresql-common (>= 170 ~).
ການຈັດການ debian/tests/control.in ກັບ PGVERSION ການທົດແທນໄດ້ຖືກນໍາສະເຫນີໃນ
postgresql-common (>= 171~).
ໃຊ້ pg_buildext ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net