mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-06-17 11:37:34 +00:00
doc: move rpm build doc to dev docs
------------{ <(O.O)> }------------ Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
This commit is contained in:
parent
924947e412
commit
9251d1f596
@ -181,7 +181,6 @@ EXTRA_DIST += \
|
|||||||
redhat/frr.logrotate \
|
redhat/frr.logrotate \
|
||||||
redhat/frr.pam \
|
redhat/frr.pam \
|
||||||
redhat/frr.spec \
|
redhat/frr.spec \
|
||||||
redhat/README.rpm_build.md \
|
|
||||||
\
|
\
|
||||||
snapcraft/snapcraft.yaml \
|
snapcraft/snapcraft.yaml \
|
||||||
snapcraft/README.snap_build.md \
|
snapcraft/README.snap_build.md \
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
|
.. _building-centos6:
|
||||||
|
|
||||||
CentOS 6
|
CentOS 6
|
||||||
========================================
|
========================================
|
||||||
|
|
||||||
(As an alternative to this installation, you may prefer to create a FRR
|
This document describes installation from source. If you want to build an RPM,
|
||||||
rpm package yourself and install that package instead. See instructions
|
see :ref:`packaging-redhat`.
|
||||||
in redhat/README.rpm\_build.md on how to build a rpm package)
|
|
||||||
|
|
||||||
Instructions are tested with ``CentOS 6.8`` on ``x86_64`` platform
|
Instructions are tested with ``CentOS 6.8`` on ``x86_64`` platform
|
||||||
|
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
CentOS 7
|
CentOS 7
|
||||||
========================================
|
========================================
|
||||||
|
|
||||||
(As an alternative to this installation, you may prefer to create a FRR
|
This document describes installation from source. If you want to build an RPM,
|
||||||
rpm package yourself and install that package instead. See instructions
|
see :ref:`packaging-redhat`.
|
||||||
in redhat/README.rpm\_build.md on how to build a rpm package)
|
|
||||||
|
|
||||||
CentOS 7 restrictions:
|
CentOS 7 restrictions:
|
||||||
----------------------
|
----------------------
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
Fedora 24
|
Fedora 24
|
||||||
=========================================
|
=========================================
|
||||||
|
|
||||||
(As an alternative to this installation, you may prefer to create a FRR
|
This document describes installation from source. If you want to build an RPM,
|
||||||
rpm package yourself and install that package instead. See instructions
|
see :ref:`packaging-redhat`.
|
||||||
in redhat/README.rpm\_build.md on how to build a rpm package)
|
|
||||||
|
|
||||||
Install required packages
|
Install required packages
|
||||||
-------------------------
|
-------------------------
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
.. _packaging-debian:
|
||||||
|
|
||||||
Packaging Debian
|
Packaging Debian
|
||||||
================
|
================
|
||||||
|
|
||||||
|
85
doc/developer/packaging-redhat.rst
Normal file
85
doc/developer/packaging-redhat.rst
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
.. _packaging-redhat:
|
||||||
|
|
||||||
|
Packaging Red Hat
|
||||||
|
=================
|
||||||
|
|
||||||
|
Tested on CentOS 6, CentOS 7 and Fedora 24.
|
||||||
|
|
||||||
|
1. On CentOS 6, refer to :ref:`building-centos6` for details on installing
|
||||||
|
sufficiently up-to-date package versions to enable building FRR.
|
||||||
|
|
||||||
|
Newer automake/autoconf/bison is only needed to build the RPM and is **not**
|
||||||
|
needed to install the binary RPM package.
|
||||||
|
|
||||||
|
2. Install the build dependencies for your platform. Refer to the
|
||||||
|
platform-specific build documentation on how to do this.
|
||||||
|
|
||||||
|
3. Install the following additional packages::
|
||||||
|
|
||||||
|
yum install rpm-build net-snmp-devel pam-devel libcap-devel
|
||||||
|
|
||||||
|
If your platform uses systemd::
|
||||||
|
|
||||||
|
yum install systemd-devel
|
||||||
|
|
||||||
|
If ``yum`` is not present on your system, use ``dnf`` instead.
|
||||||
|
|
||||||
|
3. Checkout FRR::
|
||||||
|
|
||||||
|
git clone https://github.com/frrouting/frr.git frr
|
||||||
|
|
||||||
|
4. Run Bootstrap and make distribution tar.gz::
|
||||||
|
|
||||||
|
cd frr
|
||||||
|
./bootstrap.sh
|
||||||
|
./configure --with-pkg-extra-version=-MyRPMVersion SPHINXBUILD=sphinx-build2.7
|
||||||
|
make dist
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
The only ``configure`` option respected when building RPMs is
|
||||||
|
``--with-pkg-extra-version``.
|
||||||
|
|
||||||
|
5. Create RPM directory structure and populate with sources::
|
||||||
|
|
||||||
|
mkdir rpmbuild
|
||||||
|
mkdir rpmbuild/SOURCES
|
||||||
|
mkdir rpmbuild/SPECS
|
||||||
|
cp redhat/*.spec rpmbuild/SPECS/
|
||||||
|
cp frr*.tar.gz rpmbuild/SOURCES/
|
||||||
|
|
||||||
|
6. Edit :file:`rpm/SPECS/frr.spec` with configuration as needed.
|
||||||
|
|
||||||
|
Look at the beginning of the file and adjust the following parameters to
|
||||||
|
enable or disable features as required::
|
||||||
|
|
||||||
|
############### FRRouting (FRR) configure options #################
|
||||||
|
# with-feature options
|
||||||
|
%{!?with_pam: %global with_pam 0 }
|
||||||
|
%{!?with_ospfclient: %global with_ospfclient 1 }
|
||||||
|
%{!?with_ospfapi: %global with_ospfapi 1 }
|
||||||
|
%{!?with_irdp: %global with_irdp 1 }
|
||||||
|
%{!?with_rtadv: %global with_rtadv 1 }
|
||||||
|
%{!?with_ldpd: %global with_ldpd 1 }
|
||||||
|
%{!?with_nhrpd: %global with_nhrpd 1 }
|
||||||
|
%{!?with_eigrp: %global with_eigrpd 1 }
|
||||||
|
%{!?with_shared: %global with_shared 1 }
|
||||||
|
%{!?with_multipath: %global with_multipath 256 }
|
||||||
|
%{!?frr_user: %global frr_user frr }
|
||||||
|
%{!?vty_group: %global vty_group frrvty }
|
||||||
|
%{!?with_fpm: %global with_fpm 0 }
|
||||||
|
%{!?with_watchfrr: %global with_watchfrr 1 }
|
||||||
|
%{!?with_bgp_vnc: %global with_bgp_vnc 0 }
|
||||||
|
%{!?with_pimd: %global with_pimd 1 }
|
||||||
|
%{!?with_rpki: %global with_rpki 0 }
|
||||||
|
|
||||||
|
7. Build the RPM::
|
||||||
|
|
||||||
|
rpmbuild --define "_topdir `pwd`/rpmbuild" -ba rpmbuild/SPECS/frr.spec
|
||||||
|
|
||||||
|
If building with RPKI, then download and install the additional RPKI
|
||||||
|
packages from
|
||||||
|
https://ci1.netdef.org/browse/RPKI-RTRLIB/latestSuccessful/artifact
|
||||||
|
|
||||||
|
If all works correctly, then you should end up with the RPMs under
|
||||||
|
:file:`rpmbuild/RPMS` and the source RPM under :file:`rpmbuild/SRPMS`.
|
@ -7,3 +7,4 @@ Packaging
|
|||||||
|
|
||||||
maintainer-release-build
|
maintainer-release-build
|
||||||
packaging-debian
|
packaging-debian
|
||||||
|
packaging-redhat
|
||||||
|
@ -5,7 +5,6 @@
|
|||||||
dev_RSTFILES = \
|
dev_RSTFILES = \
|
||||||
doc/developer/bgp-typecodes.rst \
|
doc/developer/bgp-typecodes.rst \
|
||||||
doc/developer/bgpd.rst \
|
doc/developer/bgpd.rst \
|
||||||
doc/developer/building-frr-for-openwrt.rst \
|
|
||||||
doc/developer/building-frr-for-alpine.rst \
|
doc/developer/building-frr-for-alpine.rst \
|
||||||
doc/developer/building-frr-for-centos6.rst \
|
doc/developer/building-frr-for-centos6.rst \
|
||||||
doc/developer/building-frr-for-centos7.rst \
|
doc/developer/building-frr-for-centos7.rst \
|
||||||
@ -19,6 +18,7 @@ dev_RSTFILES = \
|
|||||||
doc/developer/building-frr-for-netbsd7.rst \
|
doc/developer/building-frr-for-netbsd7.rst \
|
||||||
doc/developer/building-frr-for-omnios.rst \
|
doc/developer/building-frr-for-omnios.rst \
|
||||||
doc/developer/building-frr-for-openbsd6.rst \
|
doc/developer/building-frr-for-openbsd6.rst \
|
||||||
|
doc/developer/building-frr-for-openwrt.rst \
|
||||||
doc/developer/building-frr-for-ubuntu1404.rst \
|
doc/developer/building-frr-for-ubuntu1404.rst \
|
||||||
doc/developer/building-frr-for-ubuntu1604.rst \
|
doc/developer/building-frr-for-ubuntu1604.rst \
|
||||||
doc/developer/building-frr-for-ubuntu1804.rst \
|
doc/developer/building-frr-for-ubuntu1804.rst \
|
||||||
@ -37,8 +37,9 @@ dev_RSTFILES = \
|
|||||||
doc/developer/ospf-api.rst \
|
doc/developer/ospf-api.rst \
|
||||||
doc/developer/ospf-sr.rst \
|
doc/developer/ospf-sr.rst \
|
||||||
doc/developer/ospf.rst \
|
doc/developer/ospf.rst \
|
||||||
doc/developer/packaging.rst \
|
|
||||||
doc/developer/packaging-debian.rst \
|
doc/developer/packaging-debian.rst \
|
||||||
|
doc/developer/packaging-redhat.rst
|
||||||
|
doc/developer/packaging.rst \
|
||||||
doc/developer/testing.rst \
|
doc/developer/testing.rst \
|
||||||
doc/developer/topotests-snippets.rst \
|
doc/developer/topotests-snippets.rst \
|
||||||
doc/developer/topotests.rst \
|
doc/developer/topotests.rst \
|
||||||
|
@ -1,119 +0,0 @@
|
|||||||
Building your own FRRouting RPM
|
|
||||||
======================================
|
|
||||||
(Tested on CentOS 6, CentOS 7 and Fedora 24.)
|
|
||||||
|
|
||||||
1. On CentOS 6 (which doesn't provide a bison/automake/autoconf of a recent enough version):
|
|
||||||
- Check out ../doc/developer/building-frr-for-centos6.rst for details on installing
|
|
||||||
a bison/automake/autoconf to support frr building.
|
|
||||||
|
|
||||||
Newer automake/autoconf/bison is only needed to build the rpm and is
|
|
||||||
**not** needed to install the binary rpm package
|
|
||||||
|
|
||||||
2. Install the build packages as documented in doc/developer/building-frr-for-xxxxx.rst and the following additional packages:
|
|
||||||
|
|
||||||
yum install rpm-build net-snmp-devel pam-devel libcap-devel
|
|
||||||
|
|
||||||
Additionally, on systems with systemd (CentOS 7, Fedora)
|
|
||||||
|
|
||||||
yum install systemd-devel
|
|
||||||
|
|
||||||
(use `dnf install` on new Fedora instead of `yum install`)
|
|
||||||
|
|
||||||
3. Checkout FRR under a **unpriviledged** user account
|
|
||||||
|
|
||||||
git clone https://github.com/frrouting/frr.git frr
|
|
||||||
|
|
||||||
4. Run Bootstrap and make distribution tar.gz
|
|
||||||
|
|
||||||
cd frr
|
|
||||||
./bootstrap.sh
|
|
||||||
./configure --with-pkg-extra-version=-MyRPMVersion \
|
|
||||||
SPHINXBUILD=sphinx-build2.7
|
|
||||||
make dist
|
|
||||||
|
|
||||||
Note: configure parameters are not important for the RPM building - except the `with-pkg-extra-version` if you want to give the RPM a specific name to
|
|
||||||
mark your own unoffical build
|
|
||||||
|
|
||||||
5. Create RPM directory structure and populate with sources
|
|
||||||
|
|
||||||
mkdir rpmbuild
|
|
||||||
mkdir rpmbuild/SOURCES
|
|
||||||
mkdir rpmbuild/SPECS
|
|
||||||
cp redhat/*.spec rpmbuild/SPECS/
|
|
||||||
cp frr*.tar.gz rpmbuild/SOURCES/
|
|
||||||
|
|
||||||
6. Edit rpm/SPECS/frr.spec with configuration as needed
|
|
||||||
Look at the beginning of the file and adjust the following parameters to enable or disable features as required:
|
|
||||||
|
|
||||||
############### FRRouting (FRR) configure options #################
|
|
||||||
# with-feature options
|
|
||||||
%{!?with_pam: %global with_pam 0 }
|
|
||||||
%{!?with_ospfclient: %global with_ospfclient 1 }
|
|
||||||
%{!?with_ospfapi: %global with_ospfapi 1 }
|
|
||||||
%{!?with_irdp: %global with_irdp 1 }
|
|
||||||
%{!?with_rtadv: %global with_rtadv 1 }
|
|
||||||
%{!?with_ldpd: %global with_ldpd 1 }
|
|
||||||
%{!?with_nhrpd: %global with_nhrpd 1 }
|
|
||||||
%{!?with_eigrp: %global with_eigrpd 1 }
|
|
||||||
%{!?with_shared: %global with_shared 1 }
|
|
||||||
%{!?with_multipath: %global with_multipath 256 }
|
|
||||||
%{!?frr_user: %global frr_user frr }
|
|
||||||
%{!?vty_group: %global vty_group frrvty }
|
|
||||||
%{!?with_fpm: %global with_fpm 0 }
|
|
||||||
%{!?with_watchfrr: %global with_watchfrr 1 }
|
|
||||||
%{!?with_bgp_vnc: %global with_bgp_vnc 0 }
|
|
||||||
%{!?with_pimd: %global with_pimd 1 }
|
|
||||||
%{!?with_rpki: %global with_rpki 0 }
|
|
||||||
|
|
||||||
7. Build the RPM
|
|
||||||
|
|
||||||
rpmbuild --define "_topdir `pwd`/rpmbuild" -ba rpmbuild/SPECS/frr.spec
|
|
||||||
|
|
||||||
If building with RPKI, then download and install the additional RPKI
|
|
||||||
packages from
|
|
||||||
https://ci1.netdef.org/browse/RPKI-RTRLIB/latestSuccessful/artifact
|
|
||||||
|
|
||||||
DONE.
|
|
||||||
|
|
||||||
If all works correctly, then you should end up with the RPMs under
|
|
||||||
`rpmbuild/RPMS` and the Source RPM under `rpmbuild/SRPMS`
|
|
||||||
|
|
||||||
|
|
||||||
Enabling daemons after installation of the package:
|
|
||||||
---------------------------------------------------
|
|
||||||
|
|
||||||
### init.d based systems (ie CentOS 6):
|
|
||||||
|
|
||||||
1. Edit /etc/frr/daemons and enable required routing daemons (Zebra is probably needed for most deployments, so make sure to enable it.)
|
|
||||||
|
|
||||||
2. Enable the daemons as needed to run after boot (Zebra is mandatory)
|
|
||||||
|
|
||||||
chkconfig frr on
|
|
||||||
|
|
||||||
3. Check your firewall / IPtables to make sure the routing protocols are
|
|
||||||
allowed.
|
|
||||||
|
|
||||||
5. Start the FRR daemons (or reboot)
|
|
||||||
|
|
||||||
service frr start
|
|
||||||
|
|
||||||
Configuration is stored in `/etc/frr/*.conf` files and daemon selection is stored in `/etc/frr/daemons`.
|
|
||||||
|
|
||||||
|
|
||||||
### systemd based systems (ie CentOS 7, Fedora 24)
|
|
||||||
|
|
||||||
1. Edit /etc/frr/daemons and enable required routing daemons (Zebra is probably needed for most deployments, so make sure to enable it.)
|
|
||||||
|
|
||||||
2. Enable the frr daemons to run after boot.
|
|
||||||
|
|
||||||
systemctl enable frr
|
|
||||||
|
|
||||||
2. Check your firewall / IPtables to make sure the routing protocols are
|
|
||||||
allowed.
|
|
||||||
|
|
||||||
3. Start the daemons (or reboot)
|
|
||||||
|
|
||||||
systemctl start frr
|
|
||||||
|
|
||||||
Configuration is stored in `/etc/frr/*.conf` files and daemon selection is stored in `/etc/frr/daemons`.
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user