{"id":74,"date":"2010-10-10T17:37:09","date_gmt":"2010-10-10T16:37:09","guid":{"rendered":"http:\/\/lackovic.wordpress.com\/?p=74"},"modified":"2010-10-10T17:37:09","modified_gmt":"2010-10-10T16:37:09","slug":"globus-on-ubuntu","status":"publish","type":"post","link":"https:\/\/scalab.dimes.unical.it\/lackovic\/globus-on-ubuntu\/","title":{"rendered":"Install Globus Toolkit 4.0.8 on Ubuntu 10.04 LTS"},"content":{"rendered":"<p style=\"text-align:center\"><a href=\"http:\/\/www.globus.org\/toolkit\/\"><img loading=\"lazy\" class=\"size-full wp-image-82 aligncenter\" title=\"Globus Toolkit\" src=\"http:\/\/scalab.dimes.unical.it\/lackovic\/wp-content\/uploads\/sites\/2\/2010\/02\/gt_logo21.png\" alt=\"\" width=\"300\" height=\"79\" \/><\/a><\/p>\n<p style=\"text-align:center\"><a href=\"http:\/\/www.ubuntu.com\/\"><img loading=\"lazy\" class=\"size-full wp-image-469 aligncenter\" title=\"Ubuntu 10.04\" src=\"http:\/\/scalab.dimes.unical.it\/lackovic\/wp-content\/uploads\/sites\/2\/2010\/04\/ubuntu10.png\" alt=\"Ubuntu 10.04\" width=\"300\" height=\"67\" \/><\/a><\/p>\n<p><strong>Disclosure<\/strong>: this tutorial is intended for legacy applications which mandatory need the version 4.0.x of Globus Toolkit. If you don&#8217;t have an impelling reason to install that particular version, it is highly recommended that you install the latest version available of Globus Toolkit from its <a href=\"http:\/\/www.globus.org\/toolkit\/\">official web site<\/a> and follow the <a href=\"http:\/\/www.globus.org\/toolkit\/docs\/latest-stable\/\">installation guide<\/a>\u00a0of the official documentation.<\/p>\n<p>To install Ubuntu 10.04 server, download its iso from <a href=\"http:\/\/releases.ubuntu.com\/lucid\/\">here<\/a> and create a startup USB drive using <a href=\"http:\/\/unetbootin.sourceforge.net\/\">UNetbootin<\/a>\u00a0(don&#8217;t use Startup Disk Creator, its latest version\u00a0is not compatible with Ubuntu 10.04).\u00a0Once booted from the USB drive, at the Unetbootin grub menu, scroll down to the same \u201cInstall Ubuntu server\u201d option and press TAB.\u00a0Bring your cursor to the end of this line and press space once, enter<\/p>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\">cdrom-detect\/try-usb=true<\/pre>\n<p>and press enter to start the installation.<\/p>\n<ul>\n<li><strong>(1)<\/strong> if you want to build Globus Toolkit download <strong>gt4.0.8-all-source-installer<\/strong> from:<\/li>\n<\/ul>\n<p style=\"padding-left:60px\"><a href=\"http:\/\/www.globus.org\/toolkit\/downloads\/4.0.8\/\">http:\/\/www.globus.org\/toolkit\/downloads\/4.0.8\/<\/a><\/p>\n<p style=\"padding-left:60px\">alternatively,\u00a0if you want to save about one hour, you can use the prebuilt binary installer: you can find it in the right menu of this page. Either way\u00a0proceed with the next step;<\/p>\n<ul>\n<li><strong>(2)<\/strong> run:<\/li>\n<\/ul>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\"><strong>root@host:~#<\/strong>\napt-get update\n\napt-get install vim ant build-essential libpod-* postgresql \nxinetd zlib1g-dev libiodbc2 libiodbc2-dev libxml-parser-perl libxml2-dev<\/pre>\n<ul>\n<li><strong>(3)<\/strong>\u00a0<a href=\"https:\/\/lackovic.wordpress.com\/2012\/02\/28\/how-to-install-oracle-java-6-on-ubuntu-11-10\/\">install Oracle Java 6 JDK<\/a>;<\/li>\n<li><strong>(4) <\/strong>add the following lines to your \/etc\/profile<\/li>\n<\/ul>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\">export JAVA_HOME=\/usr\/lib\/jvm\/jdk1.6.0_34\nexport ANT_HOME=\/usr\/share\/ant\nexport GLOBUS_LOCATION=\/usr\/local\/globus-4.0.8\nexport GLOBUS_OPTIONS=\"-Xms512M -Xmx2048M\"\nsource $GLOBUS_LOCATION\/etc\/globus-user-env.sh\nexport PATH=$ANT_HOME\/bin:$JAVA_HOME\/bin:$PATH:$GLOBUS_LOCATION\/bin<\/pre>\n<p style=\"padding-left:30px\">then log out and back in;<\/p>\n<ul>\n<li><strong>(5) <\/strong>run:<\/li>\n<\/ul>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\"><strong>root@host:~# <\/strong>service postgresql start<\/pre>\n<ul>\n<li><strong>(6) <\/strong>open &#8220;\/etc\/postgresql\/8.4\/main\/postgresql.conf&#8221;, uncomment the line beginning with &#8220;listen_addresses&#8221; and set it to listen to all addresses in the following way:<\/li>\n<\/ul>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\">listen_addresses = '*'<\/pre>\n<ul>\n<li><strong>(7) <\/strong>open &#8220;\/etc\/postgresql\/8.4\/main\/pg_hba.conf&#8221; and add the following line at the bottom:<\/li>\n<\/ul>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\">host rftDatabase \"globus\" \"x.x.x.x\" 255.255.255.255 md5<\/pre>\n<p style=\"text-align:left;padding-left:30px\">where &#8220;x.x.x.x&#8221; is your public IP address;<\/p>\n<ul>\n<li><strong>(8)\u00a0<\/strong>add a non-privilged user with &#8220;globus&#8221; as username by runnng:<\/li>\n<\/ul>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\"><strong>root@host:~# <\/strong>adduser globus<\/pre>\n<p style=\"text-align:left;padding-left:30px\">then add the globus group to all the users you want to use the globus container from:<\/p>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\"><strong>root@host:~# <\/strong>adduser username globus<\/pre>\n<p style=\"text-align:left;padding-left:30px\">then log out and back in;<\/p>\n<ul>\n<li><strong>(9)<\/strong> run:<\/li>\n<\/ul>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\"><strong>root@host:~# <\/strong>service postgresql restart<\/pre>\n<ul>\n<li><strong>(10)<\/strong> if you have downloaded the <strong><em>binary installer<\/em><\/strong> then extract it into \/usr\/local\/ and run:<\/li>\n<\/ul>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\"><strong>root@host:~# <\/strong>chown globus. -R \/usr\/local\/globus-4.0.8\/<\/pre>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\"><strong>globus@host:~$ <\/strong>$GLOBUS_LOCATION\/sbin\/gpt-postinstall<\/pre>\n<p style=\"padding-left:30px\">and jump to step (17); if you have downloaded the <em><strong>source installer<\/strong><\/em> then\u00a0proceed with the next step;<\/p>\n<ul>\n<li><strong>(11)<\/strong> run:<\/li>\n<\/ul>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\"><strong>root@host:~# <\/strong>\nmkdir \/usr\/local\/globus-4.0.8\/\nchown globus. \/usr\/local\/globus-4.0.8\/<\/pre>\n<ul>\n<li><strong>(12)<\/strong> extract the content of <strong>gt4.0.8-all-source-installer<\/strong> you have downloaded into globus&#8217; home directory;<\/li>\n<li><strong>(13)<\/strong> log in as globus user or run from terminal &#8220;su &#8211; globus&#8221;;<\/li>\n<li><strong>(14)<\/strong> enter the directory where you extracted the content of <strong>gt4.0.8-all-source-installer <\/strong>and run:<\/li>\n<\/ul>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\"><strong>globus@host:~$ <\/strong>\n.\/configure --prefix=\/usr\/local\/globus-4.0.8\/ --with-iodbc=\/usr\/lib\nmake | tee installer.log<\/pre>\n<p style=\"text-align:left;padding-left:30px\">this process may take a few hours, depending on your hardware configuration (about one hour on an Intel\u00a0Core 2 Duo CPU T6500 at 2.10GHz);<\/p>\n<ul>\n<li><strong>(15)<\/strong> make a tarfile of \/usr\/local\/globus-4.0.8\/ so that you won&#8217;t have to rebuild\u00a0it to install it on other machines; you can untar it on other machines and run $GLOBUS_LOCATION\/sbin\/gpt-postinstall<\/li>\n<li><strong>(16)<\/strong> run:<\/li>\n<\/ul>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\"><strong>globus@host:~$ <\/strong>make install<\/pre>\n<ul>\n<li><strong>(17) <\/strong>get the\u00a0&#8220;distribution\u00a0package&#8221; (a tar.gz file) from your\u00a0Certification Authority (CA). If you don&#8217;t have one you will need to\u00a0set up a CA in one of your machine following\u00a0<a href=\"http:\/\/globus.org\/toolkit\/docs\/4.0\/admin\/docbook\/quickstart.html#q-security\">these instructions<\/a>.\u00a0Once you have the distribution\u00a0package copy it on all your server machines and run the following\u00a0four commands:<\/li>\n<\/ul>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\"><strong>root@host:~#<\/strong>\n$GLOBUS_LOCATION\/sbin\/gpt-build your_ca.tar.gz\n$GLOBUS_LOCATION\/sbin\/gpt-postinstall\n$GLOBUS_LOCATION\/setup\/your_ca\/setup-gsi\n$GLOBUS_LOCATION\/bin\/grid-default-ca<\/pre>\n<p style=\"padding-left:30px\">All the grid nodes on which you want to be able to submit jobs must have installed the <strong>public key<\/strong> file (e.g. 0a298c77.0) and the <strong>policy file<\/strong> (e.g. 0a298c77.signing_policy) of the CA into the directory \/etc\/grid-security\/certificates;<\/p>\n<ul>\n<li><strong>(18)<\/strong> run:<\/li>\n<\/ul>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\"><strong>root@host:~#<\/strong>\ncd \/etc\/grid-security\/\ncp\u00a0hostcert.pem\u00a0containercert.pem\ncp\u00a0hostkey.pem\u00a0containerkey.pem\nchown globus.\u00a0container*\nchown root.\u00a0hostcert.pem\u00a0hostkey.pem\nchmod 644\u00a0containercert.pem\u00a0hostcert.pem\nchmod 400\u00a0containerkey.pem\u00a0hostkey.pem<\/pre>\n<ul>\n<li><strong>(19)<\/strong> still in the \/etc\/grid-security\/ directory create a file named &#8220;grid-mapfile&#8221; and paste into it the <strong>users and hosts<\/strong> of your grid, like in the following example:<\/li>\n<\/ul>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\">\"\/O=Grid\/OU=Monty Python\/CN=Graham Chapman\" graham\n\"\/O=Grid\/OU=Monty Python\/CN=John Cleese\" john\n\"\/O=Grid\/OU=Monty Python\/CN=Terry Gilliam\" terry\n\"\/O=Grid\/OU=Monty Python\/CN=Eric Idle\" eric\n\"\/O=Grid\/OU=Monty Python\/CN=Terry Jones\" terry\n\"\/O=Grid\/OU=Monty Python\/CN=Michael Palin\" michael\n\n\"\/O=Grid\/CN=host\/mercury.domain.com\" globus\n\"\/O=Grid\/CN=host\/venus.domain.com\" globus\n\"\/O=Grid\/CN=host\/earth.domain.com\" globus\n\"\/O=Grid\/CN=host\/mars.domain.com\" globus<\/pre>\n<p style=\"padding-left:30px\">then run:<\/p>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\"><strong>root@host:~# <\/strong>\nchown globus.\u00a0\/etc\/grid-security\/grid-mapfile\nchmod 660\u00a0\/etc\/grid-security\/grid-mapfile\ngrid-mapfile-check-consistency<\/pre>\n<ul>\n<li><strong>(20)<\/strong>\u00a0make sure your hostname is associated with your public IP. The following entry which is created by default in your \/etc\/hosts:<\/li>\n<\/ul>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\">127.0.1.1 hostname<\/pre>\n<p style=\"padding-left:30px\">should be removed, if your hostname is already mapped to an IP in your DNS server; if it&#8217;s not mapped then it should be modified into:<\/p>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\">x.x.x.x hostname<\/pre>\n<p style=\"padding-left:30px\">where x.x.x.x is your public IP. Furthermore, make sure your parent domain is listed and your DNS servers are properly set in your \/etc\/resolv.conf<\/p>\n<ul>\n<li><strong>(21)<\/strong> create the file \/etc\/xinetd.d\/gridftp and paste into it the following code:<\/li>\n<\/ul>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\">service gsiftp\n{\ninstances       = 100\nsocket_type     = stream\nwait            = no\nuser            = root\nenv             += GLOBUS_LOCATION=\/usr\/local\/globus-4.0.8\nenv             += LD_LIBRARY_PATH=\/usr\/local\/globus-4.0.8\/lib\nenv             += GLOBUS_TCP_PORT_RANGE=50000,55000\nserver          = \/usr\/local\/globus-4.0.8\/sbin\/globus-gridftp-server\nserver_args     = -i\nlog_on_success  += DURATION\nnice            = 10\ndisable         = no\n}<\/pre>\n<ul>\n<li><strong>(22)<\/strong> run:<\/li>\n<\/ul>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\"><strong>root@host:~#<\/strong> service xinetd restart<\/pre>\n<ul>\n<li><strong>(23)<\/strong> now to configure RFT run:<\/li>\n<\/ul>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\"><strong>root@host:~#<\/strong> su postgres -c \"createuser -P globus\"<\/pre>\n<p style=\"padding-left:30px\">enter the globus user password when prompted and then answer in the following way to the following questions:<\/p>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\">Shall the new role be a superuser? (y\/n) n\nShall the new role be allowed to create databases? (y\/n) y\nShall the new role be allowed to create more new roles? (y\/n) n<\/pre>\n<ul>\n<li><strong>(24)<\/strong> run:<\/li>\n<\/ul>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\"><strong>globus@host:~$<\/strong>\ncreatedb rftDatabase\npsql -d rftDatabase -f $GLOBUS_LOCATION\/share\/globus_wsrf_rft\/rft_schema.sql<\/pre>\n<ul>\n<li><strong>(25)\u00a0<\/strong>open $GLOBUS_LOCATION\/etc\/globus_wsrf_rft\/jndi-config.xml (if it&#8217;s missing run as user globus the command $GLOBUS_LOCATION\/sbin\/gpt-postinstall). Look into the &#8220;dbConfiguration&#8221; section:\u00a0 make sure the userName value is not &#8220;root&#8221; but &#8220;globus&#8221;, then\u00a0change the content of &#8220;password&#8221; from &#8220;foo&#8221; to the\u00a0password for the globus user you have previously set in postgres. Also ensure that &#8220;connectionString&#8221; contains the fully qualified domain name of your host (e.g. &#8220;jdbc:postgresql:\/\/your.host.full.domain.com\/rftDatabase&#8221;).<\/li>\n<li><strong>(26)<\/strong> to check whether RFT is working, start a globus container with:<\/li>\n<\/ul>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\"><strong>globus@host:~$<\/strong> globus-start-container<\/pre>\n<p style=\"padding-left:30px\">and leave it running. In a separate terminal run:<\/p>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\"><strong>user@host:~$<\/strong> vim \/tmp\/rft.xfr<\/pre>\n<p style=\"padding-left:30px\">Copy and paste the following code, making sure to modify &#8220;container.hostname&#8221; with your container hostname or IP:<\/p>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\">true\n16000\n16000\nfalse\n1\ntrue\n1\nnull\nnull\nfalse\n10\ngsiftp:\/\/container.hostname:2811\/etc\/group\ngsiftp:\/\/container.hostname:2811\/tmp\/rftTest_Done.tmp<\/pre>\n<p style=\"padding-left:30px\">then run:<\/p>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\"><strong>user@host:~$<\/strong>\ngrid-proxy-init\nrft -h container.hostname -f \/tmp\/rft.xfr<\/pre>\n<p style=\"padding-left:30px\">To check whether the transfer has been correctly performed run:<\/p>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\"><strong>user@host:~$<\/strong> diff \/etc\/group \/tmp\/rftTest_Done.tmp<\/pre>\n<ul>\n<li><strong>(27)<\/strong> now to configure GRAM run:<\/li>\n<\/ul>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\"><strong>globus@host:~$<\/strong>\nvim \/usr\/local\/globus-4.0.8\/lib\/perl\/Globus\/GRAM\/ExtensionsHandler.pm<\/pre>\n<p style=\"padding-left:30px\">and remove the % character in front of $attributes at lines 161 and 174.<\/p>\n<ul>\n<li><strong>(28)<\/strong> to give the user globus the privileges to run tasks on behalf of another user run:<\/li>\n<\/ul>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\"><strong>root@host:~#<\/strong> visudo<\/pre>\n<p style=\"padding-left:30px\">and paste at the bottom the following two lines:<\/p>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\">globus  ALL=(username1,username2) NOPASSWD: \n\/usr\/local\/globus-4.0.8\/libexec\/globus-gridmap-and-execute -g \n\/etc\/grid-security\/grid-mapfile \n\/usr\/local\/globus-4.0.8\/libexec\/globus-job-manager-script.pl *\n\nglobus  ALL=(username1,username2) NOPASSWD: \n\/usr\/local\/globus-4.0.8\/libexec\/globus-gridmap-and-execute -g \n\/etc\/grid-security\/grid-mapfile \n\/usr\/local\/globus-4.0.8\/libexec\/globus-gram-local-proxy-tool *<\/pre>\n<p style=\"padding-left:30px\">where the user names &#8220;username1&#8221; and &#8220;username2&#8221; are to be substituted with a comma-separated list of usernames that you actually want the user &#8220;globus&#8221; to be able to sudo to (that is all the users of your grid). Also, make sure these two entries are each on a single line. If there are any line breaks within an entry then it won&#8217;t work;<\/p>\n<ul>\n<li><strong>(29)<\/strong> to check whether GRAM is working, start a globus container with:<\/li>\n<\/ul>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\"><strong>globus@host:~$<\/strong> globus-start-container<\/pre>\n<p style=\"padding-left:30px\">and leave it running. In a separate terminal run:<\/p>\n<pre style=\"color:black;font:normal normal normal 12px\/18px Consolas, Monaco, 'Courier New', Courier, monospace\"><strong>user@host:~$ globusrun-ws -submit -c \/bin\/true<\/strong>\nSubmitting job...Done.\nJob ID: uuid:3304e3f2-55f2-11da-8b8f-00d0b7b7c0bc\nTermination time: 11\/16\/2005 16:09 GMT\nCurrent job state: Active\nCurrent job state: CleanUp\nCurrent job state: Done\nDestroying job...Done.\n\n<strong>user@host:~$ echo $? <\/strong>\n0\n\n<strong>user@host:~$ globusrun-ws -submit -c \/bin\/false<\/strong>\nSubmitting job...Done.\nJob ID: uuid:456b7c9a-55f2-11da-9b0d-00d0b7b7c0bc\nTermination time: 11\/16\/2005 16:09 GMT\nCurrent job state: Active\nCurrent job state: CleanUp\nCurrent job state: Done\nDestroying job...Done.\n\n<strong>user@host:~$ echo $? <\/strong>\n1<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Disclosure: this tutorial is intended for legacy applications which mandatory need the version 4.0.x of Globus Toolkit. If you don&#8217;t have an impelling reason to install that particular version, it is highly recommended that you install the latest version available of Globus Toolkit from its official web site and follow the installation guide\u00a0of the official &hellip; <a href=\"https:\/\/scalab.dimes.unical.it\/lackovic\/globus-on-ubuntu\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Install Globus Toolkit 4.0.8 on Ubuntu 10.04 LTS<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3,4,9],"tags":[],"aioseo_notices":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/scalab.dimes.unical.it\/lackovic\/wp-json\/wp\/v2\/posts\/74"}],"collection":[{"href":"https:\/\/scalab.dimes.unical.it\/lackovic\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scalab.dimes.unical.it\/lackovic\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scalab.dimes.unical.it\/lackovic\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/scalab.dimes.unical.it\/lackovic\/wp-json\/wp\/v2\/comments?post=74"}],"version-history":[{"count":0,"href":"https:\/\/scalab.dimes.unical.it\/lackovic\/wp-json\/wp\/v2\/posts\/74\/revisions"}],"wp:attachment":[{"href":"https:\/\/scalab.dimes.unical.it\/lackovic\/wp-json\/wp\/v2\/media?parent=74"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scalab.dimes.unical.it\/lackovic\/wp-json\/wp\/v2\/categories?post=74"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scalab.dimes.unical.it\/lackovic\/wp-json\/wp\/v2\/tags?post=74"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}