{"id":107654,"date":"2021-10-26T02:35:21","date_gmt":"2021-10-25T23:35:21","guid":{"rendered":"https:\/\/computingforgeeks.com\/?p=107654"},"modified":"2024-02-23T10:39:39","modified_gmt":"2024-02-23T07:39:39","slug":"how-to-install-postgresql-14-on-debian","status":"publish","type":"post","link":"https:\/\/computingforgeeks.com\/how-to-install-postgresql-14-on-debian\/","title":{"rendered":"How To Install PostgreSQL 14 on Debian 12\/11\/10"},"content":{"rendered":"\n<p>For over 30 years of existence and active development, PostgreSQL has earned a strong reputation for robustness, reliability, and performance. PostgreSQL is a free and open-source relational database management system. PostgreSQL 14 is the latest release version of this world&#8217;s most advanced open-source database. <\/p>\n\n\n\n<p>The latest version, PostgreSQL 14 introduces several new features that help ease developments and administration in implementing data-driven applications. It continues to make improvements in the sector of complex data types, including more accessible JSON access and the support for non-contiguous data ranges. PostgreSQL 14 has played a big role in PostgreSQL&#8217;s history of high performance and distributed workloads with improvements in logical replication, query parallelism, high-write workloads, connection concurrency.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><em>Features of PostgreSQL 14<\/em><\/h3>\n\n\n\n<p>PostgreSQL 14 comes with the below features and enhancements:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Significant performance increases through parallel queries, heavily concurrent workloads, partitioned databases, logical replication, and vacuuming.<\/li>\n\n\n\n<li>OUT parameters can now be used to return data from stored procedures.<\/li>\n\n\n\n<li>JSON Conveniences and multiranges- enabling the representation of non-contiguous data ranges.<\/li>\n\n\n\n<li> Subscripting operators have been added to the jsonb and hstore types.<\/li>\n\n\n\n<li>Updates to B-tree indexes are more efficiently managed, resulting in less index bloat.<\/li>\n\n\n\n<li>Supports pipelined queries through <strong>libpq<\/strong>, which can significantly increase throughput over high-latency connections.<\/li>\n\n\n\n<li>Security enhancements<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Installing PostgreSQL 14 on Debian 12\/11\/10<\/h2>\n\n\n\n<p>In this guide, we will systematically go through how to install <strong><em>PostgreSQL 14<\/em><\/strong> on Debian.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1) Setup Pre-requisites<\/h3>\n\n\n\n<p>For this guide, ensure that you have the following:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Debian Server.<\/li>\n\n\n\n<li>User with sudo access.<\/li>\n<\/ul>\n\n\n\n<p>Ensure that your system is updated.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update &amp;&amp; sudo apt upgrade -y<\/code><\/pre>\n\n\n\n<p>Then proceed and install the required packages.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt -y install gnupg2 wget vim<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">2) Install PostgreSQL 14 server<\/h3>\n\n\n\n<p>PostgreSQL is available in the default Debian repositories but the available versions are not up to date. Check the available versions using the command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-cache search postgresql | grep postgresql<\/code><\/pre>\n\n\n\n<p>In this guide, we are interested in PostgreSQL 14 which is not provided in the default repositories. Therefore, we are required to add a repository that provides the package.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo sh -c 'echo \"deb http:\/\/apt.postgresql.org\/pub\/repos\/apt $(lsb_release -cs)-pgdg main\" > \/etc\/apt\/sources.list.d\/pgdg.list'<\/code><\/pre>\n\n\n\n<p>Import the GPG key for the added repository.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -fsSL https:\/\/www.postgresql.org\/media\/keys\/ACCC4CF8.asc|sudo gpg --dearmor -o \/etc\/apt\/trusted.gpg.d\/postgresql.gpg<\/code><\/pre>\n\n\n\n<p>Next, update your APT package index.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt -y update<\/code><\/pre>\n\n\n\n<p>Now install PostgreSQL 14 on Debian using the command below.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install postgresql-14<\/code><\/pre>\n\n\n\n<p>Verify your PostgreSQL 14 installation as below.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">sudo -u postgres psql -c \"SELECT version();\"<\/mark>\n                                                        version\n-----------------------------------------------------------------------------------------------------------------------\n PostgreSQL 13.14 (Debian 13.14-1.pgdg120+2) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit\n(1 row)<\/code><\/pre>\n\n\n\n<p>With a complete installation, PostgreSQL 14 will be initialized. Check the status of the service as below.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\"> systemctl status postgresql@14-main.service<\/mark>\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-light-green-cyan-color\">\u25cf<\/mark> postgresql@14-main.service - PostgreSQL Cluster 14-main\n     Loaded: loaded (\/lib\/systemd\/system\/postgresql@.service; enabled-runtime; preset: enabled)\n     Active: <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-light-green-cyan-color\">active (running)<\/mark> since Fri 2024-02-23 07:37:05 UTC; 58s ago\n    Process: 7022 ExecStart=\/usr\/bin\/pg_ctlcluster --skip-systemctl-redirect 14-main start (code=exited, status=0\/SUCCESS)\n   Main PID: 7027 (postgres)\n      Tasks: 7 (limit: 2251)\n     Memory: 17.4M\n        CPU: 312ms\n     CGroup: \/system.slice\/system-postgresql.slice\/postgresql@14-main.service\n             \u251c\u25007027 \/usr\/lib\/postgresql\/14\/bin\/postgres -D \/var\/lib\/postgresql\/14\/main -c config_file=\/etc\/postgresql\/14\/main\/postgresql.conf\n             \u251c\u25007029 \"postgres: 14\/main: checkpointer \"\n             \u251c\u25007030 \"postgres: 14\/main: background writer \"\n             \u251c\u25007031 \"postgres: 14\/main: walwriter \"\n             \u251c\u25007032 \"postgres: 14\/main: autovacuum launcher \"\n             \u251c\u25007033 \"postgres: 14\/main: stats collector \"\n             \u2514\u25007034 \"postgres: 14\/main: logical replication launcher \"\n\nFeb 23 07:37:02 deb12 systemd&#91;1]: Starting postgresql@14-main.service - PostgreSQL Cluster 14-main...\nFeb 23 07:37:05 deb12 systemd&#91;1]: Started postgresql@14-main.service - PostgreSQL Cluster 14-main.<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">3) Connect and Secure PostgreSQL database<\/h3>\n\n\n\n<p>In PostgreSQL, there is a concept known as <strong>roles<\/strong> used for client authentication. PostgreSQL is set to use <em><strong>ident authentication<\/strong><\/em> by default. This method associates roles with matching Linux system accounts. If it exists, then you are able to log in.<\/p>\n\n\n\n<p>After the installation, a user account with the name <em><strong>postgres<\/strong><\/em> is created and associated with the role postgres. With this user, one is able to log in to the PostgreSQL shell.<\/p>\n\n\n\n<p>Amon the multiple authentication methods supported by PostgreSQL include:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Password<\/strong> &#8211; allows a role to connect by providing a password.<\/li>\n\n\n\n<li><strong>Ident<\/strong> &#8211; works over TCP\/IP connections by obtaining the client&#8217;s operating system username with an optional username for mapping.<\/li>\n\n\n\n<li><strong>Peer<\/strong>&#8211; works similar to ident but supports local connections only.<\/li>\n\n\n\n<li><strong>Trust<\/strong> &#8211; it uses conditions defined on the <em><code>pg_hba.conf<\/code><\/em>.  A user can connect without password as long as conditions in the conf file are met<\/li>\n<\/ol>\n\n\n\n<p>There are two ways of connecting to the PostgreSQL database;<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Method 1:<\/h4>\n\n\n\n<p> Switch to the <strong><em>postgres<\/em><\/strong> user.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo -i -u postgres<\/code><\/pre>\n\n\n\n<p>Now access the PostgreSQL shell with the command.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>psql<\/code><\/pre>\n\n\n\n<p>Sample Output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>postgres@debian:~$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">psql<\/mark>\npsql (14.11 (Debian 14.11-1.pgdg120+2), server 13.14 (Debian 13.14-1.pgdg120+2))\nType \"help\" for help.\n\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">postgres=<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">#<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\"> <\/mark><\/code><\/pre>\n\n\n\n<p>Now in the shell, you can now manage your database.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Method 2:<\/h4>\n\n\n\n<p>In this method, you do not need to switch to the postgres user, you can directly access the PostgreSQL shell with the sudo command below.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo -u postgres psql<\/code><\/pre>\n\n\n\n<p>Sample Output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">sudo -u postgres psql<\/mark>\npsql (14.11 (Debian 14.11-1.pgdg120+2), server 13.14 (Debian 13.14-1.pgdg120+2))\nType \"help\" for help.\n\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">postgres=<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\">#<\/mark><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\"> <\/mark><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">4) Configure PostgreSQL for Remote Access(optional)<\/h3>\n\n\n\n<p>For the PostgreSQL 14 instance to be accessed remotely, we need to modify the file at <strong><em>\/etc\/postgresql\/14\/main\/pg_hba.conf<\/em><\/strong><\/p>\n\n\n\n<p>First, change the peer identification to trust as below.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo sed -i '\/^local\/s\/peer\/trust\/' \/etc\/postgresql\/14\/main\/pg_hba.conf<\/code><\/pre>\n\n\n\n<p>Then, allow password login.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo sed -i '\/^host\/s\/ident\/md5\/' \/etc\/postgresql\/14\/main\/pg_hba.conf<\/code><\/pre>\n\n\n\n<p>Now allow access from everywhere.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo vim \/etc\/postgresql\/14\/main\/pg_hba.conf<\/code><\/pre>\n\n\n\n<p>In the file, add the lines below.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Database administrative login by Unix domain socket\nlocal   all             postgres                                trust\n# TYPE  DATABASE        USER            ADDRESS                 METHOD\n\n# \"local\" is for Unix domain socket connections only\nlocal   all             all                                     trust\n# IPv4 local connections:\nhost    all             all             127.0.0.1\/32            scram-sha-256\n<span style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">host    all             all             0.0.0.0\/24              md5\n<\/span># IPv6 local connections:\nhost    all             all             ::1\/128                 scram-sha-256\n<span style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">host    all             all             0.0.0.0\/0               md5<\/span><\/code><\/pre>\n\n\n\n<p>Now allow PostgreSQL to listen on * by editing the below file.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo vim \/etc\/postgresql\/14\/main\/postgresql.conf<\/code><\/pre>\n\n\n\n<p>Edit the file as below.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># CONNECTIONS AND AUTHENTICATION\n........\n<span style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">listen_addresses='*'<\/span><\/code><\/pre>\n\n\n\n<p>For the changes made to apply, you need to restart PosgreSQL.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart postgresql\nsudo systemctl enable postgresql<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">5) User Management in PostgreSQL Database<\/h3>\n\n\n\n<p>Now that we have configured everything, let&#8217;s create a superuser for database management. <\/p>\n\n\n\n<p>Connect to the PostgreSQL role.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo -u postgres psql<\/code><\/pre>\n\n\n\n<p>Create a superuser, <strong><em>admin<\/em><\/strong> with password as <strong><em>Passw0rd<\/em><\/strong> as below.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE ROLE <strong><span class=\"has-inline-color has-luminous-vivid-amber-color\">admin<\/span><\/strong> WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD '<span class=\"has-inline-color has-luminous-vivid-amber-color\">Passw0rd<\/span>';<\/code><\/pre>\n\n\n\n<p>Sample Output:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\npostgres=# <em><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">CREATE ROLE admin WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'Passw0rd';<\/mark><\/em>\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-light-green-cyan-color\">CREATE ROLE\n<\/mark>postgres=# <\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Manage application users<\/h4>\n\n\n\n<p>Create a database and grant user privileges to the database. In this guide, we will create a database with the name, test_db and a user test_user with password as <em><strong>dbpassword<\/strong><\/em> as below.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>create database test_db;\ncreate user test_user with encrypted password 'dbpassword';\ngrant all privileges on database test_db to test_user;\n\\q<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Connect to the instance from remote host.<\/h4>\n\n\n\n<p>Verify that the service is running:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ <span class=\"has-inline-color has-pale-pink-color\">ss -tunelp | grep 5432<\/span>\ntcp   LISTEN 0      244          0.0.0.0:5432       0.0.0.0:*    uid:117 ino:30522 sk:d cgroup:\/system.slice\/system-postgresql.slice\/postgresql@14-main.service &lt;-&gt;\ntcp   LISTEN 0      244             &#91;::]:5432          &#91;::]:*    uid:117 ino:30523 sk:e cgroup:\/system.slice\/system-postgresql.slice\/postgresql@14-main.service v6only:1 &lt;-&gt;<\/code><\/pre>\n\n\n\n<p>If you are using ufw, allow port 5432 through the firewall as below.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw allow 5432\/tcp<\/code><\/pre>\n\n\n\n<p>Now we want to connect to the PostgreSQL 14 instance from a remote host. The syntax is as below.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>psql 'postgres:\/\/&lt;<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">username<\/mark>&gt;:&lt;<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">password<\/mark>&gt;@&lt;<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">host<\/mark>&gt;:&lt;<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">port<\/mark>&gt;\/&lt;<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">db<\/mark>&gt;?sslmode=disable'<\/code><\/pre>\n\n\n\n<p>For example, on another host, I&#8217;ll try and connect to my PostgreSQL14 instance using the superuser account as below.<\/p>\n\n\n\n<p>First, install PostgreSQL 14 on the remote host and proceed to access your PostgreSQL14 instance.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>psql 'postgres:\/\/admin:Passw0rd@192.168.205.4:5432\/postgres?sslmode=disable'<\/code><\/pre>\n\n\n\n<p>Sample Output:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"896\" height=\"107\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2021\/10\/How-To-Install-PostgreSQL-14-on-Debian-11-Debian-10.png\" alt=\"\" class=\"wp-image-107661\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2021\/10\/How-To-Install-PostgreSQL-14-on-Debian-11-Debian-10.png 896w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2021\/10\/How-To-Install-PostgreSQL-14-on-Debian-11-Debian-10-300x36.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2021\/10\/How-To-Install-PostgreSQL-14-on-Debian-11-Debian-10-768x92.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2021\/10\/How-To-Install-PostgreSQL-14-on-Debian-11-Debian-10-696x83.png 696w\" sizes=\"auto, (max-width: 896px) 100vw, 896px\" \/><\/figure>\n\n\n\n<p><strong><em>Recommended books:<\/em><\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/computingforgeeks.com\/best-books-to-learn-postgresql-database\/\" target=\"_blank\" rel=\"noreferrer noopener\">Best Books To Learn PostgreSQL Databases<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>We have successfully walked through how to install PostgreSQL 14 on Debian. In addition to that, we have made configurations to PostgreSQL 14 and also accessed it via a remote host. That was enough learning!<\/p>\n\n\n\n<p>See more:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/computingforgeeks.com\/how-to-manage-postgresql-database-with-ansible\/\" target=\"_blank\" rel=\"noreferrer noopener\">How To Manage PostgreSQL Database with Ansible<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/computingforgeeks.com\/best-books-to-learn-postgresql-database\/\" target=\"_blank\" rel=\"noreferrer noopener\">Best Books To Learn PostgreSQL Database<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/computingforgeeks.com\/install-postgresql-13-on-fedora\/\" target=\"_blank\" rel=\"noreferrer noopener\">Install PostgreSQL 13 on Fedora<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/computingforgeeks.com\/how-to-install-postgresql-13-on-centos-7\/\" target=\"_blank\" rel=\"noreferrer noopener\">How To Install PostgreSQL 13 on CentOS 7<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>For over 30 years of existence and active development, PostgreSQL has earned a strong reputation for robustness, reliability, and performance. PostgreSQL is a free and open-source relational database management system. PostgreSQL 14 is the latest release version of this world&#8217;s most advanced open-source database. The latest version, PostgreSQL 14 introduces several new features that help &#8230; <a title=\"How To Install PostgreSQL 14 on Debian 12\/11\/10\" class=\"read-more\" href=\"https:\/\/computingforgeeks.com\/how-to-install-postgresql-14-on-debian\/\" aria-label=\"Read more about How To Install PostgreSQL 14 on Debian 12\/11\/10\">Read more<\/a><\/p>\n","protected":false},"author":21,"featured_media":63742,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[461,26,299,50],"tags":[324,688,36186,36187],"class_list":["post-107654","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-databases","category-debian","category-how-to","category-linux-tutorials","tag-databases","tag-postgresql","tag-postgresql-14","tag-postgresql-14-on-debian"],"_links":{"self":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/107654","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/comments?post=107654"}],"version-history":[{"count":0,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/107654\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/media\/63742"}],"wp:attachment":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/media?parent=107654"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/categories?post=107654"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/tags?post=107654"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}