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