dae24f6b4c840cf4c6d72fb8b58e1a732030bcd3
[vpp.git] / docs / gettingstarted / installing / centos.rst
1 .. _centos:
2
3 .. toctree::
4
5 Setup the fd.io Repository - Centos 7
6 =====================================
7
8 Update the OS
9 -------------
10
11 Before starting the repository setup, it is a good idea to first update and upgrade
12 the OS; run the following command to update the OS:
13
14 .. code-block:: console
15
16     $ sudo yum update
17
18
19 Point to the Repository
20 -----------------------
21
22 For CentOS based systems, there are two respositories to pull VPP binaries from:
23
24 * CentOS NFV SIG Repository
25 * Nexus Repository
26
27
28 CentOS NFV SIG Repository
29 ^^^^^^^^^^^^^^^^^^^^^^^^^
30
31 VPP is not in the official CentOS 7 distro; however, CentOS has Special
32 Interest Groups (SIG), which are smaller groups within the CentOS community that
33 focus on a small set of issues. The CentOS NFV (Network Function Virtualization)
34 SIG was created to provide a CentOS-based stack that will serve as a platform
35
36 To install released packages from the CentOS NFV SIG Repository on an updated
37 Centos 7 system, first, install the CentOS NFV SIG FIDO repo file by running the
38 following command:
39
40 .. code-block:: console
41
42     $ sudo yum install centos-release-fdio
43
44 then **'Install VPP RPMs'**, as described below.
45
46 This will install the latest VPP version from the repository. To install an
47 older version, once the CentOS NFV SIG FDIO repo file has been installed, list
48 the stored versions:
49
50 .. code-block:: console
51
52     $ sudo yum --showduplicates list vpp* | expand
53     Loaded plugins: fastestmirror
54     Loading mirror speeds from cached hostfile
55      * base: repos-va.psychz.net
56      * epel: download-ib01.fedoraproject.org
57      * extras: mirror.siena.edu
58      * updates: repo1.ash.innoscale.net
59     Available Packages
60     vpp.x86_64                                17.10-1                    centos-fdio
61     vpp.x86_64                                18.01.1-1                  centos-fdio
62     vpp.x86_64                                18.01.2-1                  centos-fdio
63     vpp.x86_64                                18.04-1                    centos-fdio
64     vpp-api-java.x86_64                       17.10-1                    centos-fdio
65     vpp-api-java.x86_64                       18.01.1-1                  centos-fdio
66     vpp-api-java.x86_64                       18.01.2-1                  centos-fdio
67     vpp-api-java.x86_64                       18.04-1                    centos-fdio
68     vpp-api-lua.x86_64                        17.10-1                    centos-fdio
69     vpp-api-lua.x86_64                        18.01.1-1                  centos-fdio
70     vpp-api-lua.x86_64                        18.01.2-1                  centos-fdio
71     vpp-api-lua.x86_64                        18.04-1                    centos-fdio
72     vpp-api-python.x86_64                     17.10-1                    centos-fdio
73     vpp-api-python.x86_64                     18.01.1-1                  centos-fdio
74     vpp-api-python.x86_64                     18.01.2-1                  centos-fdio
75     vpp-api-python.x86_64                     18.04-1                    centos-fdio
76     vpp-devel.x86_64                          17.10-1                    centos-fdio
77     vpp-devel.x86_64                          18.01.1-1                  centos-fdio
78     vpp-devel.x86_64                          18.01.2-1                  centos-fdio
79     vpp-devel.x86_64                          18.04-1                    centos-fdio
80     vpp-lib.x86_64                            17.10-1                    centos-fdio
81     vpp-lib.x86_64                            18.01.1-1                  centos-fdio
82     vpp-lib.x86_64                            18.01.2-1                  centos-fdio
83     vpp-lib.x86_64                            18.04-1                    centos-fdio
84     vpp-plugins.x86_64                        17.10-1                    centos-fdio
85     vpp-plugins.x86_64                        18.01.1-1                  centos-fdio
86     vpp-plugins.x86_64                        18.01.2-1                  centos-fdio
87     vpp-plugins.x86_64                        18.04-1                    centos-fdio
88     vpp-selinux-policy.x86_64                 18.04-1                    centos-fdio
89
90 Then install a particular version:
91
92 .. code-block:: console
93
94     $ sudo yum install vpp-17.10-1.x86_64
95
96
97 Nexus Repository
98 ^^^^^^^^^^^^^^^^
99
100 Build artifacts are also posted to a FD.io Nexus Repository. This includes
101 official point releases, as well as nightly builds. To use any of these build
102 artifacts, create a file *'/etc/yum.repos.d/fdio-release.repo'* with the
103 content that points to the version needed. Below are some common examples of
104 the content needed:
105
106
107 VPP Latest Release
108 """"""""""""""""""
109
110 To allow *'yum'* access to the official VPP releases, create the file
111 *'/etc/yum.repos.d/fdio-release.repo'* with the following content.
112
113 .. code-block:: console
114
115    $ cat /etc/yum.repos.d/fdio-release.repo
116    [fdio-release]
117    name=fd.io release branch latest merge
118    baseurl=https://nexus.fd.io/content/repositories/fd.io.centos7/
119    enabled=1
120    gpgcheck=0
121
122 The *'yum install vpp'* command will install the most recent release. To
123 install older releases, run the following command to get the list of releases
124 provided.
125
126 .. code-block:: console
127
128    $ sudo yum --showduplicates list vpp* | expand
129
130 Then choose the release to install. See **'CentOS NFV SIG Repository'** for
131 sample *'yum --showduplicates list'* output and an example of installing a
132 particular version of the RPMs.
133
134 VPP Stable Branch
135 """""""""""""""""""
136
137 To allow *yum* access to the build artifacts for a VPP stable branch, create
138 the file *'/etc/yum.repos.d/fdio-release.repo'* with the following content.
139
140 .. code-block:: console
141
142    $ cat /etc/yum.repos.d/fdio-release.repo
143    [fdio-stable-1804]
144    name=fd.io stable/1804 branch latest merge
145    baseurl=https://nexus.fd.io/content/repositories/fd.io.stable.1804.centos7/
146    enabled=1
147    gpgcheck=0
148
149 For other stable branches, replace the *'1804'* from the above content with the
150 desired release. Examples: 1606, 1609, 1701, 1704, 1707, 1710, 1804, 1807
151
152 The *'yum install vpp'* command will install the most recent build on the
153 branch, not the latest offical release. Run the following command to get the
154 list of images produce by the branch:
155
156 .. code-block:: console
157
158    $ sudo yum --showduplicates list vpp* | expand
159
160 Then choose the image to install. See **'CentOS NFV SIG Repository'** for
161 sample *'yum --showduplicates list'* output and an example of installing a
162 particular version of the RPMs.
163
164
165 VPP Master Branch
166 """""""""""""""""""
167
168 To allow *yum* access to the nightly builds from the VPP master branch, create
169 the file *'/etc/yum.repos.d/fdio-release.repo'* with the following content.
170
171 .. code-block:: console
172
173    $ cat /etc/yum.repos.d/fdio-release.repo
174    [fdio-master]
175    name=fd.io master branch latest merge
176    baseurl=https://nexus.fd.io/content/repositories/fd.io.master.centos7/
177    enabled=1
178    gpgcheck=0
179
180 The *'yum install vpp'* command will install the most recent build on the
181 branch. Run the following command to get the list of images produce by the
182 branch.
183
184 .. code-block:: console
185
186    $ sudo yum --showduplicates list vpp* | expand
187
188 Then choose the image to install. See **'CentOS NFV SIG Repository'** for
189 sample *'yum --showduplicates list'* output and an example of installing a
190 particular version of the RPMs.
191
192
193 Install VPP RPMs
194 ================
195
196 To install the VPP packet engine, run the following command:
197
198 .. code-block:: console
199
200    $ sudo yum install vpp
201
202 The *vpp* RPM depends on the *vpp-lib* and *vpp-selinux-policy*
203 RPMs, so they will be installed as well.
204
205 .. note::
206
207     The *vpp-selinux-policy* will not enable SELinux on the system. It
208     will install a Custom VPP SELinux policy that will be used if SELinux is
209     enabled at any time.
210
211 There are additional packages that are optional. These packages can be
212 combined with the command above and installed all at once, or installed as
213 needed: 
214
215 .. code-block:: console
216
217    $ sudo yum install vpp-plugins vpp-devel vpp-api-python vpp-api-lua vpp-api-java
218
219 Starting VPP
220 ============
221
222 Once VPP is installed on the system, to run VPP as a systemd service on CentOS,
223 run the following command:
224
225 .. code-block:: console
226
227    $ sudo systemctl start vpp
228
229 Then to enable VPP to start on system reboot, run the following command:
230
231 .. code-block:: console
232
233    $ sudo systemctl enable vpp
234
235 Outside of running VPP as a systemd service, VPP can be started manually or
236 made to run within GDB for debugging. See :ref:`running` for more details and
237 ways to tailor VPP to a specific system.
238
239
240 Uninstall the VPP RPMs
241 ======================
242
243 To uninstall a VPP RPM, run the following command:
244
245 .. code-block:: console
246
247    $ sudo yum autoremove vpp*