--- layout: default navsection: sdk navmenu: Perl title: "Installation" ... {% comment %} Copyright (C) The Arvados Authors. All rights reserved. SPDX-License-Identifier: CC-BY-SA-3.0 {% endcomment %} The Perl SDK provides a generic set of wrappers so you can make API calls easily. It should be treated as alpha/experimental. Currently, limitations include: * Verbose syntax. * No native Keep client. * No CPAN package. h3. Installation h4. Option 1: Install from distribution packages First, "add the appropriate package repository for your distribution":{{ site.baseurl }}/install/install-manual-prerequisites.html#repos. On Debian-based systems: <notextile> <pre><code>~$ <span class="userinput">sudo apt-get install libjson-perl libio-socket-ssl-perl libwww-perl libipc-system-simple-perl libarvados-perl</code> </code></pre> </notextile> On Red Hat-based systems: <notextile> <pre><code>~$ <span class="userinput">sudo yum install perl-ExtUtils-MakeMaker perl-JSON perl-IO-Socket-SSL perl-Crypt-SSLeay perl-WWW-Curl libarvados-perl</code> </code></pre> </notextile> h4. Option 2: Install from source First, install dependencies from your distribution. Refer to the package lists above, but don't install @libarvados-perl@. Then run the following: <notextile> <pre><code>~$ <span class="userinput">git clone https://github.com/curoverse/arvados.git</span> ~$ <span class="userinput">cd arvados/sdk/perl</span> ~$ <span class="userinput">perl Makefile.PL</span> ~$ <span class="userinput">sudo make install</span> </code></pre> </notextile> h3. Test installation If the SDK is installed, @perl -MArvados -e ''@ should produce no errors. If your @ARVADOS_API_HOST@ and @ARVADOS_API_TOKEN@ environment variables are set up correctly (see "api-tokens":{{site.baseurl}}/user/reference/api-tokens.html for details), the following test script should work: <notextile> <pre>~$ <code class="userinput">perl <<'EOF' use Arvados; my $arv = Arvados->new('apiVersion' => 'v1'); my $me = $arv->{'users'}->{'current'}->execute; print ("arvados.v1.users.current.full_name = '", $me->{'full_name'}, "'\n"); EOF</code> arvados.v1.users.current.full_name = 'Your Name' </pre> </notextile>