1Pinto::Manual::InstalliUnsge(r3)Contributed Perl DocumenPtianttioo:n:Manual::Installing(3)
2
3
4
6 Pinto::Manual::Installing - Tips for installing Pinto
7
9 version 0.14
10
12 For the impatient...
13
14 curl -L http://getpinto.stratopan.com | bash
15 source ~/opt/local/pinto/etc/bashrc
16
17 And then possibly...
18
19 echo source ~/opt/local/pinto/etc/bashrc >> ~/.bashrc
20
22 For most situations, Pinto is more like an application than a library.
23 It is a tool that you use to develop and manage your code, but Pinto
24 itself is not part of your code. Pinto also has a lot of dependencies,
25 some of which may conflict with or complicate your code.
26
27 Pinto can also serve as the backend supporting a daemonized Starman
28 server exposed to the wilds of the internet. Doing so opens the door
29 to many additional security concerns. We suggest below some practices
30 we hope will serve to minimize the risks of doing so.
31
33 For the reasons above, I recommend installing Pinto as a stand-alone
34 application in its own sandbox. That way, it doesn't pollute your
35 environment with its dependencies. Nor will you pollute Pinto with
36 changes to your environment, so Pinto will function even when your
37 other environment dependencies are broken. And hopefully, you can use
38 Pinto to help fix whatever broke!
39
40 Step 1: Run the pinto installer script
41 The installer script at <http://getpinto.stratopan.com> is mostly just
42 a wrapper around cpanm, which installs pinto in a self-contained
43 directory:
44
45 # If you use curl...
46 curl -L http://getpinto.stratopan.com | bash
47
48 # If you use wget...
49 wget -O - http://getpinto.stratopan.com | bash
50
51 All the dependent modules will come from a curated repository on
52 Stratopan <http://stratopan.com>. These aren't always the latest
53 versions of things, but they are versions that I know will work.
54
55 Step 2: Set up the pinto environment
56 The pinto installer generates a setup script for you. By default, it
57 is located at ~/opt/local/pinto/etc/bashrc. To load that setup into
58 your current shell, just give this command:
59
60 source ~/opt/local/pinto/etc/bashrc
61
62 To make these settings part of your everyday shell environment, just
63 add that last command to your ~/.profile or ~/.bashrc or whatever setup
64 file is appropriate for your shell.
65
66 If you wish to customize any of the other environment variables that
67 pinto uses, you can place those commands in ~/.pintorc. If that file
68 exists, the setup script will source them as well. See pinto for a
69 list of the relevant environment variables.
70
72 If you will be running the pintod daemon exposed to the internet, it is
73 suggested that you assume root privileges and proceed as follows:
74
75 (1) create a pinto user like so:
76
77 adduser --system --home /opt/local/pinto --shell /bin/false \
78 --disabled-login --group pinto
79
80 (2) set some environmental variables:
81
82 export PINTO_HOME=/opt/local/pinto
83 export PINTO_REPOSITORY_ROOT=/var/pinto
84
85 check that the exports took with `env`.
86
87 (3) run the installer as described above, and source the environmental
88 variables to facilitate the steps of setting up the repository.
89
90 (4) choose an authentication backend and install it like so:
91
92 cpanm -L $PINTO_HOME Authen::Simple::Kerberos
93
94 to review your options see Authen::Simple.
95
96 (5) choose an appropriate startup script and install it:
97
98 cp $PINTO_HOME/etc/init.d/pintod.debian /etc/init.d/pintod
99
100 update-rc.d pintod start 50 2 3 4 5 . stop 20 0 1 6 .
101
102 AN IMPORTANT NOTE ABOUT SECURITY
103 Currently daemonizing the pintod server will run the starman workers as
104 root. We hope to soon have the pintod daemon drop its privileges after
105 initiating the master and before spawning the workers, so that the
106 workers will run as the pinto user. Until that feature is in place,
107 pinto repository administrators are urged to keep their installations
108 safely behind firewalls, protected from the potentially hostile user.
109
111 If you're going to be hacking on Pinto itself, or want to try building
112 on the API directly, then you can install Pinto straight into your
113 development environment, just like you would do for any other module.
114
115 Just beware that Pinto has lots of dependencies. And if you
116 subsequently upgrade any of those dependencies to something that breaks
117 Pinto, then you might find yourself in a pickle. The whole point of
118 Pinto is to help you manage your dependencies, so if you break Pinto,
119 it won't be able to help you.
120
122 Naturally, installation procedures will vary from one environment to
123 another. If this procedure doesn't work for you, or if you'd like to
124 suggest a procedure for a different environment (e.g. Windows,
125 Perlbrew, Strawberry Perl, etc.), then please contact me. Your
126 contributions would be greatly appreciated.
127
129 Pinto::Manual::QuickStart
130
131 Pinto::Manual::Tutorial
132
133 Pinto (the library)
134
135 pinto (the command)
136
138 Jeffrey Ryan Thalhammer <jeff@stratopan.com>
139
141 This software is copyright (c) 2015 by Jeffrey Ryan Thalhammer.
142
143 This is free software; you can redistribute it and/or modify it under
144 the same terms as the Perl 5 programming language system itself.
145
146
147
148perl v5.38.0 2023-07-21 Pinto::Manual::Installing(3)