{"id":15784,"date":"2021-02-21T06:35:18","date_gmt":"2021-02-21T05:35:18","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/postgresql-on-freebsd-installation-from-source-code\/"},"modified":"2021-02-21T06:35:18","modified_gmt":"2021-02-21T05:35:18","slug":"postgresql-on-freebsd-installation-from-source-code","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/postgresql-on-freebsd-installation-from-source-code\/","title":{"rendered":"PostgreSQL on FreeBSD, installation from source code"},"content":{"rendered":"<p>This is the next post in this little series about PostgreSQL on FreeBSD. You can find the previous one here:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.dbi-services.com\/blog\/postgresql-on-freebsd-getting-started\/\" target=\"_blank\" rel=\"noopener\">PostgreSQL on FreeBSD, getting started<\/a><\/li>\n<li><a href=\"https:\/\/www.dbi-services.com\/blog\/postgresql-on-freebsd-updating-configuration\/\" target=\"_blank\" rel=\"noopener\">PostgreSQL on FreeBSD, updating &amp; configuration<\/a><\/li>\n<li><a href=\"https:\/\/www.dbi-services.com\/blog\/postgresql-on-freebsd-installation-from-packages\/\" target=\"_blank\" rel=\"noopener\">PostgreSQL on FreeBSD, installation from packages <\/a><\/li>\n<\/ul>\n<p>The downside with installing from packages on FreeBSD is, that you can only run one version of PostgreSQL. If you want to run more than one, you need to install from source code, and this is the topic of this post.<\/p>\n<p><!--more--><\/p>\n<p>AS the first step lets remove the PostgreSQL installation we did in the last post:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nroot@freebsd:~ $ pkg remove postgresql13-server postgresql13-client\nChecking integrity... done (0 conflicting)\nDeinstallation has been requested for the following 2 packages (of 0 packages in the universe):\n\nInstalled packages to be REMOVED:\n        postgresql13-client: 13.1\n        postgresql13-server: 13.1_1\n\nNumber of packages to be removed: 2\n\nThe operation will free 53 MiB.\n\nProceed with deinstalling packages? [y\/N]: y\n[1\/2] Deinstalling postgresql13-server-13.1_1...\n[1\/2] Deleting files for postgresql13-server-13.1_1: 100%\n==&gt; You should manually remove the \"postgres\" user. \n==&gt; You should manually remove the \"postgres\" group \n[2\/2] Deinstalling postgresql13-client-13.1...\n[2\/2] Deleting files for postgresql13-client-13.1: 100%\n<\/pre>\n<p>As this will not remove $PGDATA lets get rid of that as well:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nroot@freebsd:~ $ rm -rf \/var\/db\/postgres\/data13\/\n<\/pre>\n<p>We should also remove the auto start configuration:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nroot@freebsd:~ $ sed -i\".bak\" '$d' \/etc\/rc.conf\nroot@freebsd:~ $ cat \/etc\/rc.conf\nhostname=\"freebsd.it.dbi-services.com\"\nkeymap=\"ch.kbd\"\nifconfig_em0=\"DHCP\"\nifconfig_em1=\"inet 192.168.22.17 netmask 255.255.255.0\"\nsshd_enable=\"YES\"\nntpd_enable=\"YES\"\n# Set dumpdev to \"AUTO\" to enable crash dumps, \"NO\" to disable\ndumpdev=\"AUTO\"\nzfs_enable=\"YES\"\n<\/pre>\n<p>When we installed PostgreSQL from packages some additional packages have been installed as well, lets remove them, too:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nroot@freebsd:~ $ pkg remove libffi libedit libxml2 python37 perl5 lua52 llvm11 icu-68\nNo packages matched for pattern 'icu-68'\n\nChecking integrity... done (0 conflicting)\nDeinstallation has been requested for the following 7 packages (of 0 packages in the universe):\n\nInstalled packages to be REMOVED:\n        libedit: 3.1.20191231,1\n        libffi: 3.3_1\n        libxml2: 2.9.10_2\n        llvm11: 11.0.1\n        lua52: 5.2.4\n        perl5: 5.32.1_1\n        python37: 3.7.9_1\n\nNumber of packages to be removed: 7\n\nThe operation will free 884 MiB.\n\nProceed with deinstalling packages? [y\/N]: y\n[1\/7] Deinstalling llvm11-11.0.1...\n[1\/7] Deleting files for llvm11-11.0.1: 100%\n[2\/7] Deinstalling python37-3.7.9_1...\n[2\/7] Deleting files for python37-3.7.9_1: 100%\n[3\/7] Deinstalling lua52-5.2.4...\n[3\/7] Deleting files for lua52-5.2.4: 100%\n[4\/7] Deinstalling libffi-3.3_1...\n[4\/7] Deleting files for libffi-3.3_1: 100%\n[5\/7] Deinstalling libedit-3.1.20191231,1...\n[5\/7] Deleting files for libedit-3.1.20191231,1: 100%\n[6\/7] Deinstalling libxml2-2.9.10_2...\n[6\/7] Deleting files for libxml2-2.9.10_2: 100%\n[7\/7] Deinstalling perl5-5.32.1_1...\n[7\/7] Deleting files for perl5-5.32.1_1: 100%\n<\/pre>\n<p>Now we should have the same state of the system as before we installed PostgreSQL from packages. We&#8217;ll not delete the postgres user and group, as we can just re-use them for installing from source code. <\/p>\n<p>To download the source code we need something like wget, and to make life a bit easier we&#8217;ll also install sudo:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nroot@freebsd:~ $ pkg install wget sudo\nUpdating FreeBSD repository catalogue...\nFreeBSD repository is up to date.\nAll repositories are up to date.\nThe following 4 package(s) will be affected (of 0 checked):\n\nNew packages to be INSTALLED:\n        libidn2: 2.3.0_1\n        libunistring: 0.9.10_1\n        sudo: 1.9.5p2\n        wget: 1.20.3_1\n\nNumber of packages to be installed: 4\n\nThe process will require 11 MiB more space.\n2 MiB to be downloaded.\n\nProceed with this action? [y\/N]: y\n[1\/4] Fetching wget-1.20.3_1.txz: 100%  651 KiB 666.2kB\/s    00:01    \n[2\/4] Fetching sudo-1.9.5p2.txz: 100%  943 KiB 966.1kB\/s    00:01    \n[3\/4] Fetching libidn2-2.3.0_1.txz: 100%  111 KiB 113.3kB\/s    00:01    \n[4\/4] Fetching libunistring-0.9.10_1.txz: 100%  527 KiB 539.8kB\/s    00:01    \nChecking integrity... done (0 conflicting)\n[1\/4] Installing libunistring-0.9.10_1...\n[1\/4] Extracting libunistring-0.9.10_1: 100%\n[2\/4] Installing libidn2-2.3.0_1...\n[2\/4] Extracting libidn2-2.3.0_1: 100%\n[3\/4] Installing wget-1.20.3_1...\n[3\/4] Extracting wget-1.20.3_1: 100%\n[4\/4] Installing sudo-1.9.5p2...\n[4\/4] Extracting sudo-1.9.5p2: 100%\n<\/pre>\n<p>The sudo configuration in FreeBSD is not in \/etc but in \/usr\/local\/etc, and as we trust the postgres user we allow everything without a password:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nroot@freebsd:~ $ cat \/usr\/local\/etc\/sudoers | grep postgres\npostgres ALL=(ALL) NOPASSWD: ALL\n<\/pre>\n<p>Lets download the source code:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1,2,4,5,8,9,13]\">\n\nroot@freebsd:~ # su - postgres\n$ pwd\n\/var\/db\/postgres\n$ wget https:\/\/ftp.postgresql.org\/pub\/source\/v13.2\/postgresql-13.2.tar.bz2\n$ ls -l\ntotal 20585\n-rw-r--r--  1 postgres  postgres  21057276 Feb  8 23:07 postgresql-13.2.tar.bz2\n$ tar xvf postgresql-13.2.tar.bz2\n$ ls -l\ntotal 20593\ndrwxr-xr-x  6 postgres  postgres        19 Feb  8 23:07 postgresql-13.2\n-rw-r--r--  1 postgres  postgres  21057276 Feb  8 23:07 postgresql-13.2.tar.bz2\n$ cd postgresql-13.2\n<\/pre>\n<p>Before can run &#8220;configure&#8221; we need to install all the dependencies:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1]\">\n$ sudo pkg install perl5 perl5-devel python3 libressl-devel libxml2 libxslt openldap-client llvm11\nUpdating FreeBSD repository catalogue...\nFreeBSD repository is up to date.\nAll repositories are up to date.\nThe following 14 package(s) will be affected (of 0 checked):\n\nNew packages to be INSTALLED:\n        libedit: 3.1.20191231,1\n        libffi: 3.3_1\n        libgcrypt: 1.8.7\n        libgpg-error: 1.41\n        libressl-devel: 3.3.1\n        libxml2: 2.9.10_2\n        libxslt: 1.1.34_1\n        llvm11: 11.0.1\n        lua52: 5.2.4\n        openldap-client: 2.4.57\n        perl5: 5.32.1_1\n        perl5-devel: 5.33.4.81\n        python3: 3_3\n        python37: 3.7.9_1\n\nNumber of packages to be installed: 14\n\nThe process will require 975 MiB more space.\n20 MiB to be downloaded.\n\nProceed with this action? [y\/N]: y\n[1\/7] Fetching perl5-devel-5.33.4.81.txz: 100%   14 MiB   3.8MB\/s    00:04    \n[2\/7] Fetching python3-3_3.txz: 100%    1 KiB   1.1kB\/s    00:01    \n[3\/7] Fetching libressl-devel-3.3.1.txz: 100%    3 MiB   3.2MB\/s    00:01    \n[4\/7] Fetching libxslt-1.1.34_1.txz: 100%  233 KiB 238.4kB\/s    00:01    \n[5\/7] Fetching openldap-client-2.4.57.txz: 100%    1 MiB   1.1MB\/s    00:01    \n[6\/7] Fetching libgcrypt-1.8.7.txz: 100%  740 KiB 757.9kB\/s    00:01    \n[7\/7] Fetching libgpg-error-1.41.txz: 100%  292 KiB 299.5kB\/s    00:01    \nChecking integrity... done (0 conflicting)\n[1\/14] Installing libffi-3.3_1...\n[1\/14] Extracting libffi-3.3_1: 100%\n[2\/14] Installing libgpg-error-1.41...\n[2\/14] Extracting libgpg-error-1.41: 100%\n[3\/14] Installing libedit-3.1.20191231,1...\n[3\/14] Extracting libedit-3.1.20191231,1: 100%\n[4\/14] Installing perl5-5.32.1_1...\n[4\/14] Extracting perl5-5.32.1_1: 100%\n[5\/14] Installing libxml2-2.9.10_2...\n[5\/14] Extracting libxml2-2.9.10_2: 100%\n[6\/14] Installing python37-3.7.9_1...\n[6\/14] Extracting python37-3.7.9_1: 100%\n[7\/14] Installing libgcrypt-1.8.7...\n[7\/14] Extracting libgcrypt-1.8.7: 100%\n[8\/14] Installing lua52-5.2.4...\n[8\/14] Extracting lua52-5.2.4: 100%\n[9\/14] Installing perl5-devel-5.33.4.81...\n[9\/14] Extracting perl5-devel-5.33.4.81: 100%\n[10\/14] Installing python3-3_3...\n[10\/14] Extracting python3-3_3: 100%\n[11\/14] Installing libressl-devel-3.3.1...\n[11\/14] Extracting libressl-devel-3.3.1: 100%\n[12\/14] Installing libxslt-1.1.34_1...\n[12\/14] Extracting libxslt-1.1.34_1: 100%\n[13\/14] Installing openldap-client-2.4.57...\n[13\/14] Extracting openldap-client-2.4.57: 100%\n[14\/14] Installing llvm11-11.0.1...\n[14\/14] Extracting llvm11-11.0.1: 100%\n=====\nMessage from python37-3.7.9_1:\n\n--\nNote that some standard Python modules are provided as separate ports\nas they require additional dependencies. They are available as:\n\npy37-gdbm       databases\/py-gdbm@py37\npy37-sqlite3    databases\/py-sqlite3@py37\npy37-tkinter    x11-toolkits\/py-tkinter@py37\n=====\nMessage from openldap-client-2.4.57:\n\n--\nThe OpenLDAP client package has been successfully installed.\n\nEdit\n  \/usr\/local\/etc\/openldap\/ldap.conf\nto change the system-wide client defaults.\n\nTry `man ldap.conf' and visit the OpenLDAP FAQ-O-Matic at\n  http:\/\/www.OpenLDAP.org\/faq\/index.cgi?file=3\nfor more information.\n<\/pre>\n<p>Here is the configure command (this might look differently for you, depending on what you want to have enabled):<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\n$ sudo mkdir -p \/u01\/app\n$ sudo chown postgres:postgres \/u01\/app\n$ bash\n[postgres@freebsd ~\/postgresql-13.2]$ PGHOME=\/u01\/app\/postgres\/product\/13\/db_2\/\n[postgres@freebsd ~\/postgresql-13.2]$ SEGSIZE=2\n[postgres@freebsd ~\/postgresql-13.2]$ BLOCKSIZE=8\n[postgres@freebsd ~\/postgresql-13.2]$ .\/configure --prefix=${PGHOME} --exec-prefix=${PGHOME} --bindir=${PGHOME}\/bin --libdir=${PGHOME}\/lib --with-libraries=\/usr\/local\/lib  --with-includes=\/usr\/local\/include --sysconfdir=${PGHOME}\/etc --includedir=${PGHOME}\/include --datarootdir=${PGHOME}\/share --datadir=${PGHOME}\/share --with-pgport=5432 --with-perl --with-python --with-openssl --with-pam --with-ldap --with-libxml --with-libxslt --with-segsize=${SEGSIZE} --with-blocksize=${BLOCKSIZE} --with-llvm LLVM_CONFIG='\/usr\/local\/llvm11\/bin\/llvm-config' \n...\nconfig.status: creating GNUmakefile\nconfig.status: creating src\/Makefile.global\nconfig.status: creating src\/include\/pg_config.h\nconfig.status: creating src\/include\/pg_config_ext.h\nconfig.status: creating src\/interfaces\/ecpg\/include\/ecpg_config.h\nconfig.status: linking src\/backend\/port\/tas\/dummy.s to src\/backend\/port\/tas.s\nconfig.status: linking src\/backend\/port\/posix_sema.c to src\/backend\/port\/pg_sema.c\nconfig.status: linking src\/backend\/port\/sysv_shmem.c to src\/backend\/port\/pg_shmem.c\nconfig.status: linking src\/include\/port\/freebsd.h to src\/include\/pg_config_os.h\n<\/pre>\n<p>Compile and install:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\n[postgres@freebsd ~\/postgresql-13.2]$ make all\nYou must use GNU make to build PostgreSQL.\n*** Error code 1\n\nStop.\nmake: stopped in \/var\/db\/postgres\/postgresql-13.2\n<\/pre>\n<p>Ok, so we missed to install make:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1,20]\">\n[postgres@freebsd ~\/postgresql-13.2]$ sudo pkg install gmake\nUpdating FreeBSD repository catalogue...\nFreeBSD repository is up to date.\nAll repositories are up to date.\nThe following 1 package(s) will be affected (of 0 checked):\n\nNew packages to be INSTALLED:\n        gmake: 4.3_2\n\nNumber of packages to be installed: 1\n\nThe process will require 2 MiB more space.\n416 KiB to be downloaded.\n\nProceed with this action? [y\/N]: y\n[1\/1] Fetching gmake-4.3_2.txz: 100%  416 KiB 425.6kB\/s    00:01    \nChecking integrity... done (0 conflicting)\n[1\/1] Installing gmake-4.3_2...\n[1\/1] Extracting gmake-4.3_2: 100%\n[postgres@freebsd ~\/postgresql-13.2]$ make world\nUsing GNU make found at \/usr\/local\/bin\/gmake\n...\n\/usr\/local\/bin\/gmake -C config all\ngmake[1]: Entering directory '\/var\/db\/postgres\/postgresql-13.2\/config'\ngmake[1]: Nothing to be done for 'all'.\ngmake[1]: Leaving directory '\/var\/db\/postgres\/postgresql-13.2\/config'\ngmake[2]: Leaving directory '\/var\/db\/postgres\/postgresql-13.2\/contrib\/ltree_plpython'\ngmake[1]: Leaving directory '\/var\/db\/postgres\/postgresql-13.2\/contrib'\nPostgreSQL, contrib, and documentation successfully made. Ready to install.\n<\/pre>\n<p>That&#8217;s it. Finally, install:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\n[postgres@freebsd ~\/postgresql-13.2]$ make install-world\n...\ncd '\/u01\/app\/postgres\/product\/13\/db_2\/\/lib\/bitcode' &amp;&amp; \/usr\/local\/llvm11\/bin\/llvm-lto -thinlto -thinlto-action=thinlink -o ltree_plpython3.index.bc ltree_plpython3\/ltree_plpython.bc\ngmake[2]: Leaving directory '\/var\/db\/postgres\/postgresql-13.2\/contrib\/ltree_plpython'\ngmake[1]: Leaving directory '\/var\/db\/postgres\/postgresql-13.2\/contrib'\nPostgreSQL, contrib, and documentation installation complete.\n<\/pre>\n<p>If you script that, it is not much more work than installing from packages, and you have the full flexibility. The downside is, that you need to come with your on start\/stop scripts and that you need to compile any third party extension for your own.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is the next post in this little series about PostgreSQL on FreeBSD. You can find the previous one here: PostgreSQL on FreeBSD, getting started PostgreSQL on FreeBSD, updating &amp; configuration PostgreSQL on FreeBSD, installation from packages The downside with installing from packages on FreeBSD is, that you can only run one version of PostgreSQL. [&hellip;]<\/p>\n","protected":false},"author":29,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229],"tags":[2256,77],"type_dbi":[],"class_list":["post-15784","post","type-post","status-publish","format-standard","hentry","category-database-administration-monitoring","tag-freebsd","tag-postgresql"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>PostgreSQL on FreeBSD, installation from source code - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/postgresql-on-freebsd-installation-from-source-code\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PostgreSQL on FreeBSD, installation from source code\" \/>\n<meta property=\"og:description\" content=\"This is the next post in this little series about PostgreSQL on FreeBSD. You can find the previous one here: PostgreSQL on FreeBSD, getting started PostgreSQL on FreeBSD, updating &amp; configuration PostgreSQL on FreeBSD, installation from packages The downside with installing from packages on FreeBSD is, that you can only run one version of PostgreSQL. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/postgresql-on-freebsd-installation-from-source-code\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-21T05:35:18+00:00\" \/>\n<meta name=\"author\" content=\"Daniel Westermann\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@westermanndanie\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniel Westermann\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/postgresql-on-freebsd-installation-from-source-code\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/postgresql-on-freebsd-installation-from-source-code\/\"},\"author\":{\"name\":\"Daniel Westermann\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"headline\":\"PostgreSQL on FreeBSD, installation from source code\",\"datePublished\":\"2021-02-21T05:35:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/postgresql-on-freebsd-installation-from-source-code\/\"},\"wordCount\":322,\"commentCount\":0,\"keywords\":[\"FreeBSD\",\"PostgreSQL\"],\"articleSection\":[\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/postgresql-on-freebsd-installation-from-source-code\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/postgresql-on-freebsd-installation-from-source-code\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/postgresql-on-freebsd-installation-from-source-code\/\",\"name\":\"PostgreSQL on FreeBSD, installation from source code - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2021-02-21T05:35:18+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/postgresql-on-freebsd-installation-from-source-code\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/postgresql-on-freebsd-installation-from-source-code\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/postgresql-on-freebsd-installation-from-source-code\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PostgreSQL on FreeBSD, installation from source code\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\",\"name\":\"Daniel Westermann\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"caption\":\"Daniel Westermann\"},\"description\":\"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.\",\"sameAs\":[\"https:\/\/x.com\/westermanndanie\"],\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/daniel-westermann\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PostgreSQL on FreeBSD, installation from source code - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/postgresql-on-freebsd-installation-from-source-code\/","og_locale":"en_US","og_type":"article","og_title":"PostgreSQL on FreeBSD, installation from source code","og_description":"This is the next post in this little series about PostgreSQL on FreeBSD. You can find the previous one here: PostgreSQL on FreeBSD, getting started PostgreSQL on FreeBSD, updating &amp; configuration PostgreSQL on FreeBSD, installation from packages The downside with installing from packages on FreeBSD is, that you can only run one version of PostgreSQL. [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/postgresql-on-freebsd-installation-from-source-code\/","og_site_name":"dbi Blog","article_published_time":"2021-02-21T05:35:18+00:00","author":"Daniel Westermann","twitter_card":"summary_large_image","twitter_creator":"@westermanndanie","twitter_misc":{"Written by":"Daniel Westermann","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-on-freebsd-installation-from-source-code\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-on-freebsd-installation-from-source-code\/"},"author":{"name":"Daniel Westermann","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"headline":"PostgreSQL on FreeBSD, installation from source code","datePublished":"2021-02-21T05:35:18+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-on-freebsd-installation-from-source-code\/"},"wordCount":322,"commentCount":0,"keywords":["FreeBSD","PostgreSQL"],"articleSection":["Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/postgresql-on-freebsd-installation-from-source-code\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-on-freebsd-installation-from-source-code\/","url":"https:\/\/www.dbi-services.com\/blog\/postgresql-on-freebsd-installation-from-source-code\/","name":"PostgreSQL on FreeBSD, installation from source code - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2021-02-21T05:35:18+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-on-freebsd-installation-from-source-code\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/postgresql-on-freebsd-installation-from-source-code\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-on-freebsd-installation-from-source-code\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"PostgreSQL on FreeBSD, installation from source code"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66","name":"Daniel Westermann","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","caption":"Daniel Westermann"},"description":"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.","sameAs":["https:\/\/x.com\/westermanndanie"],"url":"https:\/\/www.dbi-services.com\/blog\/author\/daniel-westermann\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/15784","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/29"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=15784"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/15784\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=15784"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=15784"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=15784"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=15784"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}